github ldc-developers/ldc v0.15.0-beta1
LDC 0.15.0 beta 1

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

(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 and llvm.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 into libdruntime. (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 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)
  • 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

Don't miss a new ldc release

NewReleases is sending notifications on new releases.