(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.fastmathfor 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-verifyis given. (#1591) - DValue refactoring. (#1562)
- Several improvements to generated IR. (#1528, #1630)
Known issues
- LDC does not zero the padding area of a
realvariable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply torealmembers inside structs etc. - Phobos does not compile on MinGW platform.