On 18 February 2016 at 11:42, Márcio Martins via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On Thursday, 18 February 2016 at 10:16:40 UTC, Radu wrote:
On Thursday, 18 February 2016 at 00:35:01 UTC, Chris Wright wrote:
On Wed, 17 Feb 2016 22:57:20 +0000, Márcio Martins wrote:

I was reading the other thread "Speed kills" and was wondering if there is any practical reason why DMD is the official compiler?

Walter Bright is the lead developer, and for legal reasons he will never touch source code from a compiler he didn't write. And since DMD is something like twice as fast as LDC, there's at least some argument in favor of keeping it around.

Should Walter retire, there's a reasonable chance that LDC will become the primary compiler. However, compilation speed is important.

I'm not sure how different LDC and DMD are, but perhaps you could use DMD for development and LDC for production builds?

Walter should not need to ever work on D compiler back-ends, there are *a lot* of issues to be dealt with in the language implementation that are front-end only or at least not backend related. There are others that can work/already work with the LLVM backend and they seam to know what they are doing.

There warts and issues in the language/runtime/phobos are well know, spending time fixing them is more valuable for the community rather than having Walter (maybe others) working on any dmd backend stuff.

As rsw0x suggested, a push to get LDC on sync with mainline, and switching to it after it would make more sense in the long run. Probably focusing on LDC and investing more man power will also help fix any perf issues re. compile time, there should bot be much to loose here at least for debug compile times.

All this of course depends on Walter's willing to give up working on DMD, whatever this means for him.

Walter doesn't have to give up working on DMD, right? Everyone could continue working on DMD, perhaps a few people could help on all three, I don't know... It's important if more people work on DMD and focus on polishing the frontend and language features, being the reference compiler, and used by all three compilers as well. What could potentially be important would be to backport key fixes/features from current frontend to LDC/GDC as well.

There seems to be a deterrence against backporting ie: 2.068 fixes to 2.066 for LDC/GDC.  I have no idea why, I do it all the time. :-)