github ldc-developers/ldc v1.20.0-beta1
LDC 1.20.0-beta1

latest releases: v1.40.0-beta4, v1.40.0-beta3, v1.40.0-beta2...
pre-release4 years ago

Big news

  • Frontend, druntime and Phobos are at version 2.090.0+. (#3262)
  • The config file for multilib builds has been restructured by adding a separate section for the multilib target. This avoids --no-warn-search-mismatch for the linker and enables support for LLD. (#3276)
  • Support for embedding pragma({lib,linkerDirective}, ...) in Mach-O object files. (#3259)
    E.g., pragma(linkerDirective, "-framework", "CoreFoundation"); makes Apple's linker pull in that framework when pulling in the compiled object file.
    ELF object files newly embed pragma(lib, ...) library names in a special .deplibs section, but that only works with LLD 9+ for now.
  • The ldc-build-runtime tool has been slightly revised; --dFlags now extends the base D flags instead of overriding them. (1200601)
  • ModuleInfo.importedModules are now emitted as weak references (except on Windows, for LLD compatibility), following DMD. (#3262)

Platform support

  • Supports LLVM 3.9 - 9.0.

Bug fixes

  • Potential stack overflows on Linux in GC worker threads. (#3127, dlang/druntime#2904)
  • Support 2 leading dashes (not just 1) in command-line pre-parsing, thus fixing config file section lookup when using --mtriple and not ignoring --conf and --lowmem any longer. (#3268, #3275)
  • ICE during debuginfo generation for function literals inside enum declarations. (#3272, #3274)

Known issues

  • Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux.
  • 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.

Don't miss a new ldc release

NewReleases is sending notifications on new releases.