Big news
- Frontend, druntime and Phobos are at version 2.084.0+, incl. new command-line options
-mixin
,-{enable,disable}-switch-errors
and-checkaction
. (#2946, #2977)- Options
-release
,-d-debug
and-unittest
don't override preceding, more specific options (-{enable,disable}-{asserts,invariants,preconditions,postconditions,contracts}
) anymore.
- Options
- Linking WebAssembly doesn't require
-link-internally
(integrated LLD) anymore; an external linker (default:wasm-ld
, override with-linker
) can be used as well. (#2951) - Prebuilt Windows packages include LTO-able 32-bit druntime/Phobos too (previously: Win64 only).
Platform support
- Supports LLVM 3.9 - 7.0.
Bug fixes
- Fix C++ mangling regression for functions with multiple
real
parameters introduced with v1.13, preventing to build DMD. (#2954, dlang/dmd#9129) - Fix context of some nested aggregates. (#2960, #2969)
- Support templated LLVM intrinsics with vector arguments. (#2962, #2971)
- Avoid crashes with
-allinst
(fix emission of only speculatively nested functions). (#2932, #2940) - Fix XRay support for LLVM 7+. (#2965)
- AArch64: Fix DMD-style profile measurements. (#2950)
- Be less picky about placement of pragmas (allow intermediate
extern(C)
etc.). (#2599) - MSVC: Fix
real
C++ mangling to match Visual C++long double
. (#2974)
Known issues
- 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.