[Issue 2582] Significantly Increased Compile Times For DWT

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Feb 21 17:47:44 PST 2009


http://d.puremagic.com/issues/show_bug.cgi?id=2582





------- Comment #2 from moritzwarning at web.de  2009-02-21 19:47 -------
I tried to compile QTD today (http://code.google.com/p/qtd/)
and encountered a problem that a file didn't finished compiling.

After some testing with several dmd versions I found out
that all tested versions before dmd 1.038 work,
but later versions are caught in an infinite loop.
It's the same problem for ldc, but gdc works (old front end version).

The problem can be reproduced with
"dmd -c qt/gui/QPushButton.d -ofqt/gui/QPushButton.o"
and dmd version 1.038 or later (or ldc).

The back trace for ldc looks like this:
(gdb) bt
#0  0x0000000000545ed9 in Module::imports ()
#1  0x0000000000546478 in Module::imports ()
#2  0x0000000000546478 in Module::imports ()
#3  0x0000000000546478 in Module::imports ()
#4  0x00000000005bbf1e in TemplateInstance::semantic ()
#5  0x0000000000573d57 in TypeInstance::resolve ()
#6  0x0000000000571c30 in TypeInstance::semantic ()
#7  0x00000000005973ea in VarDeclaration::semantic ()
#8  0x00000000005c8f2c in ClassDeclaration::semantic ()
#9  0x0000000000549bde in StorageClassDeclaration::semantic ()
#10 0x0000000000549dc6 in ProtDeclaration::semantic ()
#11 0x00000000005448c8 in Module::semantic ()
#12 0x00000000005be2b4 in Import::semantic ()
#13 0x0000000000549dc6 in ProtDeclaration::semantic ()
#14 0x00000000005448c8 in Module::semantic ()
#15 0x00000000005be2b4 in Import::semantic ()
#16 0x0000000000549dc6 in ProtDeclaration::semantic ()
#17 0x00000000005448c8 in Module::semantic ()
#18 0x00000000005be2b4 in Import::semantic ()
#19 0x0000000000549dc6 in ProtDeclaration::semantic ()
#20 0x00000000005448c8 in Module::semantic ()
#21 0x00000000005be2b4 in Import::semantic ()
#22 0x0000000000549dc6 in ProtDeclaration::semantic ()
#23 0x00000000005448c8 in Module::semantic ()

Looks like Module::imports from module.c is involved.
It was added in dmd 1.038.

Hope that helps. :)


-- 



More information about the Digitalmars-d-bugs mailing list