Big news
- Frontend, druntime and Phobos are at version 2.075.1. (#2252)
- New command-line option
-fp-contract
to control fused floating-point math, as well as about 25 new hidden options influencing codegen, see-help-hidden
(-enable-unsafe-fp-math
,-debugger-tune
etc.). (#2148)
Breaking changes
- Win32: the mangled names of D symbols now start with
_D
, not with__D
, compatible with DMD. (#2353)
Platform support
- Supports LLVM 3.7 - 5.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
Changes to the prebuilt packages
- LLVM upgraded to 5.0.0.
Bug fixes
- LLVM 5.0: need to build LDC with CMake option
-DLDC_WITH_LLD=OFF
to avoid conflicting command-line options. (#2148) - LLVM 5.0 & non-Windows targets: names of members in static libraries generated by LDC's internal archiver contain path information. (#2349)
- Workaround for Xcode 9 ranlib bug: don't use internal (LLVM) archiver by default for OSX targets. (#2350)
- Captured lazy parameters may be garbage. (#2302, #2330)
- Packed struct layout regression (#2346) and
T.alignof
not respecting explicit type alignment viaalign(N)
. (#2347) - OSX and Win32: mangling issue for druntime's
rt_options
. (#1970, #2354) - MinGW Win64: ABI regression wrt. functions returning x87 reals. (#2358)
- Potential file permission problem when copying over LLVM libraries during LDC build. (#2337)
- PPC64: Forward reference error with 1.3 release. (#2200)
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.
- ThinLTO may not work well with the
ld.bfd
linker, useld.gold
instead (-Xcc=-fuse-ld=gold
). - LLVM 5.0: potentially failing LLVM assertion when emitting debuginfos and using inlining at the same time. (#2361)