Skip to content

Releases: ldc-developers/ldc

LDC 1.40.1-beta1

11 Mar 13:53
2f158bd
Compare
Choose a tag to compare
LDC 1.40.1-beta1 Pre-release
Pre-release

Big news

  • Frontend and druntime bumped to version 2.110.0 final. (#4854, #4868)
  • LLVM for prebuilt packages bumped to v19.1.7. (#4822)
  • New prebuilt package for Alpine Linux x86_64 with musl libc. It's currently generated on Alpine v3.21, using its default LLVM 19. Most bundled executables are fully static and can be run on ~all distros. (#4826, #4862)
  • Revived dynamic-compile (JIT) functionality (formerly unsupported since LLVM 12), supporting LLVM 18+ now. (#4774)
  • ldc2.conf: %%ldcversion%% placeholder added, allowing to refer to version-specific directories.
  • Windows: The prebuilt packages now bundle an official libcurl build (from https://curl.se/windows/), currently v8.12.1. The static library (curl_a.lib) isn't available anymore. (#4855)

Platform support

  • Supports LLVM 15 - 19.
  • Initial compiler and runtime support for ppc64 and ppc64le systems that use IEEE 754R 128-bit floating-point as the default 128-bit floating-point format. (#4833, #4840)
  • Initial support for Windows on ARM64. The prebuilt Windows multilib package/installer bundles prebuilt arm64 druntime and Phobos; cross-compiling works out of the box via -mtriple=aarch64-windows-msvc, but you currently need to set up a suited MSVC arm64 build environment before yourself (e.g., by running vsdevcmd.bat -arch=arm64 -host_arch=x64). (#4835, #4846)

Bug fixes

  • Prebuilt macOS universal package: Fix automatic bundled libLTO.dylib usage when linking with LTO. (#4857)
  • Building multi-file D applications with control-flow protection will no longer cause LDC to throw an internal compiler error. (#4828)

LDC 1.40.0

15 Dec 13:51
c3c82c9
Compare
Choose a tag to compare

(No relevant changes since 1.40.0-beta6.)

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737, #4749, #4768, #4784, #4792, #4798)
  • Support for LLVM 19. The prebuilt packages use v19.1.3 (incl. macOS arm64). (#4712, #4735, #4763, #4772)
  • Objective-C: The compiler now properly supports Objective-C classes and protocols, as well as swift stub classes (via the @swift UDA). (#4777)
  • Android: NDK for prebuilt package bumped from r26d to r27c. (#4711, #4772)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)
  • Add support for building against a system copy of zlib through -DPHOBOS_SYSTEM_ZLIB=ON. (#4742)
  • Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions (linux, Posix, CRuntime_Musl, CppRuntime_LLVM). (#4750)

Platform support

  • Supports LLVM 15 - 19.

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736)
  • ELF: Emit (most) instantiated symbols in COMDATs for proper link-time culling. (#3589, #4748)
  • Support scalar right-hand-sides when bit-shifting vectors. (#3606, #4781)
  • Fix LLVM data layout for the SPIR-V target used in D-Compute on LLVM 19+. (#4772)

LDC 1.40.0-beta6

08 Dec 19:46
dd44cfa
Compare
Choose a tag to compare
LDC 1.40.0-beta6 Pre-release
Pre-release

(Changes since 1.40.0-beta5 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737, #4749, #4768, #4784, #4792, #4798) (new)
  • Support for LLVM 19. The prebuilt packages use v19.1.3 (incl. macOS arm64). (#4712, #4735, #4763, #4772)
  • Objective-C: The compiler now properly supports Objective-C classes and protocols, as well as swift stub classes (via the @swift UDA). (#4777)
  • Android: NDK for prebuilt package bumped from r26d to r27c. (#4711, #4772)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)
  • Add support for building against a system copy of zlib through -DPHOBOS_SYSTEM_ZLIB=ON. (#4742)
  • Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions (linux, Posix, CRuntime_Musl, CppRuntime_LLVM). (#4750)

Platform support

  • Supports LLVM 15 - 19.

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736)
  • ELF: Emit (most) instantiated symbols in COMDATs for proper link-time culling. (#3589, #4748)
  • Support scalar right-hand-sides when bit-shifting vectors. (#3606, #4781)
  • Fix LLVM data layout for the SPIR-V target used in D-Compute on LLVM 19+. (#4772)

LDC 1.40.0-beta5

03 Dec 04:26
82878ef
Compare
Choose a tag to compare
LDC 1.40.0-beta5 Pre-release
Pre-release

(Changes since 1.40.0-beta4 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737, #4749, #4768, #4784, #4792) (new)
  • Support for LLVM 19; LLVM for prebuilt packages bumped to v19.1.3 (incl. macOS arm64). (#4712, #4735, #4763, #4772) (new)
  • Objective-C: The compiler now properly supports Objective-C classes and protocols, as well as swift stub classes (via the @swift UDA). (#4777) (new)
  • Android: NDK for prebuilt package bumped from r26d to r27c. (#4711, #4772) (new)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)
  • Add support for building against a system copy of zlib through -DPHOBOS_SYSTEM_ZLIB=ON. (#4742)
  • Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions (linux, Posix, CRuntime_Musl, CppRuntime_LLVM). (#4750)

Platform support

  • Supports LLVM 15 - 19. (new)

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736)
  • ELF: Emit (most) instantiated symbols in COMDATs for proper link-time culling. (#3589, #4748)
  • Support scalar right-hand-sides when bit-shifting vectors. (#3606, #4781) (new)
  • Fix LLVM data layout for the SPIR-V target used in D-Compute on LLVM 19+. (#4772) (new)

LDC 1.40.0-beta4

28 Oct 15:16
65b882d
Compare
Choose a tag to compare
LDC 1.40.0-beta4 Pre-release
Pre-release

(Changes since 1.40.0-beta3 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737, #4749, #4768) (new)
  • LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). (#4712)
  • Android: NDK for prebuilt package bumped from r26d to r27. (#4711)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)
  • Add support for building against a system copy of zlib through -DPHOBOS_SYSTEM_ZLIB=ON. (#4742)
  • Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions (linux, Posix, CRuntime_Musl, CppRuntime_LLVM). (#4750)

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736)
  • ELF: Emit (most) instantiated symbols in COMDATs for proper link-time culling. (#3589, #4748)

LDC 1.40.0-beta3

09 Sep 13:44
1f0c36e
Compare
Choose a tag to compare
LDC 1.40.0-beta3 Pre-release
Pre-release

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

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737, #4749) (new)
  • LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). (#4712)
  • Android: NDK for prebuilt package bumped from r26d to r27. (#4711)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)
  • Add support for building against a system copy of zlib through -DPHOBOS_SYSTEM_ZLIB=ON. (#4742) (new)
  • Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions (linux, Posix, CRuntime_Musl, CppRuntime_LLVM). (#4750) (new)

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736)
  • ELF: Emit (most) instantiated symbols in COMDATs for proper link-time culling. (#3589, #4748) (new)

LDC 1.40.0-beta2

20 Aug 21:04
dd0ff1e
Compare
Choose a tag to compare
LDC 1.40.0-beta2 Pre-release
Pre-release

(Changes since 1.40.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707, #4737) (new)
  • LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). (#4712)
  • Android: NDK for prebuilt package bumped from r26d to r27. (#4711)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)
  • Fix potentially corrupt IR layouts for explicitly under-aligned aggregates, a regression introduced in LDC v1.31. (#4734, #4736) (new)

LDC 1.40.0-beta1

10 Aug 19:32
6bd5d9a
Compare
Choose a tag to compare
LDC 1.40.0-beta1 Pre-release
Pre-release

Big news

  • Frontend, druntime and Phobos are at version ~2.110.0. (#4707)
  • LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). (#4712)
  • Android: NDK for prebuilt package bumped from r26d to r27. (#4711)
  • ldc2.conf: %%ldcconfigpath%% placeholder added - specifies the directory where current configuration file is located. (#4717)

Bug fixes

  • Fix potentially corrupt IR layouts for bit fields. (#4646, #4708)

LDC 1.39.0

04 Jul 10:32
ff7954c
Compare
Choose a tag to compare

(Changes since 1.39.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.109.1. (#4660, #4692) (new)
  • LLVM for prebuilt packages bumped to v18.1.6 (except for macOS arm64). (#4678)
  • Added CI testing of Alpine Linux with musl libc (including some bug fixes). Removed the libunwind dependency when linking with musl libc. (#4650, #4691) (new)

Platform support

  • Supports LLVM 15 - 18. Support for LLVM 11 - 14 was dropped. The CLI options -passmanager and -opaque-pointers were removed.

LDC 1.39.0-beta1

03 Jun 18:38
49e5732
Compare
Choose a tag to compare
LDC 1.39.0-beta1 Pre-release
Pre-release

Big news

  • Frontend, druntime and Phobos are at version 2.109.0. (#4660)
  • LLVM for prebuilt packages bumped to v18.1.6 (except for macOS arm64). (#4678)

Platform support

  • Supports LLVM 15 - 18. Support for LLVM 11 - 14 was dropped. The CLI options -passmanager and -opaque-pointers were removed.