Big news
- Frontend, druntime and Phobos are at version 2.087.1+. (#3093, #3124)
- The upstream fix wrt. local templates can now receive local symbols hasn't been ported yet. (#3125)
- LLVM for prebuilt packages upgraded to v8.0.1. (#3113)
- LLVM 8+: New intrinsics
llvm_*_sat
(saturation arithmetic) andllvm_{min,max}imum
. Thanks Stefanos! (ldc-developers/druntime#161, ldc-developers/druntime#162)
Platform support
- Supports LLVM 3.9 - 8.0.
Bug fixes
- Fix for v1.16.0 regression when returning
void
expressions. (#3094, #3095) -lowmem
(and on Windows,--DRT-*
options) in response files (e.g., used by dub) aren't ignored anymore. (#3086)- Windows: LDC and LDMD now internally use UTF-8 strings only, incl. command-line options and environment variables. The LDC install dir, source file names etc. can now contain non-ASCII chars. For proper console output, especially to stderr, you'll need Windows 10 v1809+ and may need to set a Unicode console font (e.g., Consolas). (#611, #3086)
- Android: Linker errors when building LDC/LDMD should be fixed. (#3128)
- Support for recent
gdmd
as D host compiler. Thanks Moritz! (#3087) - Do not require gold plugin when linking with LLD. (#3105)
- Some JIT bind fixes. (#3099, #3100)
Known issues
- NEW: If you encounter segfaults in GC worker threads with shared druntime on Linux that are fixed by disabling new parallel GC marking (e.g., via
--DRT-gcopt=parallel:0
in executable cmdline), please let us know about it: #3127 - 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.