The first version of LDC, the LLVM based compiler for version one of the D programming language has been released for x86-32 Linux. Get it here!
We had already announced this release during the Tango conference in September (we hope the video of our presentation will be out soon), but – as was to be expected – it took a bit longer than planned.
LDC ships with a precompiled Tango rev 4237 and passes all except two of Tango’s unittests (io.digest.Md2 and text.locale.Posix fail). DStress results also look favorable and the GtkD demos work. The chances are good that your code will work with it too!
There are several known issues, the most severe being:
- LDC does not compile DWT successfully for unknown reasons
- an LLVM 2.4 bug sometimes leads to linker errors when unreachable code is optimized away
- LDC doesn’t fully follow the D calling convention (but it’s close!)
- we inherit every DMD-frontend related bug in the D bug tracker
- … there are more in our tracker
If you encounter a bug, please check our bug tracker and create a new ticket if the issue isn’t listed yet. Maybe you are feeling adventurous and want to try fixing it yourself; in that case take a look at our getting started guide.
LDC could support other platforms. Furthest along so far are
- x86-64 Linux: needs people to start fixing smaller bugs, exception bug (LLVM issue)
- x86-32 Mac: small runtime issues, needs tests
- x86-32 Windows: exceptions not supported (LLVM issue)
but support for these platforms won’t improve on its own! Several friendly people have offered their help – we need more of those!
For those with big CTFE memory needs, we have an experimental version of LDC available which has the compile-time garbage collector enabled. In the future, we’re going to experiment with a forward reference hack, but right now it still introduces too many regressions.
Feedback and questions are appreciated and should go to the mailing list. Alternatively, we’re often seen in #ldc on FreeNode.
Tomas Lindquist Olsen, Christian Kamm