(Changes since 1.42.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.112.1+, incl. new command-line options
-extI,-dllimport=externalOnlyand-edition. (#4949, #4962, #4988, #5029, #5042, #5046, #5051) (new) - Support for LLVM 21. The prebuilt packages use v21.1.8. (#4950, #5033) (new)
- New prebuilt package for Alpine Linux aarch64 with musl libc, analogous to the existing x86_64 package. (#4943)
- Breaking change for dcompute: The special
@kernelUDA is now a function and requires parentheses as in@kernel() void foo(){}. Optionally you can provide launch dimensions,@kernel([2,4,8]), to specify to the compute runtime how the kernel is intended to be launched. - ldc2.conf can now be a directory. All the files inside it, ordered naturally, will be concatenated and treated like a big config. (#4954)
- Running
ldc-build-runtime --installWithSuffixnow includes installing a target-specific .conf file to that directory. (#4978)
- Running
- Breaking change for ldc2.conf cmake generation: The
cmakebuild process now generates theldc2.confandldc2_install.confas directories.ldc2*.conf.inandADDITIONAL_DEFAULT_LDC_SWITCHEShave been removed, if you need to add switches check outmakeConfSectioninLdcConfig.cmake. (#4954) - When cross-compiling, the fallback value for the (cross) C compiler will be picked based on some heuristics.
The old behavior was to default tocc.
As an example, when cross-compiling foraarch64-linux-gnuthe compilers that are checked are:aarch64-linux-gnu-gccaarch64-linux-gnu-clangclang --target=aarch64-linux-gnu
- The prebuilt arm64/universal macOS packages additionally bundle the arm64 iOS-simulator libraries, for out-of-the-box cross-compilation support via e.g.
-mtriple=arm64-apple-ios12.0-simulator. (#4974) - New
--fdebug-prefix-mapcommand-line option and changed debuginfo file/directory name splitting logic (both now similar to clang), to aid reproducible builds. (#5039) (new)
Platform support
- Supports LLVM 15 - 21.
- PowerPC64:
realnow matches the C++ host compiler'slong doublewhen compiling for the native target, not just on Linux hosts. (#5054) (new)