(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
forldc2
). (#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 LLVMi1
anymore (mapping to Dbool
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
: Excludeldc.*
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 told.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 toreal
members inside structs etc.