Big news
- Frontend, druntime and Phobos are at version 2.101.2. (#4141, #4279)
- Bit fields support. (#4015)
- macOS on Apple M1: linking with
-g
is working again without unaligned pointer warnings/errors. This fixes file:line debug information in exception backtraces (requiringatos
, a macOS development tool installed with Xcode), without the need to set MACOSX_DEPLOYMENT_TARGET=11 and using a modified LLVM. (#4291) - Preliminary support for LLVM 15, incl. adding support for the 'new' pass manager (
-passmanager
) and opaque IR pointers (-opaque-pointers
). (way too many PRs to list!) - New command-line option
-fno-delete-null-pointer-checks
, mimicking the same option of GCC and Clang. (#4297) - New UDA
ldc.attributes.callingConvention("...")
, which overrides the default calling convention. For expert use only! (#4299) - New command-line option
-fno-discard-value-names
to keep value names in LLVM IR. (#4012) - dcompute: Support for OpenCL image I/O. (#3835)
Platform support
- Initial ABI support for 64-bit RISC-V. (#4007)
Bug fixes
- dcompute: Fix v1.29 regression when trying to use intrinsics. (#4266, #4267)
- Fix 64-bit symbol offsets. (#4264, #4283)
- Add missing 32-bit LTO versions of druntime & Phobos to Linux multilib package. (#4234, #4235)
- Fix compiler crash. (#4130, #4135)
Internals
- The former druntime and dmd-testsuite git submodules are now part of the LDC repo directly, leaving Phobos as single remaining submodule. We are now using a subset of the DMD repo (which includes druntime since v2.101), rewritten via
git filter-repo
and exposed asdmd-rewrite-*
branches/tags in the LDC repo, to merge newer frontend+druntime+tests from upstream DMD. Thetests/d2/dmd-testsuite
dir was moved totests/dmd
. (#4274, #4276)