On Friday, 6 December 2013 at 12:13:28 UTC, Joseph Rushton
Wakeling wrote:
On 04/12/13 23:14, Walter Bright wrote:
I'm opposed to it.
For one example, a year ago I had to make dmd work on Win64.
LLVM didn't support
Win64. I would have been stymied.
It is very good for D to have 3 equivalent implementations -
dmd, gdc, and ldc.
Each has its strengths and weaknesses. It makes for a very
strong ecosystem.
The problem we have is that while all 3 implementations are
equivalent, some implementations are more equivalent than
others ... :-)
Sometimes this can be a downstream problem -- people testing
code with DMD but not LDC or GDC, so bugs or issues don't get
recognized (or they do, but the bugs don't get reported to the
compiler teams). But more fundamentally, it's that if you're
running git-HEAD DMD, you're running the very latest code,
whereas if you're running git-HEAD LDC or GDC, you're still
running only the latest stable frontend/runtime/standard
library releases.
So, that means that if you need the ability to get fast
turnaround on bugfixes or new features, you HAVE to run DMD.
That really seems a constraint that we ought to be free of.
But is D not still doing a better job than Microsoft is of
keeping their C++ compiler up to the latest C++ standard?
In fact in the C++ world all the compilers lag the standard to
some extent. Its hard to expect that D would have all the
compilers exactly in sync, though with the common front-end it
should help.