DMD vs. GDC vs. LDC

Fritz picture Fritz · Jul 20, 2011 · Viewed 11.3k times · Source

What are the Pros/Cons of the different D Compilers? How is the performance and the standard compliance/D2 support? How well are debuggers supported? How good are the Error messages and is the IDE integration? How good is the 64 bit support? My thought so far:

DMD

  • Mature and well maintained
  • Only one platform, 64 bit support is not good
  • Not FOSS

GDC

  • Supports various platforms
  • Has very mature optimizations, so it's fast?
  • Out of date runtime?
  • GCC so a good debugger support?

LDC

  • Supports various platforms
  • LLVM, so it supports JITing?
  • Has very mature optimizations, so it's fast?
  • Not very well maintained?
  • Out of date runtime?

dead/not working

  • dang
  • sdc
  • MiniD - very, very nice, but not D (never claimed to be, though)

I'm thinking about targeting ARM and i think GDC is the tool of choice, but I'm not sure.

Answer

Trass3r picture Trass3r · Jul 20, 2011

DMD is the reference implementation. Only the backend is proprietary, the frontend is open source.
The code generation quality is not that overwhelming. x64 support is just a few months old though.

GDC and LDC are both based on the DMD frontend so it might take some time until a new version of the frontend is merged in.
Since the backends they use are very mature and good the quality of these compilers mainly depends on the glue code which connects frontend and backend.

LDC and GDC are still developed actively, but mainly by just a few guys.
All in all they could use some manpower.