(Changes since 1.13.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.083.0+. (#2878, #2893, #2920) (new)
- The Windows packages are now fully self-sufficient, i.e., a Visual Studio/C++ Build Tools installation isn't required anymore, as we now ship with MinGW-w64-based libraries, similar to DMD. Check out the included README.txt for all relevant details. (dlang/installer#346, #2886)
- Debug info improvements:
- For GDB: printing global and imported symbols, non-member and member function calls. (#2826)
- For Visual Studio and mago: names, by-value params, nested variables. (#2895, #2908, #2909, #2912) (new)
- Associative arrays now showing up properly (at least with mago), not as opaque
void*
anymore. (#2869) (new) -gc
now translates D names to C++ ones, e.g., to use the regular Visual Studio debugger (bypassing mago) and as preparation for VS Code debugging with Microsoft's C/C++ plug-in (screenshots). Thanks to Oleksandr for this contribution and the AA fix! (#2869) (new)
- New command-line option
-fvisibility=hidden
to hide functions/globals not marked asexport
(for non-Windows targets), primarily to reduce the size of shared libraries. Thanks to Andrey for stepping up! (#2894) (new) - Dropped support for LLVM 3.7 and 3.8. (#2872)
- Linux: now defaulting to
ld.gold
linker in general, not just with-flto=thin
, as buggy olderld.bfd
versions may wrongly strip out required symbols (change with-linker
). (#2870) - New CMake option
COMPILE_D_MODULES_SEPARATELY
to reduce the time required to build LDC with many CPU cores and/or for iterative development. (#2914) (new)
Platform support
- Supports LLVM 3.9 - 7.0.
- Android: Native packages for the Termux app on Android are included, install one like this:
dpkg -i ldc-beta_1.13.0-2_android-aarch64.deb
. To cross-compile from a desktop OS, see the wiki.
Bug fixes
- 32-bit Android/ARM regression introduced in v1.12. (#2892)
- Non-Windows x86_64 ABI fixes wrt. what's passed in registers, relevant for C[++] interop. (#2864)
- Some issues with beta1's newly bundled Windows libraries. (#2900, #2903) (new)
- Alignment of
scope
allocated class instances. (#2919) (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.