On behalf of the LDC team, I am happy to announce that LDC 0.10.0
has officially been released!
LDC is a compiler for the D programming language that uses the
LLVM framework for code generation to take advantage of its
extensive optimization capabilities and wide target architecture
Except for cosmetics and documentation, this release is almost
identical to the first beta version, which was released a few
days ago. As preparations for the next DMD release have already
been started, we have decided to push out the release in its
current state even if a few new issues were found.
We are planning to follow up this release with a new version
(0.10.1) as soon as possible. It will address the most severe
bugs and also incorporate the upcoming DMD 2.061 frontend.
Due to the long time since the last official LDC release, it is
infeasible to give an in-depth list of changes here. Thus, just a
summary of the project status; the next release notes will
feature a changelog again.
LDC generally strives to deviate from DMD, the reference
compiler, as little as possible in user-visible behavior. It
includes a DMD-compatible driver (ldmd), and passes the D2 test
suite on x86/x86_64, with a few known exceptions:
- Built-in profile and coverage information generation is not
- Exception chaining is not implemented yet (throwing from a
cleanup handler while an exception is already in flight; LDC will
not propagate the correct exception).
- Variadic argument support on x86_64 is unreliable; code using
plain extern(C) and extern(D) variadics might work by chance, but
there are known bugs. Additionally, LDC does not require the
"__va_argsave" hack necessary for DMD, which unfortunately leads
to source incompatibilities if it is enabled via version(X86_64).
As for D1, there are no known DStress regressions on Linux x86_64
compared to the last LDC release, except for some test cases
which no longer pass because of frontend changes. Due to both
those frontend updates and some changes in LLVM's
atomics/intrinsics interface, LDC unfortunately cannot be built
against the last Tango release (0.9.99); it is necessary to use
Tango from SVN trunk.
In terms of operating systems, LDC is well-tested and officially
supported on Linux x86/x86_64 and OS X 10.7+. It should be
possible to use it on other Posix-ish systems (e.g. FreeBSD) as
well, but keep in mind that it receives very little testing
there. Work on Windows x64 support is progressing steadily – stay
tuned for a preview release, which might be ready as early as
Please note that for D2, OS X Lion (or higher) is unfortunately a
hard requirement, as LLVM relies on the operating system for
thread-local storage support, which was first introduced in 10.7.
The below binary packages are »DMD-style« self-contained packages
that require no installation and have no external dependencies
besides the system linker (gcc). They are based on LLVM 3.2 and
have been built on Ubuntu 10.04 resp. OS X 10.7. The x86_64
packages contain 64 bit compiler binaries, which support
generating both 32 and 64 bit executables.
Alternatively, you can easily build LDC from source yourself, see
http://wiki.dlang.org/LDC for instructions. This is also required
if you want to use LDC as a D1 compiler. If anybody wants to
contribute binary packages for D1, we will be happy to accept
them, but we chose not to officially release such for the time
being, as D1 support has received nowhere near the amount of
testing recently that D2 did.
Many people have made essential contributions to this release,
but special thanks to Alexey Prokhin, who is on a hiatus from D
right now but has implemented most of the initial D2 support in
LDC, and to Jernej Krempuš, who contributed extensive work on
vector operation support.
Also, a big thank you to Alex Rønne Petersen, who set up regular
LDC CI builds on the the Lycus Foundation machines, and the
Travis guys (http://travis-ci.org) for not kicking us off their
CI service for putting too much pressure on their systems.
Last but not least, thanks to our distribution packagers for
their work: Jonathan Mercier, who maintains the packages in the
official Fedora repositories, and Sven-Hendrik Haase, who does
the same for Arch Linux. (We would be happy to have packages in
more distributions, especially Debian and its derivatives – let
us know if you can help!)
Generally, the shiny new digitalmars.D.ldc newsgroup
(http://forum.dlang.org) is the place to go for any questions
For further information, please refer to the D wiki:
In particular, for further information about reporting bugs see
Oh, and new contributors are always very welcome – LDC is an
entirely community-driven effort. So, if you are interested in
compiler hacking, just visit the wiki for more information on how
to help, or ask away on the forums or the project IRC channel.