github ldc-developers/ldc v1.31.0
LDC 1.31.0

latest releases: v1.40.0-beta4, v1.40.0-beta3, v1.40.0-beta2...
21 months ago

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 (requiring atos, 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 as dmd-rewrite-* branches/tags in the LDC repo, to merge newer frontend+druntime+tests from upstream DMD. The tests/d2/dmd-testsuite dir was moved to tests/dmd. (#4274, #4276)

Don't miss a new ldc release

NewReleases is sending notifications on new releases.