Releases: ldc-developers/ldc
Releases · ldc-developers/ldc
LDC 0.16.0 beta1
(Changes from 0.16.0-alpha4 release are marked with (new) and gone.)
Big news:
- Frontend, druntime and Phobos are at version 2.067.1.
- LLVM 3.6.x is now supported. (#821, #855)
- LLVM 3.7.x is now supported.
- Coverage Analysis à la DMD added. Implemented by Johan Engelen! (#878)
std.net.curl
now loads libcurl at runtime if/when it is actually used. This is the same fix present in post-2.068 DMD, and avoids linking issues.- LDC now only links to the (slow)
-debuglib
libraries if the new-link-debuglib
flag is given. (#1108) (new)
Platform support:
- Win64 runtime now supports VS2015.
- Varargs fix & ABI refactoring. (#768) Thanks to kinke for the great work!
- Provide version ARM_SoftFP when float-abi=softfp. (#857)
- clang is the default compiler on FreeBSD 10 and is used as default linker driver on this platform. (#1117) (new)
Bug fixes:
- Switching fiber stacks in finally block causes EH internal error. (#1114) (new)
- 0.16.0-alpha4: Infinite recursion inside initializer. (#1101) (new)
- [0.16.0 alpha4] missing upstream patch(es?) for 2.067.1. (#1099) (new)
- LLVM 3.7: double-free issue bugging Phobos on Linux x64. (#1033) (new)
- OS X 32-bit codegen: impossible to call an Obj-C method which return a NSPoint without crash. (#1028) (new)
- Make GCC intrinsics usable with @nogc and const *. (#1090) Thanks to Marco Leise for providing the patch!
- Treat atomic instructions as intrinsics. (#1089)
- ldc2 does not respect
-of
on Windows. (#1084) - LLVM IR output: Do not repeat type in comments, print alloca sizes. (#1080)
- Calling members of large (>64 kiB) classes through interface reference fails. (#1065)
- Since 0.16.0, can't build any project with DUB whenever it has a dependency. (#1061)
- Interface dispatch is crashing. (#1058)
- merge-2.067: finally block executed twice. (#1054)
- Instruction does not dominate all uses. (#1042)
- Segfault while compiling hibernated. (#1024)
- 2.067 branch: Enormous compile time increase after dtor rework. (#1010)
- Do not emit bounds checking branches that are known to be taken (#1008)
- D variadic codegen bad for x86 32-bit and LLVM 3.6 (#1000)
- Building with -O2 -g leads to ICEs/crashes (inliner produces invalid debug info) (#998)
- Assigning struct initializer can create huge temoraries on stack. (#991)
- Segfault in cast_.d line 59 or 71 when casting class with struct containing union. (#989)
- MSVC build, lots and lots of warnings. (#988)
- ICE with std.datetime.benchmark (#982)
- Now the right C++ mangler is used when targetting MSVC.
- Duplicate symbol when using -lib (works with dmd). (#978)
- Failed assertion because of codegening a destructor call on an unavailable var. (#953)
- Vector ops optimization: inline vector ops with -O2 (#938)
- Crash: "Error: size of type is not known". (#893)
- 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) - Fix cmake bug when ldc is a submodule. (#860)
- druntime fails compilation with MinGW-x64. (#847)
- Now uses "REGEX REPLACE" for MSVC static libraries option.
Internals:
- The Travis-CI builds now use the docker environment.
- AppVeyor is used to check the Win64 build. Snapshots can be downloaded from https://ci.appveyor.com/project/kinke/ldc.
- 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!
- The CPP mangler calls now
fatal()
instead ofassert(0)
in many places. (#927, #928, #929) - 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.
atomicLoad()
,atomicStore()
et al. with 128bit data requires an alignment of 16 bytes on x86-64. Addalign(16)
if you encounter a segfault. If you are using vibe.d then you need to use version~master
because of this.- Phobos does not compile on MinGW platform.
Downloads
LDC 0.16.0 alpha4
(Changes from 0.16.0-alpha3 release are marked with (new) and gone.)
Big news:
- Frontend, druntime and Phobos are at version 2.067.1.
- LLVM 3.6.x is now supported. (#821, #855)
- LLVM 3.7.x is now supported.
- Coverage Analysis à la DMD added. Implemented by Johan Engelen! (#878)
std.net.curl
now loads libcurl at runtime if/when it is actually used. This is the same fix present in post-2.068 DMD, and avoids linking issues.
Platform support:
- Win64 runtime now supports VS2015.
- Varargs fix & ABI refactoring. (#768) Thanks to kinke for the great work!
- Provide version ARM_SoftFP when float-abi=softfp. (#857)
Bug fixes:
- Make GCC intrinsics usable with @nogc and const *. (#1090) (new) Thanks to Marco Leise for providing the patch!
- Treat atomic instructions as intrinsics. (#1089) (new)
- ldc2 does not respect -of on Windows. (#1084) (new)
- LLVM IR output: Do not repeat type in comments, print alloca sizes. (#1080) (new)
- Calling members of large (>64 kiB) classes through interface reference fails. (#1065) (new)
- Since 0.16.0, can't build any project with DUB whenever it has a dependency. (#1061)
- Interface dispatch is crashing. (#1058)
- merge-2.067: finally block executed twice. (#1054)
- Instruction does not dominate all uses. (#1042)
- Segfault while compiling hibernated. (#1024)
- 2.067 branch: Enormous compile time increase after dtor rework. (#1010)
- Do not emit bounds checking branches that are known to be taken (#1008)
- D variadic codegen bad for x86 32-bit and LLVM 3.6 (#1000)
- Building with -O2 -g leads to ICEs/crashes (inliner produces invalid debug info) (#998)
- Assigning struct initializer can create huge temoraries on stack. (#991)
- Segfault in cast_.d line 59 or 71 when casting class with struct containing union. (#989)
- MSVC build, lots and lots of warnings. (#988) (new)
- ICE with std.datetime.benchmark (#982)
- Now the right C++ mangler is used when targetting MSVC.
- Duplicate symbol when using -lib (works with dmd). (#978)
- Failed assertion because of codegening a destructor call on an unavailable var. (#953)
- Vector ops optimization: inline vector ops with -O2 (#938)
- Crash: "Error: size of type is not known". (#893)
- 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) - Fix cmake bug when ldc is a submodule. (#860)
- druntime fails compilation with MinGW-x64. (#847)
- Now uses "REGEX REPLACE" for MSVC static libaries option.
Internals:
- The Travis-CI builds now use the docker environment.
- AppVeyor is used to check the Win64 build. Snapshots can be downloaded from https://ci.appveyor.com/project/kinke/ldc.
- 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!
- The CPP mangler calls now
fatal()
instead ofassert(0)
in many places. (#927, #928, #929) - 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.
atomicLoad()
,atomicStore()
et al. with 128bit data requires an alignment of 16 bytes on x86-64. Addalign(16)
if you encounter a segfault. If you are using vibe.d then you need to use version~master
because of this.- Phobos does not compile on MinGW platform.
Downloads
LDC Windows master
This release has been superseded by the more generic CI release.
LDC 0.16.0 alpha3
(Changes from 0.16.0-alpha2 release are marked with (new) and gone.)
Big news:
- Frontend, druntime and Phobos are at version 2.067.1.
- LLVM 3.6.x is now supported. (#821, #855)
- LLVM 3.7.x is now supported.
- Coverage Analysis à la DMD added. Implemented by Johan Engelen! (#878)
std.net.curl
now loads libcurl at runtime if/when it is actually used. This is the same fix present in post-2.068 DMD, and avoids linking issues.
Platform support:
- Win64 runtime now supports VS2015.
- Varargs fix & ABI refactoring. (#768) Thanks to kinke for the great work!
- Provide version ARM_SoftFP when float-abi=softfp. (#857)
Bug fixes:
- Since 0.16.0, can't build any project with DUB whenever it has a dependency. (#1061) (new)
- Interface dispatch is crashing. (#1058) (new)
- merge-2.067: finally block executed twice. (#1054) (new)
- Instruction does not dominate all uses. (#1042) (new)
- Segfault while compiling hibernated. (#1024) (new)
- 2.067 branch: Enormous compile time increase after dtor rework. (#1010) (new)
- Do not emit bounds checking branches that are known to be taken (#1008)
- D variadic codegen bad for x86 32-bit and LLVM 3.6 (#1000)
- Building with -O2 -g leads to ICEs/crashes (inliner produces invalid debug info) (#998)
- Assigning struct initializer can create huge temoraries on stack. (#991)
- Segfault in cast_.d line 59 or 71 when casting class with struct containing union. (#989)
- MSVC build, lots and lots of warnings. (#988) (new, partial solved)
- ICE with std.datetime.benchmark (#982)
- Now the right C++ mangler is used when targetting MSVC.
- Duplicate symbol when using -lib (works with dmd). (#978)
- Failed assertion because of codegening a destructor call on an unavailable var. (#953)
- Vector ops optimization: inline vector ops with -O2 (#938)
- Crash: "Error: size of type is not known". (#893)
- 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) - Fix cmake bug when ldc is a submodule. (#860)
- druntime fails compilation with MinGW-x64. (#847)
- Now uses "REGEX REPLACE" for MSVC static libaries option.
Internals:
- The Travis-CI builds now use the docker environment.
- AppVeyor is used to check the Win64 build. Snapshots can be downloaded from https://ci.appveyor.com/project/kinke/ldc.
- 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!
- The CPP mangler calls now
fatal()
instead ofassert(0)
in many places. (#927, #928, #929) - 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.
atomicLoad()
,atomicStore()
et al. with 128bit data requires an alignment of 16 bytes on x86-64. Addalign(16)
if you encounter a segfault. If you are using vibe.d then you need to use version~master
because of this.- Phobos does not compile on MinGW platform.
Downloads
LDC 0.16.0 alpha 2
(Changes from 0.15.2-beta-2 release are marked with (new) and gone.)
Big news:
- Frontend, druntime and Phobos are at version 2.067.1. (new)
- LLVM 3.6.x is now supported. (#821, #855)
- LLVM 3.7.x is now supported. (new)
- Coverage Analysis à la DMD added. Implemented by Johan Engelen! (#878)
- 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.
Platform support:
- Win64 runtime now supports VS2015. (new)
- Varargs fix & ABI refactoring. (#768) Thanks to kinke for the great work!
- Provide version ARM_SoftFP when float-abi=softfp. (#857)
Bug fixes:
- Do not emit bounds checking branches that are known to be taken (#1008) (new)
- D variadic codegen bad for x86 32-bit and LLVM 3.6 (#1000) (new)
- Building with -O2 -g leads to ICEs/crashes (inliner produces invalid debug info) (#998) (new)
- Assigning struct initializer can create huge temoraries on stack. (#991) (new)
- Segfault in cast_.d line 59 or 71 when casting class with struct containing union. (#989) (new)
- ICE with std.datetime.benchmark (#982) (new)
- Now the right C++ mangler is used when targetting MSVC.
- Duplicate symbol when using -lib (works with dmd). (#978)
- Failed assertion because of codegening a destructor call on an unavailable var. (#953)
- Vector ops optimization: inline vector ops with -O2 (#938)
- Crash: "Error: size of type is not known". (#893)
- 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) - Fix cmake bug when ldc is a submodule. (#860)
- druntime fails compilation with MinGW-x64. (#847)
- Now uses "REGEX REPLACE" for MSVC static libaries option. (new)
Internals:
- The Travis-CI builds now use the docker environment. (new)
- AppVeyor is used to check the Win64 build. Snapshots can be downloaded from https://ci.appveyor.com/project/kinke/ldc. (new)
- 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!
- The CPP mangler calls now
fatal()
instead ofassert(0)
in many places. (#927, #928, #929) - 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.
Downloads
LDC 0.15.2 beta2
(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.
Downloads
LDC 0.15.2 beta1
Big news:
- Now LLVM 3.6.0 is officially supported!
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:
- 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:
Internals:
- 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 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.)
- 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.
Downloads
LDC 0.15.1
(Changes from beta-1 release are marked with (new) and gone. 0.15.0 was not released due to a bug.)
Big news:
- Frontend, druntime and Phobos are at version 2.066.1.
- Now LLVM 3.5.0 is officially supported!
- More LLVM intrinsics are now builtins (usable with CTFE):
llvm.sin
,llvm.cos
,llvm.sqrt
,llvm.fabs
,llvm.floor
,llvm.ceil
,llvm.round
,llvm.trunc
,llvm.minnum
andllvm.maxnum
. - LDC now builds vibe.d.
Platform support:
- Better (but not perfect) support for exceptions on ARM. (#489)
- 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. (Some unit tests are still failing, but major components including garbage collector work.)
- The internal assembler is now used on MinGW with LLVM 3.5 instead of GNU as.
- Support for Solaris/x86 has been added. (new)
Bug fixes:
- LDC 0.15.0 beta1 mingw x86 build calls DMD's (or whomever's) lib.exe incorrectly on windows. (#805 ) (new)
- Precompiled binary not working on Ubuntu 12.04 LTS. (Part of #804) (new)
- Struct dtor called twice under some circumstances. (#795) (new)
- Crash on empty expression after asm statement. (#791) (new)
- The modules from
core.internal.*
are now compiled intolibdruntime
. (Reported in newsgroup.) - Compile-time array literal repeatedly allocated at run-time despite not being used. (#762)
- ldmd2 now supports
-boundscheck=
. (Reported in newsgroup.) - 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)
- Use
returned
attribute for struct constructors. (#637) - 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)
- LDC not functional with newer mingw-w64 releases. (#534)
- Linker error when using curl. (#501)
- 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.)
- 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.
Downloads
LDC 0.15.0 beta 1
(Changes from alpha-1 release are marked with (new) and gone.)
Big news:
- Frontend, druntime and Phobos are at version 2.066.1. (new)
- Now LLVM 3.5.0 is officially supported!
- More LLVM intrinsics are now builtins (usable with CTFE):
llvm.sin
,llvm.cos
,llvm.sqrt
,llvm.fabs
,llvm.floor
,llvm.ceil
,llvm.round
,llvm.trunc
,llvm.minnum
andllvm.maxnum
. (new) - LDC now builds vibe.d.
Platform support:
- Better (but not perfect) support for exceptions on ARM. (#489) (new)
- 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. (Some unit tests are still failing, but major components including garbage collector work.)
- The internal assembler is now used on MinGW with LLVM 3.5 instead of GNU as.
Bug fixes:
- The modules from
core.internal.*
are now compiled intolibdruntime
. (Reported in newsgroup.) (new) - Compile-time array literal repeatedly allocated at run-time despite not being used. (#762) (new)
- ldmd2 now supports
-boundscheck=
. (Reported in newsgroup.) (new) - 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)
- Use
returned
attribute for struct constructors. (#637) (new) - 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)
- LDC not functional with newer mingw-w64 releases. (#534) (new)
- Linker error when using curl. (#501) (new)
- 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.)
- 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. (new)
Garbage collection does not work on Linux/PPC64 and other big-endian systems.
Downloads
LDC 0.15.0 alpha1
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.