Skip to content

LDC 1.2.0-beta2

Pre-release
Pre-release
Compare
Choose a tag to compare
@kinke kinke released this 03 Apr 13:17
· 39965 commits to master since this release

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

Big news

  • Frontend, druntime and Phobos are at version 2.072.2.

Platform support

  • Supports LLVM 3.5 - 4.0.
  • Exception backtrace robustness has been significantly improved.
  • Emission of reals with differing precision to the host platform's real has been fixed.
    (The compiler still uses the host platform's D real type to represent compile-time floating-point values, so parsing of literals and CTFE is restricted to the host real precision. For instance, LDC on AArch64 with its quad-precision reals would now make for a universal cross-compiler. On the other hand, cross-compiling from ARM to x86 with 80 bit reals still does not work – for example, real.max would silently overflow at compile-time and be emitted as 80-bit infinity.)

Bug fixes

  • Some LLVM intrinsics not available for LLVM ≥ 4.0 (#2037). (new)
  • Spurious crashes on OS X user program shutdown when linking against static druntime lib. (new)
  • Lexing floating-point literals may fail on PowerPC (#2046). (new)
  • LDC crashes when trying to repaint static arrays (#2033). (new)
  • No stack trace on Linux (#2004) and Windows (#1976, ldc-developers/druntime#85).
  • Generated documentation file is immediately deleted when compiling at the same time.
  • LDMD doesn't append default file extension if -of option doesn't contain any (#2001, #2002).

Building LDC

  • Building LDC 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.