Releases: ldc-developers/ldc
Releases Β· ldc-developers/ldc
LDC 1.38.0-beta1
Big news
- Frontend, druntime and Phobos are at version 2.108.0+. (#4591, #4615, #4619, #4622, #4623)
- Support for LLVM 18. The prebuilt packages use v18.1.3 (except for macOS arm64). (#4599, #4605, #4607, #4604)
- 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)
Platform support
- Supports LLVM 11 - 18.
Bug fixes
- Android: Support the lld linker. (#3918)
LDC 1.37.0
LDC 1.37.0-beta1
LDC 1.36.0
(Changes since 1.36.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.106.1. (#4522, #4539, #4551) (new)
- Support for LLVM 17. The prebuilt packages use v17.0.6. (#4533, #4540)
- New command-line options
-fno-{exceptions,moduleinfo,rtti}
to selectively enable some-betterC
effects. (#4522) - New command-line option
-fprofile-sample-use
for using sample-based profile data for optimization. Functionality and usage is identical to Clang's option with same name. (#4531) - New
ldc-profgen
tool for sample-based PGO, a copy of LLVM's llvm-profgen. (#4536)
Platform support
- Supports LLVM 11.0 - 17.0.
LDC 1.36.0-beta1
Big news
- Frontend, druntime and Phobos are at version 2.106.0. (#4522, #4539)
- Support for LLVM 17. The prebuilt packages use v17.0.6. (#4533, #4540)
- New command-line options
-fno-{exceptions,moduleinfo,rtti}
to selectively enable some-betterC
effects. (#4522) - New command-line option
-fprofile-sample-use
for using sample-based profile data for optimization. Functionality and usage is identical to Clang's option with same name. (#4531) - New
ldc-profgen
tool for sample-based PGO, a copy of LLVM's llvm-profgen. (#4536)
LDC 1.35.0
(Changes since 1.35.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.105.2+. (#4476, #4498, #4513) (new)
- The Windows installer now supports non-admin installs without an explicit
/CURRENTUSER
switch. (#4495) (new)
Platform support
- Initial compiler support for LoongArch64. druntime support is pending. (#4500) (new)
Bug fixes
- ImportC:
- AArch64: Fix an ABI-related ICE. (#4489, #4490) (new)
- Fix GC2Stack optimization regression introduced in v1.24. (#4510, #4511) (new)
- Fix druntime ABI divergence when compiling with sanitizers support. (#4508, #4509) (new)
- Windows: Fix an instance of missed backslash-escaping in
-ftime-trace
JSON. (#4506, #4507) (new)
LDC 1.35.0-beta1
LDC 1.34.0
(Changes since 1.34.0-beta2 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.104.2. (#4440)
- Support for LLVM 16. The prebuilt packages use v16.0.6. (#4411, #4423)
- We have come across miscompiles with LLVM 16's newly-enabled-by-default function specializations (on Win64 and macOS). To be on the safe side, LDC disables them by default for all targets via
-func-specialization-size-threshold=1000000000
inetc/ldc2.conf
(and separately for LTO on Posix platforms). To enable the function specializations, explicitly override it with e.g.-func-specialization-size-threshold=100
(the LLVM 16 default) and, for LTO on Posix, a similar LTO plugin option in the linker cmdline (see linker cmdline with-v
).
- We have come across miscompiles with LLVM 16's newly-enabled-by-default function specializations (on Win64 and macOS). To be on the safe side, LDC disables them by default for all targets via
Platform support
- Supports LLVM 11.0 - 16.0. Support for LLVM 9 and 10 was dropped.
- 64-bit RISC-V: Now defaults to
-mattr=+m,+a,+f,+d,+c
('rv64gc' ABI) for non-bare-metal targets, i.e., if the target triple includes a valid operating system. (#4390) (new)
Bug fixes
LDC 1.34.0-beta2
(Changes since 1.34.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.104.2. (#4440)
- Support for LLVM 16. The prebuilt packages use v16.0.6. (#4411, #4423) (new)
- We have come across miscompiles with LLVM 16's newly-enabled-by-default function specializations (on Win64 and macOS). To be on the safe side, LDC disables them by default for all targets via
-func-specialization-size-threshold=1000000000
inetc/ldc2.conf
(and separately for LTO on Posix platforms). To enable the function specializations, explicitly override it with e.g.-func-specialization-size-threshold=100
(the LLVM 16 default) and, for LTO on Posix, a similar LTO plugin option in the linker cmdline (see linker cmdline with-v
).
- We have come across miscompiles with LLVM 16's newly-enabled-by-default function specializations (on Win64 and macOS). To be on the safe side, LDC disables them by default for all targets via
Platform support
- Supports LLVM 11.0 - 16.0. Support for LLVM 9 and 10 was dropped. (new)