Summary: DMD returns -1073741819 on Intel Quadcore
           Product: D
           Version: 2.027
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P3
         Component: DMD

With the introduction of asynchronous compilation since DMD 2.027, DMD returns
-1073741819 when compiling a trivial hello world application on my Intel(R)
Core(TM)2 Quad CPU:

int main(char[][] args)
    return 0;

dmd.exe  -g -debug    -IC:\dmd\src\phobos  -c hello.d -ofobj\debug\hello.obj
echo %errorlevel%
dmd.exe bin\debug\test2.exe  obj\debug\hello.obj   phobos.lib -v
echo %errorlevel%

The first call to DMD echos 0, while the second call echos -1073741819. So it
seems to be primarily related to linking.

To narrow down the cause, I tested this on two machines; also in safe mode to
examine the possible side effect of background processes. This is what happend:

Original machine: vista, Intel(R) Core(TM)2 Quad CPU
-vista normal mode: returns -1073741819
-vista safe mode: returns 0, but OS reports crash

Other machine: xp, Intel(R) Core(TM)2 Dual CPU
-xp normal mode: returns 0 success [*]
-xp safe mode: returns 0, success [*]

[*] = The compiler crashed once, but that was probably related to corrupted OBJ
files due to the switch of compiler versions. I assume that it's working on the
Dual core machine now.

Note: I have been given access to a version of DMD.exe (2.028) with
asynchronous processing disabled. In this case, DMD.exe also returns 0 on a
Quadcore machine.

Right now, it looks like this issue is related to Intel Quad core CPUs in
connection with the new async compilation feature. AMD CPUs as well as
XP+Quadcore configurations are untested yet, so its not clear whether its an
OS-, CPU manufacturer-, or #-of-cores issue. The role of windows safe mode is
also not quite clear yet.


Reply via email to