Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- ldc2-0.17.0-win64-msvc.zip 18.4 MB
- ldc2-0.17.0-linux-x86.tar.xz 12.2 MB
- ldc2-0.17.0-linux-x86.tar.gz 20.3 MB
- ldc-0.17.0-src.tar.gz 4.72 MB
- ldc2-0.17.0-linux-x86_64.tar.xz 15.3 MB
- ldc2-0.17.0-linux-x86_64.tar.gz 28.1 MB
- ldc2-0.17.0-win32-msvc.zip 14.4 MB
- ldc2-0.17.0-osx-x86_64.tar.xz 13 MB
- Source code (zip)
- Source code (tar.gz)
(Changes from 0.17.0-beta2 release are marked with (new) and
- Frontend, druntime and Phobos are at version 2.068.2.
- The exception handling runtime now no longer allocates GC memory (although it still uses C
mallocif there are more than 8 concurrent exceptions or nested
finallyblocks per thread). Note: Creating the
Throwables in user code (e.g.
new Exception("…")) and the
Runtime.traceHandlermay GC-allocate still. (Thanks for this goes to our newest contributor, @Philpax).
@ldc.attributes.section("…")attribute can now be used to explicitly specify the object file section a variable or function is emitted to.
@ldc.attributes.target("…")attribute can now be used to explicitly specify CPU features or architecture for a function.
-staticoption can be used to create fully static binaries on Linux (akin to the GCC option of the same name).
core.atomic.atomicOp()now exploits LLVM read-modify-write intrinsics instead of using a compare-and-swap loop. As side-effect, the atomic intrinsics in module
ldc.intrinsicshave been renamed:
- Improved ARM support. (#1280) (new)
- The compiler now supports NetBSD. (#1247) (Thanks for this goes to @nrTQgc.)
- The float ABI can now be derived from the second field of the triple. E.g. the hardfloat ABI is used if triple
armv7a-hardfloat-linux-gnueabiis given. (#1253)
- Support for fibers on AArch64. (new)
- Support for LLVM 3.8 and preliminary support for LLVM 3.9
- make install problem. (#1289) (new)
- When a class contains a union, other fields are not statically initialized. (#1286) (new)
- Compiling DCD with -singleobj causes segmentation fault. (#1275) (new)
- 0.17.0-beta2: Cannot build DCD. (#1266) (new)
- Invalid bitcast error. (#1211) (new)
- 0.16.0-beta1: Trivial program fails on FreeBSD. (#1119)
- Can't build gtk-d 3.1.4. (#1112) (new)
- x86 ABI: Fix Solaris regression and work around MSVC byval alignment issue. (#1230)
- Atomic RMW operations emit subpar x86 assembly. (#1195)
- align() not respected for local variable declarations. (#1154)
- Codegen optimizations are no longer disabled when
-gis given. (75b3270)
- Debug information is now generated for
core.internal.converttests do not depend on
realpadding bytes any longer. (#788)
- LDC now requires LLVM 3.5–3.8 and thus also a C++11-capable compiler to build.
- The LDC-specific parts of the source code have received a big overhaul to make use of some C++11 features and to unify the style (the LLVM style as per
clang-formatis now used).
- The groundwork for a code generation test suite working on the LLVM IR level has been laid, together with some first test cases for alignment issues.
- LDC now emits more optional LLVM IR attributes for more optimization opportunities. (#1232)
- 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.
- Phobos does not compile on MinGW platform.