Skip to content

Releases: ldc-developers/ldc

LDC 1.0.0 beta 1

25 Apr 06:38
Compare
Choose a tag to compare
LDC 1.0.0 beta 1 Pre-release
Pre-release

(Changes from 1.0.0-alpha1 release are marked with (new) and gone.)

Big news

  • Frontend, druntime and Phobos are at version 2.070.2. (new)

Platform support

  • Support for LLVM 3.8 and preliminary support for LLVM 3.9.
  • Objective-C Support. (#1419) (new)
  • ARM platform is now fully supported. (#1283, #489)
  • Better support for Android. (#1447) (new)
  • Preliminary support for AArch64.

Bug fixes

  • Wrong template filter on atomicOp. (#1454) (new)
  • Runtime error on synchronized(typeid(SomeInterface)) { }. (#1377)
  • TypeInfo is stored read-only, but mutable from D. (#1337)
  • Inline assembly regression with local variable references. (#1292)
  • Compile error on Linux/PPC and Linux/PPC64 due to missing import in Phobos.

Building LDC

  • LDC now requires a preinstalled D compiler.

Internals

  • Linking against LLVM shared library is now supported.

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.
  • Phobos does not compile on MinGW platform.

LDC 0.17.1

24 Mar 21:14
Compare
Choose a tag to compare

This is a bug fix release only. Please refer to the 0.17.0 changelog for the complete set of changes in this version.

Big news

  • ARM platform is now a first class target for LDC. It passes most test cases (except 2 failures) and can successfully compile the D version of the compiler.

Platform support

  • ARM platform is now fully supported. (#1283, #489)
  • Preliminary support for AArch64.
  • Preliminary support for LLVM 3.9.

Bug fixes

  • Inline assembly regression with local variable references. (#1292)
  • Compile error on Linux/PPC and Linux/PPC64 due to missing import in Phobos.

Building LDC

  • Linking against LLVM shared library is now supported.

Internals

Known issues

LDC 1.0.0 alpha 1

26 Feb 21:09
Compare
Choose a tag to compare
LDC 1.0.0 alpha 1 Pre-release
Pre-release

Big news

  • Frontend, druntime and Phobos are at version 2.069.2.

Platform support

  • Support for LLVM 3.8 and preliminary support for LLVM 3.9.

Bug fixes

Building LDC

  • LDC now requires a preinstalled D compiler.

Internals

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.
  • Phobos does not compile on MinGW platform.

LDC 0.17.0

14 Feb 17:29
Compare
Choose a tag to compare

(Changes from 0.17.0-beta2 release are marked with (new) and gone.)

Big news:

  • 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 malloc if there are more than 8 concurrent exceptions or nested finally blocks per thread). Note: Creating the Throwables in user code (e.g. new Exception("…")) and the Runtime.traceHandler may GC-allocate still. (Thanks for this goes to our newest contributor, @philpax).
  • The @ldc.attributes.section("…") attribute can now be used to explicitly specify the object file section a variable or function is emitted to.
  • The @ldc.attributes.target("…") attribute can now be used to explicitly specify CPU features or architecture for a function.
  • The -static option 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.intrinsics have been renamed:
    • llvm_atomic_cmp_swap => llvm_atomic_cmp_xchg
    • llvm_atomic_swap => llvm_atomic_rmw_xchg
    • llvm_atomic_load_* => llvm_atomic_rmw_*

Platform support:

  • 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-gnueabi is given. (#1253)
  • Support for fibers on AArch64. (new)
  • Support for LLVM 3.8 and preliminary support for LLVM 3.9

Bug fixes:

  • 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 -g is given. (75b3270)
  • Debug information is now generated for ref and out parameters. (#1177)
  • core.internal.convert tests do not depend on real padding bytes any longer. (#788)

Building LDC:

  • LDC now requires LLVM 3.5–3.8 and thus also a C++11-capable compiler to build.

Internals:

  • 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-format is 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)

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.
  • Phobos does not compile on MinGW platform.

Downloads

LDC 0.17.0 beta 2

28 Jan 23:44
Compare
Choose a tag to compare
LDC 0.17.0 beta 2 Pre-release
Pre-release

(Changes from 0.17.0-beta1 release are marked with (new) and gone.)

Big news:

  • 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 malloc if there are more than 8 concurrent exceptions or nested finally blocks per thread). Note: Creating the Throwables in user code (e.g. new Exception("…")) and the Runtime.traceHandler may GC-allocate still. (Thanks for this goes to our newest contributor, @philpax).
  • The @ldc.attributes.section("…") attribute can now be used to explicitly specify the object file section a variable or function is emitted to.
  • The -static option 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.intrinsics have been renamed:
    • llvm_atomic_cmp_swap => llvm_atomic_cmp_xchg
    • llvm_atomic_swap => llvm_atomic_rmw_xchg
    • llvm_atomic_load_* => llvm_atomic_rmw_*

Platform support:

  • The compiler now supports NetBSD. (#1247) (Thanks for this goes to @nrTQgc.) (new)
  • 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-gnueabi is given. (#1253) (new)
  • Support for LLVM 3.8 and preliminary support for LLVM 3.9 (new)

Bug fixes:

  • 0.16.0-beta1: Trivial program fails on FreeBSD. (#1119) (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 -g is given. (75b3270)
  • Debug information is now generated for ref and out parameters. (#1177)
  • core.internal.convert tests do not depend on real padding bytes any longer. (#788)

Building LDC:

  • LDC now requires LLVM 3.5–3.8 and thus also a C++11-capable compiler to build.

Internals:

  • 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-format is 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)

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.
  • Phobos does not compile on MinGW platform.

Downloads

LDC 0.17.0 beta 1

14 Jan 20:29
Compare
Choose a tag to compare
LDC 0.17.0 beta 1 Pre-release
Pre-release

(Changes from 0.17.0-alpha1 release are marked with (new) and gone.)

Big news:

  • 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 malloc if there are more than 8 concurrent exceptions or nested finally blocks per thread). Note: Creating the Throwables in user code (e.g. new Exception("…")) and the Runtime.traceHandler may GC-allocate still. (Thanks for this goes to our newest contributor, @philpax).
  • The @ldc.attributes.section("…") attribute can now be used to explicitly specify the object file section a variable or function (new) is emitted to.
  • The -static option 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.intrinsics have been renamed:
    • llvm_atomic_cmp_swap => llvm_atomic_cmp_xchg
    • llvm_atomic_swap => llvm_atomic_rmw_xchg
    • llvm_atomic_load_* => llvm_atomic_rmw_*

Platform support:

Bug fixes:

  • 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 -g is given. (75b3270)
  • Debug information is now generated for ref and out parameters. (#1177)
  • core.internal.convert tests do not depend on real padding bytes any longer. (#788) (new)

Building LDC:

  • LDC now requires LLVM 3.5–3.7 and thus also a C++11-capable compiler to build.

Internals:

  • 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-format is 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) (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 to real members inside structs etc.
  • Phobos does not compile on MinGW platform.

Downloads

LDC 0.17.0 alpha1

20 Dec 15:34
Compare
Choose a tag to compare
LDC 0.17.0 alpha1 Pre-release
Pre-release

Big news:

  • 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 malloc if there are more than 8 concurrent exceptions or nested finally blocks per thread). Note: Creating the Throwables in user code (e.g. new Exception("…")) and the Runtime.traceHandler may GC-allocate still. (Thanks for this goes to our newest contributor, @philpax).
  • The @ldc.attributes.section("…") attribute can now be used to explicitly specify the object file section a variable is emitted to.
  • The -static option 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.intrinsics have been renamed:
    • llvm_atomic_cmp_swap => llvm_atomic_cmp_xchg
    • llvm_atomic_swap => llvm_atomic_rmw_xchg
    • llvm_atomic_load_* => llvm_atomic_rmw_*

Platform support:

Bug fixes:

  • 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 -g is given. (75b3270)
  • Debug information is now generated for ref and out parameters. (#1177)

Building LDC:

  • LDC now requires LLVM 3.5–3.7 and thus also a C++11-capable compiler to build.

Internals:

  • 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-format is 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.

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.
  • Phobos does not compile on MinGW platform.

Downloads

LDC 0.16.1

28 Oct 07:48
Compare
Choose a tag to compare

This is a bug fix release only. Please refer to the 0.16.0 changelog for the complete set of changes in this version.

Bug fixes:

  • Win64: no error status when creating a library fails. (#1161)
  • Win64: link fails with lots of object files. (#1160)
  • Introduce DtoAlignment() and overload DtoAlloca() for VarDeclarations (#1159)

Building LDC:

  • LDC can be built with current LLVM 3.8 trunk. (#1164, #1170) Thanks to Rainer Schütze for providing the pull requests.

Downloads

LDC 0.16.0

22 Oct 18:41
Compare
Choose a tag to compare

(Changes from 0.16.0-beta2 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)

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)

Bug fixes:

  • 0.16.0-beta2 msvc automatic detection (#1152) (new)
  • DDMD built with LDC comes across StringExp with sz == 0. (#1141)
  • ldc2 crash while compiling mysql-native 0.1.3. (#1135)
  • Fix debug infos of nested variables (#1134)
  • Fix misaligned vector variable initializers (#1128)
  • equivalent of dmd -conf=path for ldc and ldmd (#972, #879)
  • Switching fiber stacks in finally block causes EH internal error. (#1114)
  • 0.16.0-alpha4: Infinite recursion inside initializer. (#1101)
  • [0.16.0 alpha4] missing upstream patch(es?) for 2.067.1. (#1099)
  • LLVM 3.7: double-free issue bugging Phobos on Linux x64. (#1033)
  • OS X 32-bit codegen: impossible to call an Obj-C method which return a NSPoint without crash. (#1028)
  • 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:

  • 0.16_alpha4: No rule to make target '/usr/lib64/libLLVMTableGen.a' (#1110) (new)
  • 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 of assert(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. Add align(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. (#1121)
  • Programs on FreeBSD crash. (#1119)

Downloads

LDC 0.16.0 beta2

10 Oct 15:23
Compare
Choose a tag to compare
LDC 0.16.0 beta2 Pre-release
Pre-release

(Changes from 0.16.0-beta1 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)

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)

Bug fixes:

  • DDMD built with LDC comes across StringExp with sz == 0. (#1141) (new)
  • ldc2 crash while compiling mysql-native 0.1.3. (#1135) (new)
  • Fix debug infos of nested variables (#1134) (new)
  • Fix misaligned vector variable initializers (#1128) (new)
  • equivalent of dmd -conf=path for ldc and ldmd (#972, #879) (new)
  • Switching fiber stacks in finally block causes EH internal error. (#1114)
  • 0.16.0-alpha4: Infinite recursion inside initializer. (#1101)
  • [0.16.0 alpha4] missing upstream patch(es?) for 2.067.1. (#1099)
  • LLVM 3.7: double-free issue bugging Phobos on Linux x64. (#1033)
  • OS X 32-bit codegen: impossible to call an Obj-C method which return a NSPoint without crash. (#1028)
  • 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 of assert(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. Add align(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. (#1121)
  • Programs on FreeBSD crash. (#1119)

Downloads