(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}Unalignedandprefetchadded 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
voidvector. (#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.bfdlinker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults told.goldon Linux. - 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.