Big news:
- Frontend, druntime and Phobos are at version 2.066.1-rc2.
- Now LLVM 3.5.0 is officially supported!
- More LLVM intrinsics are now builtins (usable with CTFE):
llvm.sin
,llvm.cos
,llvm.sqrt
andllvm.fabs
. - LDC now builds vibe.d.
Platform support:
- Better support for Win64 with MS C Runtime (requires LLVM 3.6!).
- Support for x87 80bit reals on Win64 with MS C Runtime has been dropped.
- Support for doubledouble on PPC32/64 has been dropped.
- Support for Linux/PPC64 Little Endian has been added. (Please note that there are still failing unit tests.)
- The internal assembler is now used on MinGW with LLVM 3.5 instead of GNU as.
Bug fixes:
- Fix Win64 ABI wrt. passing structs > 64 bit. (#756)
- ICE with minimal D runtime and basic
extern(C) int main()
function. (#689) - CMake build failed with non-empty lib suffix. (#712)
- Cannot build GtkD using ldc2. (#703)
- Builtins
llvm.ctpop
andllvm.bswap
now work as expected. - Win64 MSVC improvements. (#727, #728)
- Wrong alignment for struct fields on x86_64/amd64 (#726)
- 2 nested context problems were fixed. (#696, #739)
- Building LuaD fails on Windows. (#642)
- Using nested structs with AAs can trigger an erroneous "cannot create associative array" error in some very specific circumstances (#407).
- LDC crashes if imported module contains error. (#541)
- Compiler Segfault: Running pass 'X86 AT&T-Style Assembly Printer' on function "...". (#546)
- Exception chaining not implemented on Win64. (#463)
- isFile() called with a nonexistant path crashes on Win64. (#460)
- std.stdio File I/O is not fully complete. (#459)
- MSVC linking issue with std.zlib. (#306)
- Win64 Exception Handling. (#166)
Building LDC:
- The CMake files work with LLVM 3.6. LDC can be compiled with LLVM master.
- Removed compiler switch
-Wno-pendantic
if an older gcc is used.
Internals:
- Fixed missing call to va_end. (#695)
Known issues:
- LDC emits too much code. This leads to spurious failures in the std.stdiobase unit test. Workaround is adding -lcurl to the commandline. (This seems to be related to #662.)
- Garbage collection does not work on Linux/PPC64 and other big-endian systems.