Tom S wrote:
So it seems that Main.d would have to reference symbols from each module in the program. Ouch.

I found that problem, and fixed it.

Additionally, using such an approach breaks any possibility to use incremental compilation.

It depends. If instead of a.obj, b.obj, and c.obj, think a.lib, b.lib, c.lib, you can incrementally compile.

So there's also the option of having a .lib per .d file and linking that all together. So I've just tried it:
dmd -c Main.d
dmd -lib Mod.d
dmd -lib Mod2.d
dmd Main.obj Mod.lib Mod2.d
... and OPTLINK crashed with the familiar MsgBox containing register values.

Can't repro it. I'm pretty sure it has something to do with how threading works on newer processors (mine is old).

Vendor string:    GenuineIntel
Processor string: Intel(R) Pentium(R) 4 CPU 1.60GHz
Signature:        Family=15 Model=1 Stepping=2
Features:         MMX FXSR SSE SSE2 HTT
Multithreading:   1 threads / 1 cores

What's your CPU?

While we're at incremental compilation, this bug: http://d.puremagic.com/issues/show_bug.cgi?id=1629 often kills it for me and it's been around for a few whiles already.

Ok.

Reply via email to