Re: dmd 1.053 and 2.037 release

2009-12-12 Thread Bill Baxter
On Fri, Dec 11, 2009 at 9:34 PM, Don nos...@nospam.com wrote: Walter Bright wrote: Don wrote: Yeah. Actually the CPU problem is an accepts-invalid bug. It worked on my Pentium M, but it shouldn't have. The problem is what DMD does to the uninitialized assignments. float x; gets changed

Re: dmd 1.053 and 2.037 release

2009-12-11 Thread Don
Walter Bright wrote: Don wrote: I had a further look at this. The compiler *is* creating doubles and floats as signalling NaNs. Turns out, that there are slight differences between processors in the way they treat signalling NaNs, especially between Intel vs AMD. Intel Core2 triggers SNANs

Re: dmd 1.053 and 2.037 release

2009-12-11 Thread BCS
Hello Walter, How do we fix the CPU? ;-) I was thinking 220VAC might help! That one way to be totally sure what is wrong with your CPU.

Re: dmd 1.053 and 2.037 release

2009-12-11 Thread Don
Walter Bright wrote: Don wrote: Yeah. Actually the CPU problem is an accepts-invalid bug. It worked on my Pentium M, but it shouldn't have. The problem is what DMD does to the uninitialized assignments. float x; gets changed into float x = double.snan; and is implemented with fld

Re: dmd 1.053 and 2.037 release

2009-12-10 Thread Walter Bright
Don wrote: I had a further look at this. The compiler *is* creating doubles and floats as signalling NaNs. Turns out, that there are slight differences between processors in the way they treat signalling NaNs, especially between Intel vs AMD. Intel Core2 triggers SNANs when loading floats

Re: dmd 1.053 and 2.037 release

2009-12-10 Thread dsimcha
== Quote from Walter Bright (newshou...@digitalmars.com)'s article Brad Roberts wrote: On Thu, 10 Dec 2009, Walter Bright wrote: Don wrote: I had a further look at this. The compiler *is* creating doubles and floats as signalling NaNs. Turns out, that there are slight differences

Re: dmd 1.053 and 2.037 release

2009-12-08 Thread Kagamin
Jeremie Pelletier Wrote: I myself use the comma operator in for loops and simple assignments such as 'if(something) x = a, y = b;'. also: for(...) if(test) found=TRUE, break; if(found)...

Re: dmd 1.053 and 2.037 release - minor docs typo

2009-12-08 Thread Nick Treleaven
On Fri, 04 Dec 2009 20:05:13 -0800, Walter Bright wrote: Probably the biggest thing is opDispatch! Sounds great :) But I think there's a minor typo here: http://www.digitalmars.com/d/2.0/operatoroverloading.html#Dispatch class C { void opDispatch(string s)(int i) {

Re: dmd 1.053 and 2.037 release

2009-12-08 Thread Leandro Lucarella
Leandro Lucarella, el 5 de diciembre a las 13:07 me escribiste: Walter Bright, el 4 de diciembre a las 20:05 me escribiste: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Max Samukha
On Sun, 06 Dec 2009 23:43:16 -0600, Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: Walter Bright wrote: Andrei Alexandrescu wrote: Not wanting to start a language war, but to just say C has plenty of design holes and then patronize it with the comment that designing languages is

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Lars T. Kyllingstad
Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who contributed

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Lars T. Kyllingstad
Don wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Don
Don wrote: Lars T. Kyllingstad wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Lars T. Kyllingstad
Don wrote: Don wrote: Lars T. Kyllingstad wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread klickverbot
Max Samukha wrote: I think the following real-world code is a good argument against comma operators: template typename T Q_INLINE_TEMPLATE void QListT::node_destruct(Node *from, Node *to) { if (QTypeInfoT::isLarge || QTypeInfoT::isStatic) while(from != to) --to, delete

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Jeremie Pelletier
klickverbot wrote: Max Samukha wrote: I think the following real-world code is a good argument against comma operators: template typename T Q_INLINE_TEMPLATE void QListT::node_destruct(Node *from, Node *to) { if (QTypeInfoT::isLarge || QTypeInfoT::isStatic) while(from != to) --to,

Re: dmd 1.053 and 2.037 release

2009-12-07 Thread Nick Sabalausky
Jeremie Pelletier jerem...@gmail.com wrote in message news:hfjbs4$v3...@digitalmars.com... klickverbot wrote: Max Samukha wrote: I think the following real-world code is a good argument against comma operators: template typename T Q_INLINE_TEMPLATE void QListT::node_destruct(Node *from,

Re: dmd 1.053 and 2.037 release

2009-12-06 Thread Max Samukha
On Sat, 5 Dec 2009 10:59:12 -0500, Nick Sabalausky a...@a.a wrote: Max Samukha spam...@d-coding.com wrote in message news:pkvkh5tvvhie0ga61lrpp5qmt53h5ju...@4ax.com... On Sat, 5 Dec 2009 10:19:23 -0500, Nick Sabalausky a...@a.a wrote: bearophile bearophileh...@lycos.com wrote in message

Re: dmd 1.053 and 2.037 release

2009-12-06 Thread bearophile
Max Samukha: Ah, it is simply the unfortunate comma expression evaluated to 3. Comma expressions need to go. Thanks. There are so many design holes in the C language that's the other languages must be really bad to be worse than C :-) Designing languages is hard. Bye, bearophile

Re: dmd 1.053 and 2.037 release

2009-12-06 Thread Andrei Alexandrescu
bearophile wrote: Max Samukha: Ah, it is simply the unfortunate comma expression evaluated to 3. Comma expressions need to go. Thanks. There are so many design holes in the C language that's the other languages must be really bad to be worse than C :-) Designing languages is hard.

Re: dmd 1.053 and 2.037 release

2009-12-06 Thread Andrei Alexandrescu
Walter Bright wrote: Andrei Alexandrescu wrote: Not wanting to start a language war, but to just say C has plenty of design holes and then patronize it with the comment that designing languages is hard - well, you better have a hell of an argument up your sleeve. C really has only one major

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Max Samukha
On Fri, 04 Dec 2009 20:05:13 -0800, Walter Bright newshou...@digitalmars.com wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Extrawurst
Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who contributed

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Extrawurst
Extrawurst wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Extrawurst
Extrawurst wrote: Extrawurst wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Don
Extrawurst wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Extrawurst
Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who contributed

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Don
Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who contributed

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Don
Extrawurst wrote: Walter Bright wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread bearophile
There's a large number of changes! I don't understand what No more comma operators allowed between [ ]. means. I have tried the D2 compiler a little with this code: import std.stdio: writeln; import std.math: pow; struct S1 { int x; } void main() { struct S2 { int x; } static struct S3

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Nick Sabalausky
bearophile bearophileh...@lycos.com wrote in message news:hfdt87$1nu...@digitalmars.com... There's a large number of changes! I don't understand what No more comma operators allowed between [ ]. means. I assume that means: int[1,2,3] foo; // - formerly created an int[3], now (presumably)

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Ary Borenszweig
bearophile wrote: 5 ^^ 2 doesn't work yet, I guess it's not implemented yet. But what do I have to import from math to use 5.2 ^^ 2 ? Anyway, the need to explicitly import something to use a built-in operator like ^^ looks like a bad idea. A very bad idea indeed! The idea is to save

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Leandro Lucarella
Walter Bright, el 4 de diciembre a las 20:05 me escribiste: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread bearophile
Ary Borenszweig: Can't import std.math : pow; be added to the current module when this is needed? Note that this code doesn't compile: import std.stdio: writeln; import std.math: pow; void main() { writeln(5.2 ^^ 2); } This is what the compiler shows: test.d(5): Error: undefined

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread dsimcha
== Quote from Don (nos...@nospam.com)'s article All kinds of stuff is still missing. a ^^ b won't be constant-folded, for example. It's desperately important that the language spec becomes stable before Andrei's book comes out. That leaves only a couple more releases left in D2 where features

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Don
dsimcha wrote: == Quote from Don (nos...@nospam.com)'s article All kinds of stuff is still missing. a ^^ b won't be constant-folded, for example. It's desperately important that the language spec becomes stable before Andrei's book comes out. That leaves only a couple more releases left in D2

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Simen kjaeraas
On Sat, 05 Dec 2009 05:05:13 +0100, Walter Bright newshou...@digitalmars.com wrote: Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Walter Bright
Simen kjaeraas wrote: I get a compile error: std\conv.d(2506): Error: undefined identifier module traits.staticIndexOf Line 2506 in std.conv should be changed from if (std.traits.staticIndexOf!(Unqual!S, uint, ulong) = 0 isSomeString!T) to if (std.typetuple.staticIndexOf!(Unqual!S,

Re: dmd 1.053 and 2.037 release

2009-12-05 Thread Simen kjaeraas
On Sun, 06 Dec 2009 03:35:42 +0100, Walter Bright newshou...@digitalmars.com wrote: Simen kjaeraas wrote: I get a compile error: std\conv.d(2506): Error: undefined identifier module traits.staticIndexOf Line 2506 in std.conv should be changed from if

dmd 1.053 and 2.037 release

2009-12-04 Thread Walter Bright
Probably the biggest thing is opDispatch! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.053.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.037.zip Many thanks to the numerous people who contributed to this update.

Re: dmd 1.053 and 2.037 release

2009-12-04 Thread Adam D. Ruppe
On Fri, Dec 04, 2009 at 08:05:13PM -0800, Walter Bright wrote: Probably the biggest thing is opDispatch! Nay, the bug fixes! It looks like you guys solved an elusive codegen problem in this release that's been bugging me since about 2007. Not a showstopper - rearranging some statements made it

Re: dmd 1.053 and 2.037 release

2009-12-04 Thread Walter Bright
Adam D. Ruppe wrote: I think it might have been Bugzilla 3521. Yeah, that was a pretty evil bug. It has been lurking there for probably 18+ years now. It's evil because only a very, very rare set of circumstances will trip it, and even then it may not be executed or noticed. I instrumented