Skip to content

LDC 1.18.0

Compare
Choose a tag to compare
@kinke kinke released this 16 Oct 20:53
37b183f

(Changes since 1.18.0-beta2 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.088.1. (#3143, #3161, #3176, #3190 (new))
  • Support for LLVM 9.0. The prebuilt packages have been upgraded to LLVM 9.0.0. (#3166)
  • Preliminary Android CI, incl. experimental prebuilt armv7a package generation (API level 21, i.e., Android 5+). (#3164)
  • 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 and prefetch added to core.simd. (ldc-developers/druntime#163)
  • JIT improvements, incl. multi-threaded compilation. (#2758, #3154, #3174)

Platform support

  • Supports LLVM 3.9 - 9.0.

Bug fixes

  • Don't error out when initializing a void vector. (#3130, #3139)
  • druntime: Fix exception chaining for latest MSVC runtime v14.23, shipping with Visual Studio 2019 v16.3. (ldc-developers/druntime#164)
  • Keep lvalue-ness when casting associative array to another AA. (#3162, #3179) (new)
  • druntime: Fix regression for POSIX systems without backtrace[_symbols], introduced in beta1. (#3165, dlang/druntime#2796)
  • Fix compilability regression with make, introduced in beta2. (#3188, #3191) (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 to ld.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 to real members inside structs etc.