Pre-release

@redstar redstar released this Oct 9, 2016 · 1819 commits to master since this release

Assets 12

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

Big news

  • Frontend, druntime and Phobos are at version 2.071.1.
  • Cross-module inlining (#1577, enabled from -O2, disable with -disable-cross-module-inlining)
  • Profile-guided optimization (#1219, "How To" article)
  • Experimental IR-to-obj caching with -ir2obj-cache=<cache dir> (#1572)
  • Accept bitcode files on commandline (#1539)
  • @ldc.attributes.fastmath for aggressive math optimization (#1472, #1438)
  • New traits __traits(targetCPU) and __traits(targetHasFeature, ) (#1434)
  • Binary distribution now bundles DUB (#1573)
  • Drastic reduction of large symbol name lengths with -hash-threshold (#1445)
  • @ldc.attributes.optStrategy(...) for per-function optimization setting (#1637) (new)

Platform support

Bug fixes

  • Strange compile time error. (#1638) (new)
  • LDC+DUB on Windows: folder separator is ignored. (#1621) (new)
  • Fix evaluation order issues. (#1620, #1623) (new)
  • ICE on returning struct with zero-length static array. (#1611)
  • Debug info generation fixes for LLVM >= 3.8. (#1598) (new)
  • ICE after return in the middle of a function on Win64/MSVC. (#1582)
  • Enums with referenced struct members result in floating point error. (#1581)
  • Static array initialization with single element misdetected as direct construction via sret. (#1548)
  • ICE on static typeid. (#1540)
  • super doesn't work. (#1450)
  • Sub-expression evaluation order fixes. (#1327)

Building LDC

  • LDC now requires a preinstalled D compiler.
  • On Unix-like systems we now use gcc for linking. (#1594) (new)

Internals

  • optimizer: Skip adding verifier function pass if -disable-verify is given. (#1591)
  • DValue refactoring. (#1562)
  • Several improvements to generated IR. (#1528, #1630)

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.