Releases: ldc-developers/ldc
Releases ยท ldc-developers/ldc
LDC 1.40.0
(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
(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
(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
(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
LDC 1.40.0-beta3
(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
LDC 1.40.0-beta2
(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
LDC 1.40.0-beta1
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
LDC 1.39.0
(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
LDC 1.38.0
(Changes since 1.38.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.108.1. (#4591, #4615, #4619, #4622, #4623, #4640) (new)
- Support for LLVM 18. The prebuilt packages use v18.1.5 (except for macOS arm64). (#4599, #4605, #4607, #4604, #4628, #4642) (new)
- Android: Switch to native ELF TLS, supported since API level 29 (Android v10), dropping our former custom TLS emulation (requiring a modified LLVM and a legacy ld.bfd linker). The prebuilt packages themselves require Android v10+ (armv7a) / v11+ (aarch64) too, and are built with NDK r26d. Shared druntime and Phobos libraries are now available (
-link-defaultlib-shared
), as on regular Linux. (#4618)- Please don't use the official macOS arm64 package (incl. the universal package on arm64) to cross-compile to Android. That package still uses our previous LLVM v17.0.6, which still includes the custom TLS emulation, but druntime expects native TLS now on Android. Resort to the x86_64 package in that case.
Platform support
- Supports LLVM 11 - 18.
Bug fixes
- Android: Support the lld linker. (#3918)