github ldc-developers/ldc v1.5.0
LDC 1.5.0

latest releases: v1.40.0-beta4, v1.40.0-beta3, v1.40.0-beta2...
7 years ago

macOS note: The original binary packages for OS X did not include some of the LLVM runtime support libraries (fuzzing, AddressSanitizer, etc.). This issue has been corrected in the archive named ldc2-1.5.0_2-osx-x86_64.tar.xz, and the libraries are going to be shipped with future releases again.

(Changes from 1.5.0-beta1 release are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.075.1. (#2252)
  • New command-line option -fp-contract to control fused floating-point math, as well as about 25 new hidden options influencing codegen, see -help-hidden (-enable-unsafe-fp-math, -debugger-tune etc.). (#2148)
  • New command-line option -linker. Use -linker=lld-link to use an external LLD executable for MSVC targets (with experimental LTO support) or -linker=<gold|bfd|lld> for other targets. (#2386) (new)

Breaking changes

  • Win32: the mangled names of D symbols now start with _D, not with __D, compatible with DMD. (#2353)

Platform support

  • Supports LLVM 3.7 - 5.0.
  • Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.

Changes to the prebuilt packages

  • LLVM upgraded to 5.0.0.

Bug fixes

  • Cyclic dependencies with -cov. (#2177) (new)
  • ICE when capturing this in constructors. (#1728) (new)
  • Objective-C bugs. (#2387, #2388) (new)
  • LLVM/LLD 5.0: -link-internally broken. (LLD patch) (new)
  • LLVM 5.0: need to build LDC with CMake option -DLDC_WITH_LLD=OFF to avoid conflicting command-line options. (#2148)
  • LLVM 5.0 & non-Windows targets: names of members in static libraries generated by LDC's internal archiver contain path information. (#2349)
  • Workaround for Xcode 9 ranlib bug: don't use internal (LLVM) archiver by default for OSX targets. (#2350) Xcode 9.0.1 fixes that bug, please upgrade. (new)
  • Captured lazy parameters may be garbage. (#2302, #2330)
  • Packed struct layout regression (#2346) and T.alignof not respecting explicit type alignment via align(N). (#2347)
  • OSX and Win32: mangling issue for druntime's rt_options. (#1970, #2354)
  • MinGW Win64: ABI regression wrt. functions returning x87 reals. (#2358)
  • Potential file permission problem when copying over LLVM libraries during LDC build. (#2337)
  • PPC64: Forward reference error with 1.3 release. (#2200)

Known issues

  • 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.
  • Phobos does not compile on MinGW platform.
  • ThinLTO may not work well with the ld.bfd linker, use ld.gold instead (-Xcc=-fuse-ld=gold -linker=gold).
  • LLVM 5.0: potentially failing LLVM assertion when emitting debuginfos and using inlining at the same time. (#2361)

Don't miss a new ldc release

NewReleases is sending notifications on new releases.