(Changes since 1.10.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.080.0+ (DMD stable from May 31st). (#2665, #2719) (new)
- No support for Objective-C class/static methods yet. (#2670)
- Breaking Win64
extern(D)
ABI change: Pass vectors directly in registers, analogous to the MS vector calling convention. (#2714) (new) - Config file: For cross-compilation, support additional sections named as regex for specific target triples, e.g.,
"86(_64)?-.*-linux": { … };
; see the comment inetc/ldc2.conf
. (#2718) (new)
Platform support
- Supports LLVM 3.7 - 6.0.
- Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.
- Android: A native 32-bit ARM package for the Termux app is included, install it with
dpkg -i ldc-beta_1.10.0_android-arm.deb
. To cross-compile from a desktop OS, see the wiki.
Bug fixes
- CMake and druntime fixes for DragonFlyBSD, thanks Diederik! (#2690, #2691, #2692, ldc-developers/druntime#138, ldc-developers/druntime#139, ldc-developers/phobos#64)
- DMD-style inline asm label naming issue in overloaded functions. (#2667, #2694)
- Linux: misc. exception stack trace fixes & extensions, incl. default DWARF v4 debuginfo emission with LLVM 6. (#2677)
- Predefine version
D_HardFloat
instead ofD_SoftFloat
for-float-abi=softfp
. (#2678) - Bash completion installed to the wrong place with custom
CMAKE_INSTALL_PREFIX
. (#2679, #2179, #2693) - Default to
ld.gold
linker for ThinLTO on Linux. (#2696) - Fix compilation issues on 64-bit macOS with DMD host compiler ≥ 2.079. (#2703, #2704) (new)
- druntime: Fix
core.stdc.stdint.(u)int64_t
on 64-bit macOS etc. (#2700) (new) - Define
D_AVX
andD_AVX2
if the target supports them. (#2711) (new) - Fix sporadic front-end segfaults. (#2713) (new)
- Win64: Fix
extern(C++)
ABI wrt. passing small non-POD structs by value. (#2706) (new) - Misc. druntime/Phobos fixes and upstream cherry-picks for ARM, AArch64, MIPS etc. (new)
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.