Compiler scalability. Question inspired by OOM errors seen by Crystal language

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Wed Aug 30 09:39:32 PDT 2017


On Wed, Aug 30, 2017 at 08:01:17AM +0000, via Digitalmars-d wrote:
[...]
> D supports separate compilation by design. I.e. it doesn't require all
> the source files corresponding to all the object files being linked to
> produce the final executable, to be loaded in memory by the compiler.

Yes, I think the general recommendation for very large codebases is to
compile one package at a time, i.e., one subdir at a time.

Nevertheless, compiler memory usage remains an issue on low-memory
systems.  My old work PC simply cannot handle running dmd without
grinding to a halt because there's just not enough RAM to go around
(only 500MB total).  It's generally not a problem for modern PCs with at
least a few GB of memory.  Walter chose compilation speed over memory
efficiency, so that's just the way it is.  In theory, one could turn on
GC in the compiler so that it will work on low-memory systems, but I'm
not sure if such a change will be accepted into dmd.


T

-- 
Questions are the beginning of intelligence, but the fear of God is the beginning of wisdom.


More information about the Digitalmars-d mailing list