Skip to content

LDC 1.30.0

Compare
Choose a tag to compare
@kinke kinke released this 20 Jul 17:05
· 37052 commits to master since this release
32f5a35

(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 in unaligned pointer linker errors. Setting environment variable MACOSX_DEPLOYMENT_TARGET=11 weakens those to warnings; compiling with -preserve-dwarf-line-section=false is another option. (#3864)