It could be a difference in the Windows vs. Linux memory manager. Did anyone ever try hooking the Boehm GC into DMD?
Sent from my iPhone On Jan 14, 2011, at 11:58 AM, Jonathan M Davis <[email protected]> wrote: > On Friday, January 14, 2011 10:43:26 Brad Roberts wrote: >> On 1/14/2011 10:39 AM, Robert Jacques wrote: >>> On Fri, 14 Jan 2011 11:19:34 -0500, Jonathan M Davis <[email protected]> > wrote: >>>> On Friday 14 January 2011 05:43:19 Robert Jacques wrote: >>>>> On Fri, 14 Jan 2011 06:36:18 -0500, dsource.org <[email protected]> >>>>> >>>>> wrote: >>>>>> phobos commit, revision 2331 >>>>>> >>>>>> >>>>>> user: jmdavis >>>>>> >>>>>> msg: >>>>>> Re-enabled std.datetime for Windows but disabled its unit tests for >>>>>> Windows. >>>>>> >>>>>> For some reason, the std.datetime unit tests compile and pass without >>>>>> problems on Linux and in Wine on Linux, but on real Windows, the >>>>>> compiler runs out of memory when compiling them. So, for now, all of >>>>>> the std.datetime unit tests are versioned with testStdDateTime. On >>>>>> Posix, version=testdStdDateTime is used in std.datetime, so the >>>>>> tests will run, but that version is not set on Windows, so the unit >>>>>> tests don't run on Windows. So, if you want to run the std.datetime >>>>>> unit tests on Windows or under Wine or Linux, then compile with >>>>>> -version=testStdDateTime. >>>>>> >>>>>> At the moment, all of the tests pass on both Linux and under Wine, >>>>>> and the normal code does compile on proper, so I'm fairly certain >>>>>> that it's fine >>>>>> for use on Windows, but for now, I can't enable the tests on Windows. >>>>>> My best guess is that it's some sort of weird compiler bug involving >>>>>> system calls that leak memory on Windows-proper but not in Wine, but >>>>>> I really don't know. >>>>>> >>>>>> http://www.dsource.org/projects/phobos/changeset/2331 >>>>>> >>>>>> paths changed: >>>>>> U trunk/phobos/std/datetime.d >>>>>> >>>>>> _______________________________________________ >>>>>> phobos mailing list >>>>>> [email protected] >>>>>> http://lists.puremagic.com/mailman/listinfo/phobos >>>>> >>>>> If DMD is running out of memory at compile time, I doubt it has to do >>>>> with weird compiler bugs. DMD running out of memory is usually a sign >>>>> of heavy compile time string manipulation, CTFE or template usage. >>>>> Remember, DMD keeps all template instantiations in memory and every >>>>> time a string or array is touched, a new copy is created (bug 1382). >>>> >>>> Yes. But to then have it not only work on Linux but on Wine and yet not >>>> work on Windows? The only real difference between running something >>>> under Wine and Windows is that the implementation of system calls as >>>> changed. >>> >>> Well, is the crash due to a marginal difference in memory levels, or >>> something major? i.e. is DMD's memory usage on Wine also very high, or >>> is it relatively low. >> >> I haven't had time to try to help with this.. but for what it's worth, the >> windows test box has 2 gigs of ram and is running 32bit windows. So, there >> _ought_ to be pleanty of memory. > > IIRC, looking at the dmd process on Linux, Wine, and Windows, Linux would max > out at around 100MB, Wine would max out at around 300MB, and Windows would > go > past 900MB and run out of memory (the numbers aren't terribly exact since I > was > essentially just watching the task manager). Why it ran out of memory between > 900 and 1000MB, I don't know. My box has 64-bit Windows 7 and 16GB of memory > (though obviously dmd2, as a 32-bit program, couldn't use more than around > 4GB). > So, it looks like dmd on Windows is declaring itself as out of memory well > short > of the actual system limit. Regardless of that however, it's definitely using > way > more memory than either Linux or Wine. All around, it's very weird. > > I did open bug #5454 on the issue, and maybe someone dmd-savy will have time > to > take a look at it. I'll keep poking at it when I have time, trying to > generate a > reduced test case, but I really have no idea what could be causing it. > Regardless, it seems like it's either a bug in dmd or in Windows (and you'd > think that it would be dmd with the bug rather than the OS, but I don't know). > > - Jonathan M Davis > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
