Big news
- Frontend, druntime and Phobos are at version ~2.112.0, incl. new command-line options
-extI,-dllimport=externalOnlyand-edition. (#4949, #4962, #4988, #5029) - Support for LLVM 21. Beware that we have seen misoptimizations for
std.jsonat one point (not anymore). (#4950, #5033) - 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)
Platform support
- Supports LLVM 15 - 21.