[phobos] phobos commit, revision 2331

Jonathan M Davis jmdavisProg at gmx.com
Fri Jan 14 11:58:22 PST 2011


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 <jmdavisProg at gmx.com> 
wrote:
> >> On Friday 14 January 2011 05:43:19 Robert Jacques wrote:
> >>> On Fri, 14 Jan 2011 06:36:18 -0500, dsource.org <noreply at dsource.org>
> >>> 
> >>> 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
> >>> > phobos at puremagic.com
> >>> > 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


More information about the phobos mailing list