Summary: Compiling std.datetime's unit tests on Windows causes
                    dmd to run out of memory
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: critical
          Priority: P2
         Component: DMD

--- Comment #0 from Jonathan M Davis <> 2011-01-14 03:53:42 
PST ---
Okay. This is a weird one. std.datetime compiles fine on both Linux and Windows
if you don't use -unittest. It compiles and runs fine with -unittest on Linux.
It compiles and runs with with -unittest on Linux in Wine. However, if you try
and compile with -unittest on Windows-proper, dmd runs out of memory. If I
comment out a bunch of unit tests, then it doesn't run out of memory, but I
haven't been able to find anything which would seem to be the issue other than
the large number of unit tests that there are. Or maybe it even has to do with
module size rather than anything specific to unit tests and adding in the unit
tests makes it too large for Windows somehow. I don't know.

However, regardless of what dmd running in Windows doesn't like about
std.datetime's unit tests, it definitely runs out of memory if you compile them
in. What I find truly strange about this is that it works just fine in Wine,
which would imply that there's some bug in a Windows system call or something
similar - or perhaps a bug with how dmd deals with some system call and memory.
I'm really not knowledgeable enough to have a very good idea of what the
problem might actually be though.

I'll continue to try and get smaller test case and/or narrow down the problem,
but I have no clue about how to go about debugging dmd for how and why it's
leaking memory like crazy.

IIRC, while compiling, Linux hit somewhere around 100MB, Wine hit around 300MB,
and Windows went over 900MB and ran out of memory. So, there's something that
is not only Windows-specific, but it's Windows-specific enough that Wine
doesn't have the problem (which is usually the opposite of what happens with

For the moment, all of the unittest blocks in std.datetime have their body in a
version(testStdDateTime) block, so the tests don't run on Windows unless you
build with -version=testdStdDateTime. The unit tests do pass in Wine, so I
believe that the code is solid, but the fact that the compiler runs out of
memory on Windows is a big problem.

If it matters, I was testing it on a 64-bit Windows 7 install, but the same
problem occurs on the autotest machine with whatever version of Windows it's

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to