digitalmars.D.announce - dmd 1.071 and 2.056 release

writes Andrej Mitrovic This is the first release in a while that hasn't broken any of my code. Yay!

"Nick Sabalausky" writes "Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:mailman.517.1319656575.24802.digitalmars-d-announce puremagic.com... This is the first release in a while that hasn't broken any of my code. Yay! It broke one thing in mine...but that's just because I was accidentally doing something that violated immutable and DMD didn't catch it until now. So "Yay!" from here, too :)

Andrej Mitrovic <andrej.mitrovich gmail.com> Andrej Mitrovic writes On 10/26/11, Nick Sabalausky <a a.a> wrote: "Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message news:mailman.517.1319656575.24802.digitalmars-d-announce puremagic.com... This is the first release in a while that hasn't broken any of my code. Yay! It broke one thing in mine...but that's just because I was accidentally doing something that violated immutable and DMD didn't catch it until now. So "Yay!" from here, too :) Actually I had one little problem, that outdated Gdi32 import lib. I quickly replaced it with a new one though. I hope we can start putting newer import libs into future DMD releases, there are several projects out there that depend on it (DGUI and maybe even DWT, I think they both distribute import libs).

"Nick Sabalausky" writes Great release :) Although it's not in the changelog (I didn't even think to check for it there until now), there's a bunch of RDMD issues fixed too: ------------------------------------------------ https://github.com/D-Programming-Language/tools/pull/14 (Don't pass .di files to DMD.) This fixes a problem that frequently made RDMD fail to work on projects that import a static lib and .di files. Real-world examples of the problem are here: http://www.dsource.org/forums/viewtopic.php?t=5856 http://www.linuxquestions.org/questions/programming-9/d-is-d-programming-language-just-too-much-898862/#post4452127 ------------------------------------------------ https://github.com/D-Programming-Language/tools/pull/14 (rdmd fixes) This is killer pull request from CyberShadow, improving a number of things: - Fixes usage of rdmd by multiple users on the same Posix system. - Using --build-only, by default, places the exe in the current directory rather than the usual tmp directory. The --build-only option is frequently (always, AFAIK) used like an alternate to bud/rebuild/xfbuild/etc, so this default makes much more sense. - RDMD should now work within VisualD - Don't append a second extension to -of path on Windows - A couple of things that had been fixed in an old pre-github patch, but failed to get applied correctly (thank god we're on github now!!): 1. Don't mistake .map filenames as the .d file to build. 2. Don't use std.getopt.config.stopOnFirstNonOption. As CyberShadow says: "rdmd already scans the command line to find the point where option parsing should stop. Including this getopt option breaks using rdmd with e.g. DMD's -map option."

Trass3r <un known.com> Trass3r writes - Using --build-only, by default, places the exe in the current directory rather than the usual tmp directory. The --build-only option is frequently (always, AFAIK) used like an alternate to bud/rebuild/xfbuild/etc Yep, build-only should be the default! And running the exe afterwards an option.

"Nick Sabalausky" writes http://www.d-programming-language.org/phobos/std_string.html Have the docs just not been updated yet, or did I do something wrong in the doc comments for my std.string changes?

writes "Jonathan M Davis" On Wednesday, October 26, 2011 14:20 Nick Sabalausky wrote: http://www.d-programming-language.org/phobos/std_string.html Have the docs just not been updated yet, or did I do something wrong in the doc comments for my std.string changes? It's Andrei that manages the site, whereas Walter does the dmd release, and it's been less than 3 hours since the release, so I expect that Andrei hasn't had the chance to update the site yet. - Jonathan M Davis

Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> Andrei Alexandrescu writes On 10/26/11 4:25 PM, Jonathan M Davis wrote: On Wednesday, October 26, 2011 14:20 Nick Sabalausky wrote: http://www.d-programming-language.org/phobos/std_string.html Have the docs just not been updated yet, or did I do something wrong in the doc comments for my std.string changes? It's Andrei that manages the site, whereas Walter does the dmd release, and it's been less than 3 hours since the release, so I expect that Andrei hasn't had the chance to update the site yet. - Jonathan M Davis Site updated. Andrei

writes John Chapman Anyone else experience slow compiles? Seems about 2-3 times slower than 2.055. Also, resulting executables are nearly twice as large on Windows. John.

Andrej Mitrovic <andrej.mitrovich gmail.com> Andrej Mitrovic writes On 10/27/11, John Chapman <j ch.com> wrote: Anyone else experience slow compiles? Seems about 2-3 times slower than 2.055. So far I'm getting only slightly slower builds (on the order of +100 msecs), but it does seem to be consistently slower. Also, resulting executables are nearly twice as large on Windows. On one of my apps: 2.055: no flags: 545 kb -g: 1567 kb 2.056: no flags: 1115 kb -g: 2143 kb I thought -g was to blame but they've doubled regardless.

writes "Mike James" "John Chapman" <j ch.com> wrote in message news:j8a00m$176m$1 digitalmars.com... Anyone else experience slow compiles? Seems about 2-3 times slower than 2.055. Also, resulting executables are nearly twice as large on Windows. John. Yeh, a simple app I've written has gone from 514k to 1098k in release. Where has all the extra 'goodness' come from :-O -=mike=-

writes Walter Bright On 10/27/2011 7:00 AM, Mike James wrote: Yeh, a simple app I've written has gone from 514k to 1098k in release. Where has all the extra 'goodness' come from :-O Take a look at the .map file (run dmc with -map). It'll tell you where the size comes from.

writes Andrej Mitrovic On 10/27/11, Walter Bright <newshound2 digitalmars.com> wrote: On 10/27/2011 7:00 AM, Mike James wrote: Yeh, a simple app I've written has gone from 514k to 1098k in release. Where has all the extra 'goodness' come from :-O Take a look at the .map file (run dmc with -map). It'll tell you where the size comes from. This is the only section that seem to have a big difference in length: 2.055: Length Name Class 00071CAEH _TEXT CODE 32-bit 2.056: Length Name Class 00101A1AH _TEXT CODE 32-bit Other than that, 2.056 actually creates fewer symbols than 2.055.

writes Trass3r This is the only section that seem to have a big difference in length: 2.055: Length Name Class 00071CAEH _TEXT CODE 32-bit 2.056: Length Name Class 00101A1AH _TEXT CODE 32-bit Hurray, template bloat ;)

writes Walter Bright On 10/27/2011 12:27 PM, Trass3r wrote: Hurray, template bloat ;) Actually, likely not. I did make a change reduced the granularity of the object files (multiobj). If that's the source of the large size increase, I need to revisit that.

writes "Vladimir Panteleev" On Thu, 27 Oct 2011 22:30:16 +0300, Walter Bright <newshound2 digitalmars.com> wrote: Actually, likely not. I did make a change reduced the granularity of the object files (multiobj). If that's the source of the large size increase, I need to revisit that. What are the benefits of reducing smart linkage granularity? -- Best regards, Vladimir mailto:vladimir thecybershadow.net

Walter Bright <newshound2 digitalmars.com> Walter Bright writes On 10/27/2011 1:48 PM, Vladimir Panteleev wrote: On Thu, 27 Oct 2011 22:30:16 +0300, Walter Bright <newshound2 digitalmars.com> wrote: Actually, likely not. I did make a change reduced the granularity of the object files (multiobj). If that's the source of the large size increase, I need to revisit that. What are the benefits of reducing smart linkage granularity? Fixing a bug where static ctors/dtors needed to be referenced by the ModuleInfo.

Andrej Mitrovic <andrej.mitrovich gmail.com> Andrej Mitrovic writes On 10/27/11, Trass3r <un known.com> wrote: Hurray, template bloat ;) You bet. And I thought I was clever writing all those templates. The linker flashed me internals just recently, that's a sure sign it's had enough templates for one day. lol.

Walter Bright <newshound2 digitalmars.com> Walter Bright writes On 10/27/2011 11:51 AM, Andrej Mitrovic wrote: On 10/27/11, Walter Bright<newshound2 digitalmars.com> wrote: On 10/27/2011 7:00 AM, Mike James wrote: Yeh, a simple app I've written has gone from 514k to 1098k in release. Where has all the extra 'goodness' come from :-O Take a look at the .map file (run dmc with -map). It'll tell you where the size comes from. This is the only section that seem to have a big difference in length: 2.055: Length Name Class 00071CAEH _TEXT CODE 32-bit 2.056: Length Name Class 00101A1AH _TEXT CODE 32-bit Other than that, 2.056 actually creates fewer symbols than 2.055. Take a look at the symbols, too.

writes "Mike James" "Walter Bright" <newshound2 digitalmars.com> wrote in message news:j8c7gj$2ctn$2 digitalmars.com... On 10/27/2011 7:00 AM, Mike James wrote: Yeh, a simple app I've written has gone from 514k to 1098k in release. Where has all the extra 'goodness' come from :-O Take a look at the .map file (run dmc with -map). It'll tell you where the size comes from. More interestingly if you open up the executable in a hex editor there are huge chunks of the .exe padded with zeros... -=mike=-

writes "Vladimir Panteleev" On Fri, 28 Oct 2011 11:42:33 +0300, Mike James <foo bar.com> wrote: More interestingly if you open up the executable in a hex editor there are huge chunks of the .exe padded with zeros... Most likely related to this issue: http://d.puremagic.com/issues/show_bug.cgi?id=2254 -- Best regards, Vladimir mailto:vladimir thecybershadow.net

Andrej Mitrovic <andrej.mitrovich gmail.com> Andrej Mitrovic writes On 10/28/11, Vladimir Panteleev <vladimir thecybershadow.net> wrote: Most likely related to this issue Interesting.. If I compile my app via dmd myapp.d <dependencies.lib> I get a 2.149 KB exe. If instead I do "dmd -c myapp.d" and then do "dmd myapp.obj <dependencies.lib> I get a 1.117KB exe. That's kind of odd. If I use Unilink to link the app object file to the dependencies I get a 340Kb working exe. Now that's something!

writes Jacob Carlborg On 2011-10-26 20:34, Walter Bright wrote: 100 bugs fixed! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.071.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.056.zip Impressive as always. I noticed there seem to be a couple of D2 related fixes in the D1 changelog: Bugzilla 6073: Cannot pass __traits(parent, ...) as a template parameter if it is a module Then there are a couple of fixes related to regressions for D2, don't know if they apply to D1 as well, just look for Regression(2.0xy). -- /Jacob Carlborg

writes Don On 27.10.2011 08:48, Jacob Carlborg wrote: On 2011-10-26 20:34, Walter Bright wrote: 100 bugs fixed! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.071.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.056.zip Impressive as always. I noticed there seem to be a couple of D2 related fixes in the D1 changelog: Bugzilla 6073: Cannot pass __traits(parent, ...) as a template parameter if it is a module Then there are a couple of fixes related to regressions for D2, don't know if they apply to D1 as well, just look for Regression(2.0xy). They do apply. In every case, some code was modified on the D1 compiler. Not all of the test cases apply to D1 though (sometimes there are bugs in the compiler internals, where we don't have a D1 test case that triggers them).

Walter Bright <newshound2 digitalmars.com> Walter Bright writes On 10/30/2011 11:01 PM, Don wrote: They do apply. In every case, some code was modified on the D1 compiler. Not all of the test cases apply to D1 though (sometimes there are bugs in the compiler internals, where we don't have a D1 test case that triggers them). Just to chime in, whenever I fix a bug in D2 I check to see if it is applicable to D1, and merge the patch into D1 if it is.

Jacob Carlborg <doob me.com> Jacob Carlborg writes On 2011-10-31 07:01, Don wrote: On 27.10.2011 08:48, Jacob Carlborg wrote: On 2011-10-26 20:34, Walter Bright wrote: 100 bugs fixed! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.071.zip http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.056.zip Impressive as always. I noticed there seem to be a couple of D2 related fixes in the D1 changelog: Bugzilla 6073: Cannot pass __traits(parent, ...) as a template parameter if it is a module Then there are a couple of fixes related to regressions for D2, don't know if they apply to D1 as well, just look for Regression(2.0xy). They do apply. In every case, some code was modified on the D1 compiler. Not all of the test cases apply to D1 though (sometimes there are bugs in the compiler internals, where we don't have a D1 test case that triggers them). Ok, I see. -- /Jacob Carlborg

writes "Vladimir Panteleev" On Wed, 26 Oct 2011 21:34:35 +0300, Walter Bright <newshound2 digitalmars.com> wrote: 100 bugs fixed! I'm only saddened that my std.socket cleanup pull request[1] wasn't merged, despite being ready for merging for over a month of inactivity. That's a few more months for my open-source network code not building with a stock DMD. Oh well, I guess I'll move the new std.socket to my network library if it comes to that. [1]: https://github.com/D-Programming-Language/phobos/pull/260 -- Best regards, Vladimir mailto:vladimir thecybershadow.net

writes Walter Bright On 10/27/2011 3:16 AM, Vladimir Panteleev wrote: I'm only saddened that my std.socket cleanup pull request[1] wasn't merged, despite being ready for merging for over a month of inactivity. That's a few more months for my open-source network code not building with a stock DMD. Oh well, I guess I'll move the new std.socket to my network library if it comes to that. [1]: https://github.com/D-Programming-Language/phobos/pull/260 Sorry about that. There are still a lot of great outstanding pull requests. There's nothing dramatic that marked this release, it's simply that enough was pulled to justify putting out a release.

writes "Steven Schveighoffer" On Thu, 27 Oct 2011 14:20:09 -0400, Walter Bright <newshound2 digitalmars.com> wrote: On 10/27/2011 3:16 AM, Vladimir Panteleev wrote: I'm only saddened that my std.socket cleanup pull request[1] wasn't merged, despite being ready for merging for over a month of inactivity. That's a few more months for my open-source network code not building with a stock DMD. Oh well, I guess I'll move the new std.socket to my network library if it comes to that. [1]: https://github.com/D-Programming-Language/phobos/pull/260 Sorry about that. There are still a lot of great outstanding pull requests. There's nothing dramatic that marked this release, it's simply that enough was pulled to justify putting out a release. *ahem* inout working? -Steve

Walter Bright <newshound2 digitalmars.com> Walter Bright writes On 10/27/2011 12:19 PM, Steven Schveighoffer wrote: Sorry about that. There are still a lot of great outstanding pull requests. There's nothing dramatic that marked this release, it's simply that enough was pulled to justify putting out a release. *ahem* inout working? Inout working is important, time will tell if it is dramatic.

Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> Andrei Alexandrescu writes On 10/27/11 5:16 AM, Vladimir Panteleev wrote: On Wed, 26 Oct 2011 21:34:35 +0300, Walter Bright <newshound2 digitalmars.com> wrote: 100 bugs fixed! I'm only saddened that my std.socket cleanup pull request[1] wasn't merged, despite being ready for merging for over a month of inactivity. That's a few more months for my open-source network code not building with a stock DMD. Oh well, I guess I'll move the new std.socket to my network library if it comes to that. [1]: https://github.com/D-Programming-Language/phobos/pull/260 Let's make sure we review and pull that in soon. Andrei

writes Steve Teale I'm only saddened that my std.socket cleanup pull request[1] wasn't merged, despite being ready for merging for over a month of inactivity. Vladimir, What's new and different in your std.sockets. Should I be using it for the native MySQL client? Steve

"Vladimir Panteleev" <vladimir thecybershadow.net> "Vladimir Panteleev" writes On Thu, 03 Nov 2011 17:44:22 +0200, Steve Teale <steve.teale britseyeview.com> wrote: What's new and different in your std.sockets. There's a list in this post: http://www.digitalmars.com/d/archives/digitalmars/D/Clean-up_of_std.socket_144324.html Should I be using it for the native MySQL client? If you use name lookup in your code, you should probably switch to the new API when the next DMD comes out. -- Best regards, Vladimir mailto:vladimir thecybershadow.net