digitalmars.D - DSSS 0.72-0.73 and problems with DMD
- Gregor Richards (36/36) Nov 03 2007 OK, a lot of people are having issues with DSSS 0.72 and 0.73 using DMD....
- Walter Bright (2/8) Nov 03 2007 Which bugzilla numbers are these two issues?
- Bill Baxter (5/15) Nov 03 2007 I think the "definition different" bug I posted recently may be an
- Brad Roberts (5/23) Nov 03 2007 I'm pretty sure this bug is also in the exact same family of problems:
- Gregor Richards (8/18) Nov 04 2007 According to our last conversation regarding the first one, it's a
- Sebastian Beschke (13/15) Nov 04 2007 -----BEGIN PGP SIGNED MESSAGE-----
- BCS (9/24) Nov 04 2007 Who cares?!?! The only time I have every had a problem with build times ...
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
Nov 03 2007
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?
Nov 03 2007
Walter Bright wrote:Gregor Richards wrote: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- 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?
Nov 03 2007
Bill Baxter wrote:Walter Bright wrote: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, BradGregor Richards wrote: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- 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?
Nov 03 2007
Walter Bright wrote:Gregor Richards wrote:According to our last conversation regarding the first one, it's a feature. ( http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmar .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- 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?
Nov 04 2007
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHLZ9tKb/1n5A2TAMRAq1jAJ9QZe07/KWfMJv4hc0tn/rt5HTazgCePaaM ew/2+Sju5kXauq8bgDJPjBk= =BS7M -----END PGP SIGNATURE-----
Nov 04 2007
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?
Nov 04 2007