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.

Reply via email to