LDC 0.10.0 has been released!

David Nadlinger see at klickverbot.at
Tue May 14 20:30:03 PDT 2013


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
support.

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.


Changes/Project Status
---

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
supported.

   - 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
next January!

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.


Package downloads
----

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.

https://github.com/downloads/ldc-developers/ldc/ldc-0.10.0-src.tar.gz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86_64.tar.gz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86_64.tar.xz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86.tar.gz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86.tar.xz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-osx-x86_64.tar.gz
https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-osx-x86_64.tar.xz

MD5 checksums:
f7a34136a2f057e7f3b966dcb1a82d69  ldc2-0.10.0-linux-x86_64.tar.gz
cffc112a5c2a7ea1da23108382756fdd  ldc2-0.10.0-linux-x86_64.tar.xz
6ccf81b6003937c9c053176340b389fb  ldc2-0.10.0-linux-x86.tar.gz
907699bf1453cb11c4d7d552579e55d6  ldc2-0.10.0-linux-x86.tar.xz
480e7a0e2b535555b7d47593c3a45584  ldc2-0.10.0-osx-x86_64.tar.gz
65354322e6dd3b812084b5a8322bf38e  ldc2-0.10.0-osx-x86_64.tar.xz

SHA-1 checksums:
6cfd64f89d74655dc2896d428ac26331c963f00a  ldc-0.10.0-src.tar.gz
79780c5300f417dd1356c3cfc237c1c05c85e347
ldc2-0.10.0-linux-x86_64.tar.gz
4ecc1d6afa8cc8587f5e2f261e35af54dcdc537a
ldc2-0.10.0-linux-x86_64.tar.xz
215a484009c690c1f12c7bf5343c503965ea01cb
ldc2-0.10.0-linux-x86.tar.gz
3b75765d60ec59ae03accd56b2f967ff352fd79d
ldc2-0.10.0-linux-x86.tar.xz
b8261accdafc181c2beedb67f7c3d9d5e047789e
ldc2-0.10.0-osx-x86_64.tar.gz
4af0f1e97b1c63f938b9253c9206e200438af9ec
ldc2-0.10.0-osx-x86_64.tar.xz


Acknowledgments
---

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!)


Contact
---

Generally, the shiny new digitalmars.D.ldc newsgroup
(http://forum.dlang.org) is the place to go for any questions
regarding LDC.

For further information, please refer to the D wiki:
http://wiki.dlang.org/LDC

In particular, for further information about reporting bugs see
http://wiki.dlang.org/Reporting_LDC_issues.

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.


David


More information about the digitalmars-d-ldc mailing list