github ldc-developers/ldc v1.9.0-beta1
LDC 1.9.0-beta1

latest releases: v1.38.0-beta1, dmd-rewrite-v2.108.0, dmd-rewrite-v2.108.0-rc.1...
pre-release6 years ago

Big news

  • Frontend, druntime and Phobos are at version 2.079.1, incl. new switches -i[=<pattern>] (include imports in compilation) and -Xi. (#2587)
    • Support a minimal (d)runtime. (#2641)
    • Win32 breaking ABI change: add extra underscore for mangled names of D symbols. (#2598)
    • No breaking ABI change for 64-bit macOS wrt. C++ mangling of D (u)long. It's still mangled as C++ (unsigned) long in order not to break size_t and ptrdiff_t interop, whereas DMD 2.079 mangles it as (unsigned) long long (which, in combination with missing core.stdc.config.cpp_(u)long, makes it impossible to represent a C++ size_t/ptrdiff_t with DMD 2.079 on 64-bit macOS).
  • Support for LLVM 6. It's used for the prebuilt packages, except for the 32-bit Windows package (due to #2629). (#2608)
  • Integrated LLD (enable with -link-internally) now also able to (cross-)link ELF and Mach-O binaries, in addition to the existing Windows COFF support. (#2203)
  • Prebuilt Linux and macOS packages now ship with LTO default libs (druntime & Phobos). Keep on using -flto=<thin|full> to restrict LTO to your code, or opt for -flto=<thin|full> -defaultlib=phobos2-ldc-lto,druntime-ldc-lto to include the default libs. (#2640)
  • When linking against shared default libs, LDC now sets a default rpath (absolute path to the LDC lib dir(s); configurable in the etc/ldc2.conf file). (#2659)
  • Improved support for MIPS targets and the uClibc runtime library. Thanks Radu! (#2606, ldc-developers/phobos#62, ldc-developers/phobos#63, ldc-developers/druntime#134, ldc-developers/druntime#135)
  • New convenience mixin for fuzzing: ldc.libfuzzer.DefineTestOneInput. (#2510)

Platform support

Bug fixes

  • DMD-style inline asm:
    • Fix semantics of extended ptr for MSVC targets. (#2653)
    • Add missing EIP register. (#2654)
  • macOS: Fix install_name and symlinks of shared fat druntime/Phobos libs. (#2659, #2615)
  • Make -static override -link-defaultlib-shared. (#2646)
  • Make interface thunks forward variadic args. (#2613)
  • Fix va_arg() for PowerPC. (ldc-developers/druntime#121)
  • MSVC: Support exporting naked functions. (#2648)
  • Only emit interface vtables in the declaring module. (#2647)
  • Call _Unwind_Resume() directly. (#2642)

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 (-linker=gold).

Don't miss a new ldc release

NewReleases is sending notifications on new releases.