(Changes from 1.2.0-beta2 release are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.072.2.
New features
- New function attribute
@ldc.attributes.allocSize
(#1610), see https://wiki.dlang.org/LDC-specific_language_changes#.40.28ldc.attributes.allocSize.29
Platform support
- Supports LLVM 3.5 - 4.0.
- Exception backtrace robustness has been significantly improved.
- Emission of
reals
with differing precision to the host platform'sreal
has been fixed.
(The compiler still uses the host platform's D real type to represent compile-time floating-point values, so parsing of literals and CTFE is restricted to the host real precision. For instance, LDC on AArch64 with its quad-precision reals would now make for a universal cross-compiler. On the other hand, cross-compiling from ARM to x86 with 80 bit reals still does not work – for example,real.max
would silently overflow at compile-time and be emitted as 80-bit infinity.)
Bug fixes
- Compilation error with DMD 2.074 host compiler. (new)
- LLVM error when accessing
typeid(null)
(#2062). (new) - Some LLVM intrinsics not available for LLVM ≥ 4.0 (#2037).
- Spurious crashes on OS X user program shutdown when linking against static druntime lib.
- Lexing floating-point literals may fail on PowerPC (#2046).
- LDC crashes when trying to repaint static arrays (#2033).
- No stack trace on Linux (#2004) and Windows (#1976, ldc-developers/druntime#85).
- Generated documentation file is immediately deleted when compiling at the same time.
- LDMD doesn't append default file extension if
-of
option doesn't contain any (#2001, #2002).
Building LDC
- Building LDC requires a preinstalled D compiler.
Internals
Known issues
- LDC does not zero the padding area of a
real
variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply toreal
members inside structs etc. - Phobos does not compile on MinGW platform.