To help other D implementations

bearophile bearophileHUGS at lycos.com
Thu Apr 22 15:12:21 PDT 2010


One of the purposes of D is to keep an eye on its implementation, to make it not too much hard to write, and to allow a fast compilation.

While the back-end of dmd lacks some features that both GCC and LLVM back-ends have, there are few DMD features used by D that are not easy to implement with those free back-ends.

You can find info about this regarding LDC here, see the long section "Violations of the specification":
http://www.dsource.org/projects/ldc/wiki/Docs

And here about GDC, see the "Known Differences from DMD" and "Inline Assembler Notes" sections:
http://dgcc.sourceforge.net/gdc/manual.html

I think porting D to the LLVM and GCC back-ends is important enough. It can be positive to take a look at those porting issues (and keeping in mind gcc and llvm are moving targets that can improve and become more flexible in future, or them being open source can even be modified to support D features better), and reconsider how useful the related D features are. If they are seen as not so important, then it's even possible to drop those features, to allow the creation of D compilers with more conformance with the D specs.

I think gotos to labels inside inline asm blocks cause implementation problems to both ldc and gdc.

Bye,
bearophile



More information about the Digitalmars-d mailing list