(Changes since 1.11.0-beta1 are marked with (new).)
Big news
- Frontend, druntime and Phobos are at version 2.081.1+. (#2752, #2772, #2776) (new)
- Add some support for classes without TypeInfos, for
-betterC
and/or a minimal (d)runtime. (#2765) (new)
- Add some support for classes without TypeInfos, for
- LLVM for prebuilt packages upgraded to v6.0.1. The x86_64 packages feature some more LLVM targets for cross-compilation (experiments): MIPS, MSP430, RISC-V and WebAssembly. (#2760)
- Rudimentary support for compiling & linking directly to WebAssembly. See the dedicated Wiki page for how to get started. (#2766) (new)
- This is also the first release with a mostly working Android/AArch64 port, see this forum post for instructions on trying it out. (new)
- LDC on Windows now uses 80-bit compile-time
real
s. This allows for seamless cross-compilation to other x86(_64) targets, e.g., withoutreal.min
underflowing to 0 andreal.max
overflowing to infinity. (#2752)
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.11.0_android-arm.deb
. To cross-compile from a desktop OS, see the wiki.
Bug fixes
extern(C++)
on Posix: Pass non-PODs indirectly by value. (#2728)extern(C++)
on Windows/MSVC: Methods return all structs via hidden sret pointer. (#2720, #1935)- Make GC2Stack IR optimization pass work as intended. (#2750)
- Fix beta1 compilability regression on non-x86 architectures with 64-bit reals. (#2764) (new)
- Work around inline assembly regression with LLVM 6 on Win32. The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770) (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.