(Changes since 1.18.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.088.0+. (#3143, #3161, #3176 (new))
- Support for LLVM 9.0. The prebuilt packages have been upgraded to LLVM 9.0.0. (#3166) (new)
- Preliminary Android CI, incl. experimental prebuilt armv7a package generation (API level 21, i.e., Android 5+). (#3164) (new)
- Bundled dub upgraded to v1.17.0+ with improved LDC support, incl. cross-compilation (e.g.,
--arch=x86_64-pc-windows-msvc
). (dlang/dub#1755, Wiki) - Init symbols of zero-initialized structs are no longer emitted. (#3131)
- druntime: DMD-compatible
{load,store}Unaligned
andprefetch
added tocore.simd
. (ldc-developers/druntime#163) - JIT improvements, incl. multi-threaded compilation. (#2758, #3154, #3174 (new))
Platform support
- Supports LLVM 3.9 - 9.0. (new)
Bug fixes
- Don't error out when initializing a
void
vector. (#3130, #3139) - druntime: Fix regression for POSIX systems without
backtrace[_symbols]
. (#3165, dlang/druntime#2796) (new) - druntime: Fix exception chaining for latest MSVC runtime v14.23, shipping with Visual Studio 2019 v16.3. (ldc-developers/druntime#164) (new)
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.