| Thread overview | |||||||||
|---|---|---|---|---|---|---|---|---|---|
|
November 04, 2007 DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
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 | ||||
November 04, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gregor Richards | Gregor Richards wrote: > - 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. > - 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. Which bugzilla numbers are these two issues? | |||
November 04, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Gregor Richards wrote: >> - 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. > >> - 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. > > Which bugzilla numbers are these two issues? I think the "definition different" bug I posted recently may be an instance of the second issue Gregor mentions: http://d.puremagic.com/issues/show_bug.cgi?id=1629 --bb | |||
November 04, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | Bill Baxter wrote: > Walter Bright wrote: >> Gregor Richards wrote: >>> - 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. >> >>> - 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. >> >> Which bugzilla numbers are these two issues? > > I think the "definition different" bug I posted recently may be an instance of the second issue Gregor mentions: > > http://d.puremagic.com/issues/show_bug.cgi?id=1629 > > --bb I'm pretty sure this bug is also in the exact same family of problems: http://d.puremagic.com/issues/show_bug.cgi?id=1508 Later, Brad | |||
November 04, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gregor Richards Attachments: | Gregor Richards schrieb:
> 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.
I'm using Windows and having template errors, so I guess they aren't Linux specific. Don't know about libraries, though.
Sebastian
| |||
November 04, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Gregor Richards wrote: >> - 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. > >> - 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. > > Which bugzilla numbers are these two issues? According to our last conversation regarding the first one, it's a feature. ( http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=57477 ) As per the second one, Brad mentioned them: 1508 is precisely it, a few others seem to be instances of the same issue. - Gregor Richards | |||
November 05, 2007 Re: DSSS 0.72-0.73 and problems with DMD | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gregor Richards | Reply to Gregor,
> 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."
Who cares?!?! The only time I have every had a problem with build times under DMD I was using more 4x swap space than I had RAM*. DMD is never slow! If it worked right twice a often and was 4 times slower I don't think most people would even notice let alone complain.
Add a compiler flag if you want but make it work right with incremental build.
*BTW this same project will never compile with the all at once solution, I would run out off address space (I wold need ~10GB of RAM to stay out of swap) Hmm... Can GDC be built as a 64bit app?
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply