LDC 0.11.0 has been released!
David Nadlinger
code at klickverbot.at
Sun Jun 9 07:35:17 PDT 2013
Hi all,
As the third round of beta testing did not turn up any new problems,
I'm glad to announce the official release of LDC 0.11.0. A quick
overview of the changes since the last release:
- Based on the DMD 2.062 frontend.
- D1 is no longer supported.
- As with recent versions of DMD, .di file generation now strips
functions bodies. The '-Hkeep-all-bodies' command line has been added
to disable this, like '-inline' does for DMD.
- LDMD now correctly parses extra arguments for -run and no longer
drops -deps.
- Previously, due to an oversight LDC always optimized for the
features of the host CPU, and not for a generic x86/x86_64 CPU as
expected. This has been fixed; for the old behavior use -march=native.
- -O now is equivalent to -O3 (instead of -O2) to match DMD.
- The GC to stack promotion optimizer pass is enabled by default on
-O2 and higher. It is still *very* conservative, though (due to a
change in the signature of the relevant druntime functions).
- The LDC_global_crt_ctor/LDC_global_crt_dtor pragmas allow
registering functions to be run during C runtime startup/shutdown. This
is mostly helpful for implementing druntime itself.
- The LDC_never_inline pragma can now be used to mark functions that
should never be inlined.
- Passing large static arrays by value no longer leads to horribly
inefficient code and long compile times.
- A large number of code generation bugs has been fixed, see the
GitHub issue tracker. [1]
Platform support
----------------
- Linux x86/x86_64: Stable.
- OS X 10.7+: (Almost) stable. The last few LLVM versions, including
the current 3.2 release, sometimes emit broken exception handling
tables for large stack frames, which can to crashes in libunwind [2]
on throwing exceptions in rare cases. This issue will be fixed in LLVM
3.3, which the next LDC release will be based on. For building 32 bit
applications, the DMD frontend unfortunately gets the alignment of
real-type fields wrong [3], causing issues with initialization of such
structs.
- Win32/MinGW: An alpha-quality version is available as part of this
release. For use together with [4], see [5] for a more in-depth look
at the current state.
- Win64/MSVC: Not officially part of this release yet, a preview
version is available here:
http://forum.dlang.org/post/vscpokspiejlckivqsuq@forum.dlang.org
For the current state on other platforms such as Linux/PPC64 and ARM,
please refer to the LDC wiki. [6]
Package download
----------------
The below are self-contained ("DMD-style") binary packages that do not
require any installation.
Apart from the changed file names and the addition of a minimal README
file, the release is bit-for-bit identical to the third beta, so there
is no need to re-download the archives if you already have a beta3
package.
If you prefer to build LDC yourself, just grab the source archive and
see the wiki [6] for instructions.
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86_64.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86_64.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-mingw-x86.7z
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-osx-x86_64.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-osx-x86_64.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc-0.11.0-src.tar.gz
MD5 checksums:
1839973c921a6b72580e1e9d6b1ec2e3 ldc2-0.11.0-linux-x86_64.tar.gz
e40e93ff36bba688a4028b12139ba22e ldc2-0.11.0-linux-x86_64.tar.xz
09cb1a88318a5cf8d63db33c63a33037 ldc2-0.11.0-linux-x86.tar.gz
0dbe83267165eaa7fdc3ecc5ef3a62e1 ldc2-0.11.0-linux-x86.tar.xz
11317c4b9cdbca43e94b9aabc171f9e3 ldc2-0.11.0-mingw-x86.7z
004c79868bb91eb9c85f2a4c5004bebe ldc2-0.11.0-osx-x86_64.tar.gz
40067905fb7c8022ef8db9d7780ee9a3 ldc2-0.11.0-osx-x86_64.tar.xz
437c2c30970fc98eee49eb0f5b66fd26 ldc-0.11.0-src.tar.gz
Thanks to everybody involved in making this happen!
As usual, the main contact address for anything LDC is the
digitalmars.D.ldc forum (http://forum.dlang.org), which is also
reachable via NNTP and a mailing list interface.
— David
[1] https://github.com/ldc-developers/ldc/issues?milestone=2&state=closed
[2] https://github.com/ldc-developers/ldc/issues/362
[3] https://github.com/ldc-developers/ldc/issues/363
[4]
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.8-dw2-release/i686-w64-mingw32-gcc-dw2-4.8.0-win32_rubenvb.7z/download
[5] http://klickverbot.at/blog/2013/05/the-state-of-ldc-on-windows/
[6] http://wiki.dlang.org/LDC
More information about the digitalmars-d-ldc
mailing list