(Changes from 1.1.0-alpha1 release are marked with (new) and gone.)
Big news
- Frontend, druntime and Phobos are at version 2.071.1.
- Cross-module inlining (#1577, enabled from
-O2
, disable with-disable-cross-module-inlining
) - Profile-guided optimization (#1219, "How To" article)
- Experimental IR-to-obj caching with
-ir2obj-cache=<cache dir>
(#1572) - Accept bitcode files on commandline (#1539)
@ldc.attributes.fastmath
for aggressive math optimization (#1472, #1438)- New traits
__traits(targetCPU)
and__traits(targetHasFeature, )
(#1434) - Binary distribution now bundles DUB (#1573)
- Drastic reduction of large symbol name lengths with
-hash-threshold
(#1445) @ldc.attributes.optStrategy(...)
for per-function optimization setting (#1637) (new)
Platform support
- Support for LLVM 3.9.
- Added ARM assembly code for Phobos
std.bigint
(ldc-developers/phobos#31) - Added some definitions for OpenBSD (ldc-developers/druntime@1ef8322)
- Updates for Solaris (ldc-developers/druntime#71, ldc-developers/druntime#72, ldc-developers/druntime#73, ldc-developers/druntime#74, ldc-developers/druntime#75, ldc-developers/druntime#79)
Bug fixes
- Strange compile time error. (#1638) (new)
- LDC+DUB on Windows: folder separator is ignored. (#1621) (new)
- Fix evaluation order issues. (#1620, #1623) (new)
- ICE on returning struct with zero-length static array. (#1611)
- Debug info generation fixes for LLVM >= 3.8. (#1598) (new)
- ICE after return in the middle of a function on Win64/MSVC. (#1582)
- Enums with referenced struct members result in floating point error. (#1581)
- Static array initialization with single element misdetected as direct construction via sret. (#1548)
- ICE on static typeid. (#1540)
- super doesn't work. (#1450)
- Sub-expression evaluation order fixes. (#1327)
Building LDC
- LDC now requires a preinstalled D compiler.
- On Unix-like systems we now use gcc for linking. (#1594) (new)
Internals
- optimizer: Skip adding verifier function pass if
-disable-verify
is given. (#1591) - DValue refactoring. (#1562)
- Several improvements to generated IR. (#1528, #1630)
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.