(Changes since 1.30.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.100.1. (#3970, #4008, #4009) (new)
- LLVM for prebuilt packages bumped to v14.0.3. (#3952, #3979)
- All LLVM targets are enabled now (=> more targets for cross-compilation).
- For the Mac package, the minimum supported macOS version has been raised to v10.12.
- The minimum D version for bootstrapping has been raised to v2.079 (for GDC: v9.4), in line with DMD. (#3956)
- The minimum LLVM version has been raised to v9.0. (#3960)
- New LeakSanitizer support via
-fsanitize=leak
(not (yet?) supported on Windows). (#4005) (new) - New prebuilt universal macOS package, runnable on both x86_64 and arm64, and enabling x86_64/arm64 macOS/iOS cross-compilation targets out of the box (
-mtriple={x86_64,arm64}-apple-{macos,ios}
). The x86_64 package doesn't bundle any arm64 libs anymore; the arm64 package newly bundles iOS libs (arm64). (#3958)- Avoid an external x86_64-only dub, use the bundled universal dub executable instead.
Platform support
- Supports LLVM 9.0 - 14.0.
Bug fixes
- Enable output of variable names in ASan and MSan error reporting. (#4004) (new)
- Report unexpected type repaints as fatal ICEs instead of crashing. (#3990, #3991) (new)
Internals
- Main CI was moved from Azure Pipelines to GitHub Actions. Any fork on GitHub can trivially reuse the fully automated prebuilt packages generation & upload to a GitHub release. (#3978)
Known issues
- On macOS 12+, linking arm64 code compiled with
-g
likely results inunaligned pointer
linker errors. Setting environment variableMACOSX_DEPLOYMENT_TARGET=11
weakens those to warnings; compiling with-preserve-dwarf-line-section=false
is another option. (#3864)