Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

LLVM D Compiler

LDC is a compiler for the D programming Language. It is based on the latest DMD frontend and uses LLVM as backend. LLVM provides a fast and modern backend for high quality code generation. LDC is released under a BSD license with exceptions for the DMD frontend and code from GDC.

The development takes place mostly on x86-32 and x86-64 Linux and that is where LDC works best. Support for other platforms and architectures is under development, but we are still looking for people to help test and adjust LDC for those platforms!

LDC already compiles a lot of D code, but should still be considered beta quality. Take a look at the tickets to get a better impression on what still needs to be implemented.

We have two sets of tests living in the tests directory. The mini testsuite in mini/ and minicomplex/ contains a few tests that are supposed to compile or run and is mostly used when fixing a bug. There is also the larger DStress based test suite comparing LDC revisions among themselves and to DMD.

Project Status and Downloads

  • D2 support is currently experimental and may not compile or work at all!

See the tickets for more details.

Communication

Feedback is much appreciated, you can contact us via IRC in the #ldc channel on FreeNode or the mailing list at ldc-dev@googlegroups.com.

The dsource forum is hardly ever looked at by the developers, please use the mailing list instead. If you've found a bug, feel free to report it directly.

D binding for LLVM

While not part of the LDC compiler, a llvm binding to LLVM for D can be found in the old SVN repository. The binding is a wrapper around the LLVM C interface with a few extensions. See the source/samples for more information.

Documentation

Documentation is still sparse, but there is a little on the versions and pragmas. There is also the beginnings of a hacker's guide. And the release checklist.

How To Compile

Build instructions

Install instructions for Gentoo and Ubuntu

Gentoo
Ubuntu

Submitting Patches

Clone the Mercurial repository, make your changes, then use hg export and submit a ticket with patch attached. Alternatively send the output to either lindquist or ChristianK:

hg export <revision> > blah-blah.patch
Copyright © 2008, LDC Development Team.