bearophile, el 14 de julio a las 16:37 me escribiste: > 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.
And most of that list where just optimizations, that nothing had to do with the language. I think you have no point on this one (even when I do strongly believe that LDC can be a much better compiler than DMD and LLVM is a great backend). And even for things that are relevant to the language, I don't think D should be attached to *any* backend, not DMD, not LLVM. Things required by the specification should be doable in any backend if you plan to see more compilers in the future. -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- Los jóvenes no son solo brazos que nos cargan... También se los puede mandar a la guerra, que es su obligación. -- Ricardo Vaporeso