OPTLINK needs to die.

Walter Bright newshound1 at digitalmars.com
Tue Feb 17 04:16:35 PST 2009


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.



More information about the Digitalmars-d mailing list