Big news
- Frontend, druntime and Phobos are at version 2.090.0+. (#3262)
- The config file for multilib builds has been restructured by adding a separate section for the multilib target. This avoids
--no-warn-search-mismatchfor the linker and enables support for LLD. (#3276) - Support for embedding
pragma({lib,linkerDirective}, ...)in Mach-O object files. (#3259)
E.g.,pragma(linkerDirective, "-framework", "CoreFoundation");makes Apple's linker pull in that framework when pulling in the compiled object file.
ELF object files newly embedpragma(lib, ...)library names in a special.deplibssection, but that only works with LLD 9+ for now. - The
ldc-build-runtimetool has been slightly revised;--dFlagsnow extends the base D flags instead of overriding them. (1200601) ModuleInfo.importedModulesare now emitted as weak references (except on Windows, for LLD compatibility), following DMD. (#3262)
Platform support
- Supports LLVM 3.9 - 9.0.
Bug fixes
- Potential stack overflows on Linux in GC worker threads. (#3127, dlang/druntime#2904)
- Support 2 leading dashes (not just 1) in command-line pre-parsing, thus fixing config file section lookup when using
--mtripleand not ignoring--confand--lowmemany longer. (#3268, #3275) - ICE during debuginfo generation for function literals inside enum declarations. (#3272, #3274)
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.