(Changes from beta-1 release are marked with (new) and gone.)
Big news:
- LLVM 3.6.x is now supported. (#821, #855) (new)
- Coverage Analysis à la DMD added. Implemented by Johan Engelen! (#878) (new)
- LDC now links in libcurl by default. This avoids linking issues (e.g. #683). You can explicitly set
-defaultlib
/-debuglib
or editldc2.conf
if you do not want to link to libcurl. (new)
Platform support:
- Varargs fix & ABI refactoring. (#768) Thanks to kinke for the great work!
- Provide version ARM_SoftFP when float-abi=softfp. (#857)
Bug fixes:
- Now the right C++ mangler is used when targetting MSVC. (new)
- Duplicate symbol when using -lib (works with dmd). (#978) (new)
- Failed assertion because of codegening a destructor call on an unavailable var. (#953) (new)
- Vector ops optimization: inline vector ops with -O2 (#938) (new)
- Crash: "Error: size of type is not known". (#893) (new)
- msgpack-d 0.9.3 unittesting fails. (#841)
- repeatable crash with vague error message. (#837)
- ARM float-abi=soft. (Phobos only - see #829)
- Wrong handling of -m32/-m64. (#824)
- [DUB][scid] test crashes. (#823)
- Can't link dub with i686 LDC 0.15.1. (#813)
- Segfault when casting a class with a 0 length array. (#812)
- Compiler silently dies while codegening. (#809)
- Vararg functions does not compile on x86_64. (#702)
- Make the x86_64 System V ABI code use Type::toArgTypes. (#288)
- ABI transformations are never applied for variadic arguments. (#172)
- stack trace missing on assert failure. (#115, fixed only on OS X, see #863)
- core.stdc.stdarg doesn't work on 64 bits. (#73)
Building LDC:
- CMake fails after
git gc
. (#874) (new) - Fix cmake bug when ldc is a submodule. (#860)
- druntime fails compilation with MinGW-x64. (#847)
- LDC builds with current LLVM trunk 3.7, too.
Internals:
- Coverage Analysis for the LDC source code is now available at https://coveralls.io/r/ldc-developers/ldc. (#903, #380). Thanks a lot to Dmitri Makarov for implementing this! (new)
- The CPP mangler calls now
fatal()
instead ofassert(0)
in many places. (#927, #928, #929) (new) - Updated to Doxygen v1.8.9.1 and changed path 'dmd' to 'dmd2'. (#846)
- Modernize bash completion setup. (#840)
- Updates to Travis-CI: gcc 4.9 and LLVM 3.7 are added. (#838)
- ldc2: valgrind: invalid read of size 4. (#825)
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 to real members inside structs etc.