github ldc-developers/ldc v1.26.0
LDC 1.26.0

latest releases: v1.40.0-beta4, v1.40.0-beta3, v1.40.0-beta2...
3 years ago

(Changes since 1.26.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.096.1+, incl. new ldmd2 command-line option -gdwarf=<version> (use -dwarf-version for ldc2). (#3678, #3706) (new)

Platform support

  • Supports LLVM 6.0 - 12.0.

Bug fixes

  • v1.25 regression: TypeInfo for interface gives invalid string for name. (#3693)
  • Make enums show up correctly as members of a struct when debugging. (#3688, #3694)
  • Some new GCC builtins are available in ldc.gccbuiltins_*, by not rejecting LLVM i1 anymore (mapping to D bool instead). Thanks Bruce! (#3682)
  • dcompute: Don't reject CUDA versions 7.x - 8.0.0. (#3683)
  • Don't enforce the frame pointer for functions with GCC-style inline asm. (#3685)
  • -i: Exclude ldc.* modules by default. (#3679)
  • Fix some cases of insufficient alignment for arguments and parameters. (#3692, #3698) (new)
  • Fix a few issues with LLVM 12. (#3697, #3708) (new)

Known issues

  • When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux.
  • LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc.

Don't miss a new ldc release

NewReleases is sending notifications on new releases.