Robert Clipsham:
>What exactly is it you mean by this?<

I keep saying wrong things every day, so this too can be wrong.

DMD back-end is not bad, it compiles quite quickly, and there are many tests 
where the binary it produces is a bit faster than the binary produced by LDC.

But LLVM offers many interesting things that are hard to do with DMD's 
back-end, often such things are already implemented in LLVM (maybe not fully 
refined yet, but they are working on it) and they are waiting to be used. I'm 
looking at the linker too, for example with LDC you can do advanced Link-time 
optimizations, and in future it will probably be able to do even more things 
(like reducing code bloat produced by templates).

On the other hand few things done by DMD are hard to do with LLVM.
So I think D development/developers have to take a more serious look at LLVM, 
and to design D2 thinking that LLVM and its qualities may be available. A 
language like D must not be designed to work on LLVM only; but ignoring what 
LLVM offers, and limiting the D design just to what is able to do today the DMD 
backend, is not right.

If D will become widespread, four years from now people will probably use LDC 
more than DMD, so designing D around the limits of DMD doesn't sound right.

In another post I have listed part of the things offered by LLVM, for example 
it can compile pieces of code dynamically at runtime, and the compiler can be 
used as a collection of tools to compile code, etc. Such feature was refused by 
Walter also because it's hard/long to implement (on DMD). But if it's available 
then it may be better to think what can be done with LLVM.

Bye,
bearophile

Reply via email to