Big news
- Frontend, druntime and Phobos are at version 2.089.0. (#3192, #3210, #3215)
- Breaking
extern(D)
ABI change for Posix x86[_64]: non-POD arguments are now passed by ref under the hood, just like they already were forextern(C++)
. Some superfluous implicit blits have been optimized away as well, for all targets. (#3204) - Posix: Defaults to
cc
now for linking, notgcc
(orclang
for FreeBSD 10+) - if theCC
environment variable isn't set. Override with-gcc=<gcc|clang>
. (#3202) - Codegen elision of dead branches for
if
statements with constant condition (not depending on enabled LLVM optimizations). (#3134)
Platform support
- Supports LLVM 3.9 - 9.0.
Bug fixes
- Misc. CMake issues with some LLVM 9 configurations. (#3079, #3198)
- Equality/identity comparisons of vectors with length ≥ 32. (#3208, #3209)
ldc.gccbuiltins_*
druntime modules now available to non-installed compiler too. (#3194, #3201)
Known issues
- Buggy older
ld.bfd
linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults told.gold
on Linux. - 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.