I have the same issue with my Boost.units port: https://github.com/Arlen/phobos/blob/std_units/std/units.d
DMD runs out of memory and that's why I've had to comment out most of the definitions. I haven't tried separate compilation, yet.
Arlen
And that critical size isn't very large.
I cannot compile anymore :
Unable to fork: Cannot allocate memory
I cannot use separate compilation to mitigate the problem as some symbol are not emitted properly (so I get linker errors).
Hopefully, dmd is fast because it doesn't use any GC.