http://d.puremagic.com/issues/show_bug.cgi?id=5454
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 AssignedTo: nob...@puremagic.com ReportedBy: jmdavisp...@gmx.com --- Comment #0 from Jonathan M Davis <jmdavisp...@gmx.com> 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 Wine). 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 using. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------