DSSS 0.72-0.73 and problems with DMD

Gregor Richards Richards at codu.org
Sat Nov 3 18:12:54 PDT 2007


OK, a lot of people are having issues with DSSS 0.72 and 0.73 using DMD. 
This is because of a fix to a problem lots of OTHER people were having 
with DSSS 0.71 and DMD.

Here's the timeline:

  - Gregor releases numerous DSSS versions, and finally 0.71.
  - People start reporting problems with libraries and incremental 
compilation using DMD.
  - After investigating, Gregor finds out that DMD never marks anything 
as common data when all files are passed as once, and everything seems 
to work as expected when passing one file at a time.
  - Gregor reports this problem to the newsgroup. Walter: "It's faster."
  - Gregor releases DSSS 0.72 and DSSS 0.73, passing one file at a time 
for DMD.
  - People start reporting different problems with libraries and 
incremental compilation using DMD.
  - After investigating, Gregor finds out that DMD occasionally and 
arbitrarily decides not to mark template instantiations as common, so 
they conflict and the build fails.

Conclusion: DMD cannot reliably build libraries, DMD cannot reliably 
reuse object files. The ONLY configuration that works is passing all .d 
files to the compiler in a one-pass compile. In my opinion, DMD is an 
extremely poor compiler.

So, in 0.74, these changes will go into effect:
1) I am reverting the change that made files pass one at a time.
2) DSSS will /never/ build libraries with DMD. They just don't work 
reliably. For those up on the jargon, the "library" build type will be 
interpreted as the "sourcelibrary" build type.
3) DSSS will never reuse object files for DMD. That implies that DSSS 
will never use incremental compilation with DMD.

None of this will happen until I determine whether the problems are 
GNU/Linux-specific or if they happen on Windows as well, by the way.

Will this cause other problems? Yes. Absolutely. At this point, I'm 
constantly expecting a plethora of bugs from DMD. DMD is essentially a 
plethora of bugs compiled into a single binary. But this setup should 
invoke /less/ bugs than previous setups.

  - Gregor Richards



More information about the Digitalmars-d mailing list