dmd 2.057 release
Adrian
adrian.remove-nospam at veith-system.de
Wed Dec 14 06:59:12 PST 2011
Am 14.12.2011 08:05, schrieb Walter Bright:
> Highlights are use of XMM floating point registers in 64 bit targets,
> and now supporting OS X 64 as a target.
>
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.057.zip
>
> A lot of people put a ton of effort into making this D's best release
> ever. Thanks!
I have a strange crash of the new dmd 2.057 compiler.
I am running the compiler from inside VisualD. In debug mode the code
compiles fine. In release mode the compiler crashes and Windows starts
the Just-In-Time-Debugger saying that there is an unhandled exception
inside dmd.exe.
as a side note: the same code did compile with 2.056 !
When I try to find the source of the error it gets really funky strange:
int main(string[] argv)
{
writeln("Hello D-World!");
auto i = uniform(0, 15); // line A
auto c = 0;
if (c++ < c) // line B
writeln("Why did they call it c++"); // line C
//writeln(bench!(doStringTest)); // line D
//writeln(bench!(doBench1)); // line E
//writeln(bench!(doBench2)); // line F
//writeln(bench!(doBench3)); // line G
// main1(argv); // line I
// return 0; // line J
//} // line K
//int main1(string[] argv) // line L
//{ // line M
... much more code
}
- the code above crashes
- when I comment out line A it compiles
- when I leave A comment out B and C - dmd gets into an endless loop (
I waited several minutes for the process to terminate)
- when I leave A and uncomment I to M it compiles
- when I uncomment A to G it compiles
- when I uncomment A to F it crashes
now I tried the following:
int main(string[] argv)
{
writeln("Hello D-World!");
auto i = uniform(0, 15); // line A
auto c = 0;
if (c++ < c) // line B
writeln("Why did they call it c++"); // line C
//writeln(bench!(doStringTest)); // line D
//writeln(bench!(doBench1)); // line E
//writeln(bench!(doBench2)); // line F
//writeln(bench!(doBench3)); // line G
main1(argv); // line I
return 0; // line J
} // line K
int main1(string[] argv) // line L
{ // line M
... much more code
}
- as soon as I uncomment line G it compiles with any combination of line
D to F uncommented
- when line G is commented out any combination of line D to F
uncommented crashes.
- when I comment out line "I" any other combination compiles
I really would like to find a minimal stripped down version of the code,
but as soon as I try to find it, the behavior changes.
More information about the Digitalmars-d-announce
mailing list