github ldc-developers/ldc v1.6.0
LDC 1.6.0

latest releases: v1.38.0-beta1, dmd-rewrite-v2.108.0, dmd-rewrite-v2.108.0-rc.1...
6 years ago

macOS note: The original binary packages for OS X did not include some of the LLVM runtime support libraries (fuzzing, AddressSanitizer, etc.). This issue has been corrected in the archive named ldc2-1.6.0_2-osx-x86_64.tar.xz, and the libraries are going to be shipped with future releases again.

(Changes from 1.6.0-beta1 release are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.076.1 (#2362), including -betterC semantics (#2365).
  • Experimental support for dynamic codegen at runtime (JIT-style) to tune performance-critical parts for the used CPU and/or treat special runtime variables as constants. See UDAs @dynamicCompile, @dynamicCompileConst in ldc.attributes; compile with command-line option -enable-dynamic-compile and use the ldc.dynamic_compile module to generate the code at runtime before invoking it. Congratulations to Ivan Butygin for implementing this non-trivial feature! (#2293)
  • Many std.math functions are now CTFE-able. (#2259)

Platform support

  • Supports LLVM 3.7 - 5.0.
  • Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017.

Bug fixes

  • Can't link against wsock32 and ws2_32 on Windows. (#468)
  • PGO incompatible with MSVC EH. (#1943)
  • Regression: ModuleInfos not emitted as COMDATs. (#2409) (new)
  • Incorrect C assert function signature for Android. (#2417) (new)
  • Overzealous error check when attempting to evaluate object as constant. (#2422) (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.
  • ThinLTO may not work well with the ld.bfd linker, use ld.gold instead (-linker=gold).

Don't miss a new ldc release

NewReleases is sending notifications on new releases.