github ldc-developers/ldc v0.15.0-alpha1
LDC 0.15.0 alpha1

latest releases: dmd-rewrite-v2.108.1, dmd-rewrite-v2.108.1-rc.1, v1.38.0-beta1...
pre-release9 years ago

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 and llvm.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 and llvm.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.

Downloads

Don't miss a new ldc release

NewReleases is sending notifications on new releases.