Re: Release D 2.075.0

2017-12-24 Thread Patrick Schluter via Digitalmars-d-announce

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:
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.


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.


Re: Release D 2.075.0

2017-08-08 Thread Moritz Maxeiner via Digitalmars-d-announce

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.html


Sorry 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



Re: Release D 2.075.0

2017-07-30 Thread Joakim via Digitalmars-d-announce

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:


-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/


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


Re: Release D 2.075.0

2017-07-25 Thread Walter Bright via Digitalmars-d-announce

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.



Re: Release D 2.075.0

2017-07-24 Thread Brad Roberts via Digitalmars-d-announce

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:

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.


It did that a long time ago, but as a private repository.  I suspect it 
won't stay private forever though.


Re: Release D 2.075.0

2017-07-24 Thread Dmitry Olshansky via Digitalmars-d-announce

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.




Re: Release D 2.075.0

2017-07-24 Thread Moritz Maxeiner via Digitalmars-d-announce

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:
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.


That's a sensible choice for the official binary distribution.

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.


Re: Release D 2.075.0

2017-07-24 Thread Martin Nowak via Digitalmars-d-announce

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.




Re: Release D 2.075.0

2017-07-24 Thread Moritz Maxeiner via Digitalmars-d-announce

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`).


Re: Release D 2.075.0

2017-07-24 Thread Mike Parker via Digitalmars-d-announce

On Monday, 24 July 2017 at 17:18:53 UTC, Joakim wrote:


typo: "module structure is avaialble"


Fixed. Thanks.


Re: Release D 2.075.0

2017-07-24 Thread Joakim via Digitalmars-d-announce

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:


-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/


typo: "module structure is avaialble"


Re: Release D 2.075.0

2017-07-24 Thread Mike Parker via Digitalmars-d-announce

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/


Re: Release D 2.075.0

2017-07-22 Thread Walter Bright via Digitalmars-d-announce

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!


Re: Release D 2.075.0

2017-07-22 Thread Walter Bright via Digitalmars-d-announce

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:

"Whaaat? 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 :-)



Re: Release D 2.075.0

2017-07-22 Thread Martin Nowak via Digitalmars-d-announce

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.067


They don't sell single-core CPUs any longer ;). What matters is 
the time you have to wait.


Re: Release D 2.075.0

2017-07-22 Thread Martin Nowak via Digitalmars-d-announce

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.


Re: Release D 2.075.0

2017-07-20 Thread Andre Pany via Digitalmars-d-announce

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é


Re: Release D 2.075.0

2017-07-20 Thread Patrick Schluter via Digitalmars-d-announce

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:
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.


1 cpu on 2.4 GHz Westmere, gcc 6.2 version 2.067


Re: Release D 2.075.0 does not install on Windows 10 with VS2017

2017-07-20 Thread Seb via Digitalmars-d-announce

On Thursday, 20 July 2017 at 17:44:29 UTC, Jolly James wrote:

On Thursday, 20 July 2017 at 16:28:54 UTC, jan wrote:

seems like i am not the first one to have that problem.

please fix.


everything working fine from here :)
Maybe you should state what exactly is not working for you and 
paste some error messages...


+1

As a gentle reminder, the announce NG is __not__ meant for 
reporting issues.
Please use the bugtracker - otherwise your issue might not be 
seen by the concerning volunteers:


http://dlang.org/bugstats.html


Re: Release D 2.075.0 does not install on Windows 10 with VS2017

2017-07-20 Thread Jolly James via Digitalmars-d-announce

On Thursday, 20 July 2017 at 16:28:54 UTC, jan wrote:

seems like i am not the first one to have that problem.

please fix.


everything working fine from here :)
Maybe you should state what exactly is not working for you and 
paste some error messages...


Release D 2.075.0 does not install on Windows 10 with VS2017

2017-07-20 Thread jan via Digitalmars-d-announce

seems like i am not the first one to have that problem.

please fix.


Re: Release D 2.075.0

2017-07-20 Thread jj via Digitalmars-d-announce
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!!


Re: Release D 2.075.0

2017-07-20 Thread Adrian Matoga via Digitalmars-d-announce

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.




Re: Release D 2.075.0

2017-07-20 Thread Vladimir Panteleev via Digitalmars-d-announce

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:

"Whaaat? How can a compiler compile in 3 seconds?!"



Re: Release D 2.075.0

2017-07-20 Thread Walter Bright via Digitalmars-d-announce

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.)


Re: Release D 2.075.0

2017-07-20 Thread Patrick Schluter via Digitalmars-d-announce

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:


-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.


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.


Re: Release D 2.075.0

2017-07-19 Thread Joseph Rushton Wakeling via Digitalmars-d-announce

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


- -Martin


Congratulations 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!).


Re: Release D 2.075.0

2017-07-19 Thread Walter Bright via Digitalmars-d-announce

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.html


Pretty dazz! Thank you!


Re: Release D 2.075.0

2017-07-19 Thread Walter Bright via Digitalmars-d-announce

On 7/19/2017 12:34 PM, Joakim wrote:

when the backend is in D too


The 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


Re: Release D 2.075.0

2017-07-19 Thread Joakim via Digitalmars-d-announce

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.


Release D 2.075.0

2017-07-19 Thread Martin Nowak via Digitalmars-d-announce

-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-