LDC 0.11.0 Beta 3
David Nadlinger
code at klickverbot.at
Wed Jun 5 16:31:46 PDT 2013
Here is the third round of beta packages for LDC 0.11.0. We are still
missing a proper release announcement, but here is a quick overview of
the most important facts:
- Based on the DMD 2.062 frontend.
- D1 is no longer supported.
- The GC to stack promotion optimizer pass is enabled by default on
-O2 and higher. 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.
- 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.
- '-O' now is equivalent to '-O3' (instead of '-O2').
- LDMD now correctly parses extra arguments for -run and no longer
drops -deps.
- 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 [we are missing a nice overview].
Platform support
---
- Linux x86/x86_64: Stable
- OS X 10.7+: Stable (does *not* work on Snow Leopard and below)
- Win32/MinGW: An alpha-quality version is available as part of this
release. For use together with [1], see [2] for an overview of 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. [3]
Package download
---
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-linux-x86.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-linux-x86.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-linux-x86_64.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-linux-x86_64.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-mingw-x86.7z
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-osx-x86_64.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta3-osx-x86_64.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc-0.11.0-beta3-src.tar.gz
MD5 checksums:
efc5863f6e5378849ff3d5b3b094bfc4 ldc2-0.11.0-beta3-linux-x86.tar.gz
36b78ff5d788a1eb1dc875910cd5fd25 ldc2-0.11.0-beta3-linux-x86.tar.xz
041679f78109876074c8cf11a151a2f2 ldc2-0.11.0-beta3-linux-x86_64.tar.gz
1768b0e4695256f6c18e908390edf2f2 ldc2-0.11.0-beta3-linux-x86_64.tar.xz
f70b31ae997bbf3d4505a26d1f5fa8ce ldc2-0.11.0-beta3-mingw-x86.7z
fc0fe396d20a735b00c070c07da79906 ldc2-0.11.0-beta3-osx-x86_64.tar.gz
0fe50724975df55ee0e6b0094fc05acb ldc2-0.11.0-beta3-osx-x86_64.tar.xz
e9d14e674a68a5ca688140e845105046 ldc-0.11.0-beta3-src.tar.gz
There are virtually no differences to beta 2, except for a tweak to how
the build system locates LLVM, a cosmetic fix to the debug info compiler
info field, and a few MinGW-specific fixes which were erroneously
omitted from the last version.
If no unexpected major issues crop up, I'd propose to make this the
final release (except for the file names, that is) – in hindsight, I
should have gone for "-rc1" instead of "-beta3". Any other regressions
and big issues would be fixed in 0.11.1, which I hope we can release in
another week or so. This upcoming release would also be built against
LLVM 3.3 to work around the exception-related crashes on OS X (see
below), and thus necessarily include the bool i1->i8 transition.
Sounds good?
— David
[1]
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
[2] http://klickverbot.at/blog/2013/05/the-state-of-ldc-on-windows/
[3] http://wiki.dlang.org/LDC
More information about the digitalmars-d-ldc
mailing list