digitalmars.D.announce - Release D 2.075.0
- Martin Nowak (25/25) Jul 19 2017 -----BEGIN PGP SIGNED MESSAGE-----
- Joakim (5/8) Jul 19 2017 Wow, dmd builds in 12 seconds on a single linux/x64 core, can't
- Walter Bright (5/6) Jul 19 2017 The sticking point there is the base D compiler used by GDC and LDC need...
- Patrick Schluter (9/19) Jul 20 2017 version 2.067 that still had the C++ frontend took more than 100
- Walter Bright (4/12) Jul 20 2017 DMC++ takes about 15 seconds to do an optimized build of itself on my ol...
- Vladimir Panteleev (11/20) Jul 20 2017 One day, a colleague and I were working on migrating a large MSVC
- Walter Bright (16/23) Jul 22 2017 Back in the 80's (!) computer magazines regularly ran C compiler benchma...
- Adrian Matoga (3/5) Jul 20 2017 I can hardly believe it. I remember versions 2.05x building in
- Patrick Schluter (2/8) Jul 20 2017 1 cpu on 2.4 GHz Westmere, gcc 6.2 version 2.067
- Martin Nowak (3/4) Jul 22 2017 They don't sell single-core CPUs any longer ;). What matters is
- Patrick Schluter (19/25) Dec 24 2017 My times were all single threaded. Comparing parallel builds on a
- Martin Nowak (16/19) Jul 22 2017 Using ccache solves the (tiny) problem as the backend hardly
- Walter Bright (10/18) Jul 22 2017 It'll be converted anyway. :-)
- Moritz Maxeiner (7/11) Jul 24 2017 One thing to watch out for, though, is that if the D frontend
- Martin Nowak (8/14) Jul 24 2017 We're using the latest previous major release line to build
- Moritz Maxeiner (17/29) Jul 24 2017 When you bootstrap (e.g. on any source based Linux distribution
- Dmitry Olshansky (4/10) Jul 24 2017 Does that mean that DMC++ will hit Github?
- Brad Roberts via Digitalmars-d-announce (3/13) Jul 24 2017 It did that a long time ago, but as a private repository. I suspect it
- Walter Bright (2/4) Jul 25 2017 Yes to both. I just haven't gotten around to it yet.
- Walter Bright (2/11) Jul 19 2017 Pretty dazz! Thank you!
- Joseph Rushton Wakeling (12/21) Jul 19 2017 Congratulations Martin and everyone!
- jj (6/6) Jul 20 2017 wow, how nice - but it is not installed correctly with VS2017.
- Andre Pany (4/7) Jul 20 2017 Could you please create a post on reddit?
- Mike Parker (10/13) Jul 24 2017 I've published a post on the blog to announce the release there.
- Joakim (2/18) Jul 24 2017 typo: "module structure is avaialble"
- Mike Parker (2/3) Jul 24 2017 Fixed. Thanks.
- Joakim (4/20) Jul 30 2017 Looks like the blog post approach worked, a new all-time high in
- Moritz Maxeiner (7/17) Aug 08 2017 Sorry for replying so late, but the changelog for 2.075.0[1]
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.075.0. This release comes with various phobos additions, a repackaged std.datetime, configurable Fiber stack guard pages (now also on Posix), and optional precise GC scanning for the DATA/TLS segment (static data) on Windows. http://dlang.org/download.html http://dlang.org/changelog/2.075.0.html - -Martin -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEpzRNrTw0HqEtE8TmsnOBFhK7GTkFAllvfHYACgkQsnOBFhK7 GTnSzhAAoSbvYNslsKZ0yqOOlQIIGAlfhNc4SlZold83DS/SPVjMzCPRURHwQgvj T+NxivnAT8t794MBauYFv8t5JF1vEKf7e6Nyc6durr6zEDLwIuRGkjXnBzZjgC/J DrCKTxuLpWqW+EIDB0V6VNUsrK+M9bz4GFZe3vYzK8CAO+c0l1a4/g9vf8Uf4KIv 4cSZ2lxsSZf4VuPlfPKXc9bdnVDNxm3uare/BtYM94V6w0f+z4xbmf9FCa86t4P+ Z7Ll2z14n7Ps9BxgLjHGkcPMeO/IwPL/8o+gce0QVlitHirfxayTtQyv/M4HwY+9 A2IGfrrErfeyJ1JmnBHw6uwQdER7C3z3NJPKP+GCF6vIuDXxxUOE9Nu792HBsFMg Y6osvMqXqEp7dDAytTAnTKOd2R3Lg8ys7gx5xW21aBRRAhO4zBQ5bMTpvXhxEVxn AKcnq4ri3tuwkPoPPNDSXMk32lqy0t/Ere8/X8dhL/8J04CNvAuiTaVQJsQnHKdw 4tQ7q55BGdsNqWdA7DHBFGcgbHmBsNfKA7fIb1OpggVzADNT7tLEAM4H498NAnoO 4AjnKZLJw1KhIdycDRkMz13m3zgVQvV4EdOENXTOlyOoRUrPA9cQx5N01MLA8WBG 4FkbqIlsjFBUj2NHRq1KsxDAI34DbSPXFzIeX5MJTixXqDL0eWo= =HmY4 -----END PGP SIGNATURE-----
Jul 19 2017
On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 [...]Wow, dmd builds in 12 seconds on a single linux/x64 core, can't wait to see what that time is when the backend is in D too, especially since it's taking most of the compile time now. Thanks to those involved for all the work on the release.
Jul 19 2017
On 7/19/2017 12:34 PM, Joakim wrote:when the backend is in D tooThe sticking point there is the base D compiler used by GDC and LDC needs to be upgraded with the -mv switch. For discussion: https://github.com/dlang/dmd/pull/6907
Jul 19 2017
On Wednesday, 19 July 2017 at 19:34:44 UTC, Joakim wrote:On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:version 2.067 that still had the C++ frontend took more than 100 seconds. I think if the backend is translated to D, building the compiler will take not more than 2 seconds. To put it in perspective, building gcc with only C and C++ support takes around 15 minutes on my machine and clang+llvm is ridiculously slow to compile with not far from 1 hour compilation. Ok, these projects are much, much bigger but that doesn't change the fact that C++ is slow to compile.-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 [...]Wow, dmd builds in 12 seconds on a single linux/x64 core, can't wait to see what that time is when the backend is in D too, especially since it's taking most of the compile time now. Thanks to those involved for all the work on the release.
Jul 20 2017
On 7/20/2017 12:19 AM, Patrick Schluter wrote:version 2.067 that still had the C++ frontend took more than 100 seconds. I think if the backend is translated to D, building the compiler will take not more than 2 seconds. To put it in perspective, building gcc with only C and C++ support takes around 15 minutes on my machine and clang+llvm is ridiculously slow to compile with not far from 1 hour compilation. Ok, these projects are much, much bigger but that doesn't change the fact that C++ is slow to compile.DMC++ takes about 15 seconds to do an optimized build of itself on my old Windows XP machine. (Of course, it doesn't use STL, or any templates for that matter. The code predates templates.)
Jul 20 2017
On Thursday, 20 July 2017 at 07:19:03 UTC, Patrick Schluter wrote:version 2.067 that still had the C++ frontend took more than 100 seconds. I think if the backend is translated to D, building the compiler will take not more than 2 seconds. To put it in perspective, building gcc with only C and C++ support takes around 15 minutes on my machine and clang+llvm is ridiculously slow to compile with not far from 1 hour compilation. Ok, these projects are much, much bigger but that doesn't change the fact that C++ is slow to compile.One day, a colleague and I were working on migrating a large MSVC project to LLVM. Due to various reasons (using git master / bisecting regressions), this involved building LLVM from source code, which took an exorbitant amount of time (about 40 minutes IIRC). Later that day, I mentioned in passing that we might make building D part of the build process (of a project using D code), since building the compiler took only 3 seconds on my machine. To quote my colleague: "Whaaaaaaaaaaat? How can a compiler compile in 3 seconds?!"
Jul 20 2017
On 7/20/2017 1:20 AM, Vladimir Panteleev wrote:Later that day, I mentioned in passing that we might make building D part of the build process (of a project using D code), since building the compiler took only 3 seconds on my machine. To quote my colleague: "Whaaaaaaaaaaat? How can a compiler compile in 3 seconds?!"Back in the 80's (!) computer magazines regularly ran C compiler benchmark results. (At one time I counted 30 C compilers available for the PC.) I took a class at Standford on compilers, which included a lot of info on data flow analysis. I decided to implement it. Data flow analysis optimizations basically deleted the benchmark code, because it didn't do anything (lots of dead assignments). This compiler was released as Datalight Optimum C. The article writer concluded that the compiler had a giant bug in it, because it ran the benchmarks impossibly fast, because it deleted the dead code. Instead of being lauded as the only C compiler on the PC that did global data flow analysis, it was labeled as a buggy piece of crap. By the time we dug ourselves out of that PR disaster, other compilers had implemented it, too. Ironically, these days DMD gets repeatedly charged with not doing data flow analysis, and clang is assumed to have invented data flow analysis. Just goes to show the power of marketing :-)
Jul 22 2017
On Thursday, 20 July 2017 at 07:19:03 UTC, Patrick Schluter wrote:version 2.067 that still had the C++ frontend took more than 100 seconds.I can hardly believe it. I remember versions 2.05x building in about 11 seconds.
Jul 20 2017
On Thursday, 20 July 2017 at 12:10:14 UTC, Adrian Matoga wrote:On Thursday, 20 July 2017 at 07:19:03 UTC, Patrick Schluter wrote:1 cpu on 2.4 GHz Westmere, gcc 6.2 version 2.067version 2.067 that still had the C++ frontend took more than 100 seconds.I can hardly believe it. I remember versions 2.05x building in about 11 seconds.
Jul 20 2017
On Thursday, 20 July 2017 at 18:22:36 UTC, Patrick Schluter wrote:1 cpu on 2.4 GHz Westmere, gcc 6.2 version 2.067They don't sell single-core CPUs any longer ;). What matters is the time you have to wait.
Jul 22 2017
On Thursday, 20 July 2017 at 12:10:14 UTC, Adrian Matoga wrote:On Thursday, 20 July 2017 at 07:19:03 UTC, Patrick Schluter wrote:My times were all single threaded. Comparing parallel builds on a shared server with varying loads is kind of pointless as the build are all over the place and can not be used to draw some conclusion. Furthermore, I avoid parallel builds as there are often problems with them. My first build of clang+llvm that I had done with -j option was a catastrophe, it grabbed all the cpus and hogged the machine for a long time and failed to build properly. Only when limiting to -j 4 was I able to build it and even then it took a little less than an hour. The nice thing with dmd is that you can build it gently in single task and it doesn't take you a whole morning to get it set up. PS: The environment we work on at work are very restricted for security reasons, this means that the servers are built from standard images provided by IT and any piece of software that we want to install has to be built from source. The standard image has gcc 4.4.7 installed, has no graphic libraries (X or whatever). Even git has to be built from source.version 2.067 that still had the C++ frontend took more than 100 seconds.I can hardly believe it. I remember versions 2.05x building in about 11 seconds.
Dec 24 2017
On Thursday, 20 July 2017 at 07:19:03 UTC, Patrick Schluter wrote:version 2.067 that still had the C++ frontend took more than 100 seconds. I think if the backend is translated to D, building the compiler will take not more than 2 seconds.Using ccache solves the (tiny) problem as the backend hardly every changes. But even without ccache `make -C src -f posix.mak ../generated/linux/release/64/backend.a -j8` runs in about a second on my machine, hardly anything that needs optimization given that it's a solid codebase with little ongoing development. Also translating the C++ backend to D zero benefit to D users (at worst it introduces codegen bugs). I'm inclined to say we should rather spent our time on the various more important issues. It was a good move for the frontend as that will allow us to make use of D features to improve the code/architecture and to eventually turn it into a proper library. Converting the stable and well tested codebase of the backend, which will hardly receive any feature development, is unlikely to ever pay off.
Jul 22 2017
On 7/22/2017 2:04 AM, Martin Nowak wrote:Also translating the C++ backend to D zero benefit to D users (at worst it introduces codegen bugs). I'm inclined to say we should rather spent our time on the various more important issues. It was a good move for the frontend as that will allow us to make use of D features to improve the code/architecture and to eventually turn it into a proper library. Converting the stable and well tested codebase of the backend, which will hardly receive any feature development, is unlikely to ever pay off.It'll be converted anyway. :-) I'm about half way through converting the DMC++ front end. It isn't as difficult as I expected. The -betterC is helping a lot, as well as the fact that DMC++ is still pretty much C code. Some years back Daniel Murphy and I removed a lot of the preprocessor trickery from it, which helps, too. Note that DMC++ is now Boost licensed as well. Putting the entire set in D (C compiler, C++ compiler, C preprocessor, htod converter, optimizer, code generator) makes the whole thing much more tractable, and who knows what we will be able to do with it!
Jul 22 2017
On Saturday, 22 July 2017 at 21:22:00 UTC, Walter Bright wrote:Putting the entire set in D (C compiler, C++ compiler, C preprocessor, htod converter, optimizer, code generator) makes the whole thing much more tractable, and who knows what we will be able to do with it!One thing to watch out for, though, is that if the D frontend starts using features introduced after its conversion to D, we are going to need to explicitly document the bootstrapping path (right now it's still simple enough with `C++ compiler -> D compiler with 2.068.2 frontend (e.g. ldc 0.17.x) -> Latest D compiler`).
Jul 24 2017
On Monday, 24 July 2017 at 22:15:16 UTC, Moritz Maxeiner wrote:One thing to watch out for, though, is that if the D frontend starts using features introduced after its conversion to D, we are going to need to explicitly document the bootstrapping path (right now it's still simple enough with `C++ compiler -> D compiler with 2.068.2 frontend (e.g. ldc 0.17.x) -> Latest D compiler`).We're using the latest previous major release line to build releases, so 2.068.x build 2.069.x, builds 2.070.x, ..., builds 2.075.0. You might get away with skipping versions, but that's not how the releases were built. Bootstrapping the compiler to run on new architectures requires cross-compliation, but it's less of an interest than cross-compiling for a different architecture.
Jul 24 2017
On Monday, 24 July 2017 at 23:25:50 UTC, Martin Nowak wrote:On Monday, 24 July 2017 at 22:15:16 UTC, Moritz Maxeiner wrote:That's a sensible choice for the official binary distribution.One thing to watch out for, though, is that if the D frontend starts using features introduced after its conversion to D, we are going to need to explicitly document the bootstrapping path (right now it's still simple enough with `C++ compiler -> D compiler with 2.068.2 frontend (e.g. ldc 0.17.x) -> Latest D compiler`).We're using the latest previous major release line to build releases, so 2.068.x build 2.069.x, builds 2.070.x, ..., builds 2.075.0.You might get away with skipping versions, but that's not how the releases were built.When you bootstrap (e.g. on any source based Linux distribution such as Gentoo, Funtoo, ...) you want the path to be as short as feasible (even with dmd's fairly short compile times) and how the official binary releases are/were build isn't part of the consideration, because - unlike them - you don't happen to have a D compiler with D frontend version - 1 ready for use. In any case, all that would be required - if the path ever becomes longer - would be an automatically updated file like this: bootstrap-path: --- 2.068.2 --- An autotester can then check before each release if dmd master can still be build by dmd with the version of the last line in that file, and if not, append the last dmd release to it.
Jul 24 2017
On Saturday, 22 July 2017 at 21:22:00 UTC, Walter Bright wrote:On 7/22/2017 2:04 AM, Martin Nowak It'll be converted anyway. :-)Putting the entire set in D (C compiler, C++ compiler, C preprocessor, htod converter, optimizer, code generator) makes the whole thing much more tractable, and who knows what we will be able to do with it!Does that mean that DMC++ will hit Github? I'm also interested in open-sourced version of snn library, of course.
Jul 24 2017
On 7/24/2017 10:35 PM, Dmitry Olshansky via Digitalmars-d-announce wrote:On Saturday, 22 July 2017 at 21:22:00 UTC, Walter Bright wrote:It did that a long time ago, but as a private repository. I suspect it won't stay private forever though.On 7/22/2017 2:04 AM, Martin Nowak It'll be converted anyway. :-)Putting the entire set in D (C compiler, C++ compiler, C preprocessor, htod converter, optimizer, code generator) makes the whole thing much more tractable, and who knows what we will be able to do with it!Does that mean that DMC++ will hit Github? I'm also interested in open-sourced version of snn library, of course.
Jul 24 2017
On 7/24/2017 10:35 PM, Dmitry Olshansky wrote:Does that mean that DMC++ will hit Github? I'm also interested in open-sourced version of snn library, of course.Yes to both. I just haven't gotten around to it yet.
Jul 25 2017
On 7/19/2017 8:36 AM, Martin Nowak wrote:Glad to announce D 2.075.0. This release comes with various phobos additions, a repackaged std.datetime, configurable Fiber stack guard pages (now also on Posix), and optional precise GC scanning for the DATA/TLS segment (static data) on Windows. http://dlang.org/download.html http://dlang.org/changelog/2.075.0.htmlPretty dazz! Thank you!
Jul 19 2017
On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:Glad to announce D 2.075.0. This release comes with various phobos additions, a repackaged std.datetime, configurable Fiber stack guard pages (now also on Posix), and optional precise GC scanning for the DATA/TLS segment (static data) on Windows. http://dlang.org/download.html http://dlang.org/changelog/2.075.0.html - -MartinCongratulations Martin and everyone! A snap package for DMD 2.075.0 is now available in the `edge` channel of the snap store: sudo snap install --classic --edge dmd for a fresh install, or sudo snap refresh --classic --edge dmd ... for anyone who already has an earlier version installed. Note that there's a known issue with `rdmd` in this package (which is an issue with `snapd` rather than the package itself). However, please do let me know about any other issues (or successes!).
Jul 19 2017
wow, how nice - but it is not installed correctly with VS2017. While installing, i am told that 64bit will not work. what a SH.T you guys should get your act together - just once. it's always a real experience to install software and have problems. Nice experience!!
Jul 20 2017
On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 [...]Could you please create a post on reddit? Kind regards André
Jul 20 2017
On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.075.0.I've published a post on the blog to announce the release there. For future releases, I'll be coordinating with Martin so that I can time the blog posts to go out on the same day as the forum announcements. This will give us something more redditable than the forum announcement or the changelog. Blog: https://dlang.org/blog/2017/07/24/new-d-compiler-release-dmd-2-075-0/ Reddit: https://www.reddit.com/r/programming/comments/6p89zj/new_d_compiler_release_dmd_20750/
Jul 24 2017
On Monday, 24 July 2017 at 13:18:01 UTC, Mike Parker wrote:On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:typo: "module structure is avaialble"-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.075.0.I've published a post on the blog to announce the release there. For future releases, I'll be coordinating with Martin so that I can time the blog posts to go out on the same day as the forum announcements. This will give us something more redditable than the forum announcement or the changelog. Blog: https://dlang.org/blog/2017/07/24/new-d-compiler-release-dmd-2-075-0/ Reddit: https://www.reddit.com/r/programming/comments/6p89zj/new_d_compiler_release_dmd_20750/
Jul 24 2017
On Monday, 24 July 2017 at 17:18:53 UTC, Joakim wrote:typo: "module structure is avaialble"Fixed. Thanks.
Jul 24 2017
On Monday, 24 July 2017 at 13:18:01 UTC, Mike Parker wrote:On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:Looks like the blog post approach worked, a new all-time high in downloads, and still heading up: :D http://erdani.com/d/downloads.daily.png-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.075.0.I've published a post on the blog to announce the release there. For future releases, I'll be coordinating with Martin so that I can time the blog posts to go out on the same day as the forum announcements. This will give us something more redditable than the forum announcement or the changelog. Blog: https://dlang.org/blog/2017/07/24/new-d-compiler-release-dmd-2-075-0/ Reddit: https://www.reddit.com/r/programming/comments/6p89zj/new_d_compiler_release_dmd_20750/
Jul 30 2017
On Wednesday, 19 July 2017 at 15:36:22 UTC, Martin Nowak wrote:-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Glad to announce D 2.075.0. This release comes with various phobos additions, a repackaged std.datetime, configurable Fiber stack guard pages (now also on Posix), and optional precise GC scanning for the DATA/TLS segment (static data) on Windows. http://dlang.org/download.html http://dlang.org/changelog/2.075.0.htmlSorry for replying so late, but the changelog for 2.075.0[1] incorrectly list issue 14246[2] as solved, when the fix was, in fact, reverted [3]. [1] http://dlang.org/changelog/2.075.0.html#bugfix-list [2] https://issues.dlang.org/show_bug.cgi?id=14246 [3] https://github.com/dlang/dmd/pull/6913
Aug 08 2017