Developing a plan for D2.0: Getting everything on the table

Leandro Lucarella llucax at gmail.com
Tue Jul 14 14:33:40 PDT 2009


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



More information about the Digitalmars-d mailing list