On 04.09.2012 19:24, David Simcha wrote:
I think we need separate compilation for non-unittest Phobos compiles,
too.  Antti-Ville's precise heap scanning, which will hopefully be
integrated soon (I've been meaning to ping him on that) makes the
non-unittest Phobos build process run out of memory on Windows because
of all the template instantiations necessary.  Alternatively, we could
bring back the compile time GC.  Walter, why was compile-time GC removed
again?



IIRC it was removed because compile times more than doubled.

Regarding the bail out with less than 1 GB allocated I suspect that the dmc runtime uses VirtualAlloc with sizes below the allocation granularity (which is 64kB on 32-bit windows). This waists virtual address space, so another allocation fails even if the actually allocated physical memory is well below the 2GB limit.

The MS-cl-compiled version of dmd does not exhibit this problem (and compiles D code considerably faster).

With a 64-bit host (or with the /3GB boot switch on 32-bit XP), the 2 GB limit can be extended up to 4 GB if the application is "large address aware". Unfortunately optlink cannot set the corresponding bit in the executable header, so you'll have to patch the executable with another tool (like this one: https://github.com/rainers/visuald/blob/master/tools/largeadr.d )

This problem also affects all optlink generated D programs.

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to