[Issue 2942] asm fadd; accepted, but generates code for faddp.

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2942


Don  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


--- Comment #4 from Don  2009-10-01 00:27:56 PDT ---
(In reply to comment #3)
> These pseudo-ops *are* documented in older Intel manuals, like the 387 DX
> User's Manual. I'm reluctant to change it. The last issue should be in a
> separate report.

Interesting. They aren't present in any manual which is still available. I
found a website with material which was copied from the 386 manual (not 387), 
but it said that even in 1997, the manual was no longer officially available.
I suspect that a lot of those pseudo-ops were bugs in DEBUG. (DEBUG also
accepts fld addr, ST(6);).

However, I just checked MSVC, and it _does_ accept fadd;
(But it doesn't accept the legal faddp; !!)
Pretty useless, and I think they should be abandoned, but no big deal if you
want to keep them.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3354] New: asm fld x, ST(6); accepted.

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3354

   Summary: asm fld x, ST(6); accepted.
   Product: D
   Version: 1.00
  Platform: x86
OS/Version: All
Status: NEW
  Keywords: accepts-invalid
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: clugd...@yahoo.com.au


--- Comment #0 from Don  2009-10-01 00:29:53 PDT ---
This garbage compiles, but shouldn't.


void main() {
 double x;
  asm {
  fld x, ST(6);
 }
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3355] New: std.string.cmp works incorrectly for mixed-type and different-length strings

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3355

   Summary: std.string.cmp works incorrectly for mixed-type and
different-length strings
   Product: D
   Version: 2.032
  Platform: x86
OS/Version: Linux
Status: NEW
  Keywords: patch
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: acehr...@yahoo.com


--- Comment #0 from Ali Cehreli  2009-10-01 01:08:40 PDT ---
cmp fails unit tests when added this one

result = cmp("aa", "aaa"d);
assert(result < 0);


The patch is trivial:

109c109
< if (i1 == s1.length) return s2.length - i2;
---
> if (i1 == s1.length) return i2 - s2.length;
136a137,143
> 
> result = cmp("aa", "aaa"d);
> assert(result < 0);
> result = cmp("aaa", "aa"d);
> assert(result > 0);
> result = cmp("aa", "aa"d);
> assert(result == 0);

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3160] ICE(cgcod.c 1511-D1) or bad code-D2 returning string from void main

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3160



--- Comment #4 from Don  2009-10-01 05:47:20 PDT ---
The patch for the related bug 3344 adds a check for side-effects.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3355] std.string.cmp works incorrectly for mixed-type and different-length strings

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3355


Andrei Alexandrescu  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||and...@metalanguage.com


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3356] New: Make pure functions require immutable parameters

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3356

   Summary: Make pure functions require immutable parameters
   Product: D
   Version: future
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: dfj1es...@sneakemail.com


--- Comment #0 from Sobirari Muhomori  2009-10-01 
07:39:29 PDT ---
Illustration:
---
int foo(const int[] bar) pure
{
return bar[1];
}

void goo()
{
int[2] a;
a[1]=1;
foo(a);
a[1]=2;
foo(a);
}
---

1. This doesn't affect functions with value type parameters.
2. When a function takes a reference type parameter, the chanses are slim, that
the return value doesn't depend on the referenced data. So the referenced data
must be immutable.
3. This doesn't require complex flow analysis, only a formal function signature
check.
4. (??) Replace immutability of explicit pointer type with constness, since
even if the referenced data is immutable, the code doesn't know, where the
immutable data ends and can access subsequent possibly mutating data. This will
instantly make any function, taking a pointer, impure. This should not apply to
objects and byref data.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3352] RangeError in std.conv

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3352



--- Comment #1 from Sobirari Muhomori  2009-10-01 
07:43:35 PDT ---
Also I think, it's an overkill to fine tune allocation as it's done in
to!string(uint)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3356] Make pure functions require immutable parameters

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3356


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #1 from Don  2009-10-01 08:09:24 PDT ---
(In reply to comment #0)
> 2. When a function takes a reference type parameter, the chanses are slim, 
> that
> the return value doesn't depend on the referenced data. 

Yes.

> So the referenced data must be immutable.

That conclusion does not follow. I don't think you're seeing all of the
benefits of 'pure'.
Consider foo(a) + foo(a). This can be changed into 2*foo(a), even though a is
not immutable.

It is true that in the case where all parameters are immutable, additional
optimisations (such as caching) can be performed. But there's more to pure than
that.

> 4. (??) Replace immutability of explicit pointer type with constness, since
> even if the referenced data is immutable, the code doesn't know, where the
> immutable data ends and can access subsequent possibly mutating data. This 
> will
> instantly make any function, taking a pointer, impure. This should not apply 
> to
> objects and byref data.

That's a memory integrity issue, not a purity issue. That could only happen in
an unsafe module.

You are asking for a feature to be removed from the language, but I'm not
really sure why.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3357] New: ICE with aa that use static char array as key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3357

   Summary: ICE with aa that use static char array as key
   Product: D
   Version: 1.047
  Platform: Other
OS/Version: Mac OS X
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: fa...@gmx.ch


--- Comment #0 from Fawzi Mohamed  2009-10-01 08:05:44 PDT ---
I was trying to reduce an error, namely
  Internal error: e2ir.c 4026
and I generated another one
{{{
struct Particle{
char[16] name;
}

class ReadSystem{
size_t[char[16]] pKindsIdx;

void t(Particle p){
auto idx=p.name in pKindsIdx; // fails (Internal error: ../ztc/cod1.c
2636)
}
}

void main(){
char[16] n;
size_t[char[16]] aa;
auto r=n in aa; // works
}
}}}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3357] ICE with aa that use static char array as key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3357


Don  changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #1 from Don  2009-10-01 08:11:41 PDT ---
Is this the same as bug 1934?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 1934] ICE(e2ir.c) using static array as AA key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1934


Fawzi Mohamed  changed:

   What|Removed |Added

 CC||fa...@gmx.ch


--- Comment #4 from Fawzi Mohamed  2009-10-01 08:21:28 PDT ---
*** Issue 3357 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3357] ICE with aa that use static char array as key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3357


Fawzi Mohamed  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #2 from Fawzi Mohamed  2009-10-01 08:21:28 PDT ---
Yes it looks like it, the line number changed (probably due to changes in the
code) and I hadn't found it, but it really looks like the same issue.

*** This issue has been marked as a duplicate of issue 1934 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3357] ICE with aa that use static char array as key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3357


Don  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|RESOLVED|REOPENED
   Platform|Other   |All
 Resolution|DUPLICATE   |
 OS/Version|Mac OS X|All


--- Comment #3 from Don  2009-10-01 08:33:01 PDT ---
This isn't the same as bug 1934, though it is clearly very closely related. My
patch for 1934 doesn't fix this.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3357] ICE with aa that use static char array as key

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3357



--- Comment #4 from Fawzi Mohamed  2009-10-01 08:35:40 PDT ---
thanks for catching it...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2998] ICE(expression.c) with floating point enum

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2998


Walter Bright  changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com


--- Comment #4 from Walter Bright  2009-10-01 
10:42:10 PDT ---
The order in which those two functions are called shouldn't matter. The actual
problem is the TypeEnum doesn't have proper overrides for isreal, isimaginary,
etc. Will fix.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3352] RangeError in std.conv

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3352



--- Comment #2 from Andrei Alexandrescu  2009-10-01 
11:05:40 PDT ---
(In reply to comment #1)
> Also I think, it's an overkill to fine tune allocation as it's done in
> to!string(uint)

BTW I just improved optimization by adding preallocated strings for numbers
between -1 and -9.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3358] Several typeof(Class.method).stringof incoherence

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3358



--- Comment #1 from Julien Leclercq  2009-10-01 15:27:56 PDT 
---
Created an attachment (id=467)
Test case

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3358] New: Several typeof(Class.method).stringof incoherence

2009-10-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3358

   Summary: Several typeof(Class.method).stringof incoherence
   Product: D
   Version: 2.032
  Platform: x86
OS/Version: Linux
Status: NEW
  Severity: major
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: jul...@onandon.be


--- Comment #0 from Julien Leclercq  2009-10-01 15:25:31 PDT 
---
Hello,

   the results of `typeof(&Class.method).stringof` for different methods
sharing the same signature but different parameters name seems identical.

  Please view the attachment.

Thank you,
Julian.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---