Skip to content
Pre-release
Pre-release

@kinke kinke released this Jul 15, 2020

Big news

  • Frontend, druntime and Phobos are at version 2.093.0+, incl. new command-line option -vtemplates. (#3476)
  • Min required LLVM version raised to v6.0, dropping support for v3.9-5.0. (#3493)
  • The prebuilt Mac package now also includes prebuilt druntime/Phobos for the iOS/x86_64 simulator, making cross-compilation work out of the box with -mtriple=x86_64-apple-ios12.0. (#3478)

Platform support

  • Supports LLVM 6.0 - 10.0.

Bug fixes

  • Fix naked DMD-style asm emission for non-Mac x86 Darwin targets (e.g., iOS simulators). (#3478)
  • -betterC: Don't use unsupported EH for handling clean-ups. (#3479, #3482)
  • dcompute: Fix wrong address space loads and stores. Thx Rob! (#3428)
  • Fix ICE wrt. missing IR declarations for some forward-declared functions. (#3496, #3503)

Internals

  • Compiler performance wrt. string literals emission has been improved. Thx @looked-at-me! (#3490, #3492)
  • Link libstdc++ statically for libldc-jit.so of prebuilt Linux packages, to increase portability. (#3473, #3474)
  • Set up Visual D when using the Visual Studio CMake generator, making LDC compiler development on Windows a smooth out-of-the-box experience. (#3494)

Known issues

  • When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 14

@kinke kinke released this Jun 16, 2020

(Changes since 1.22.0-beta2 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.092.1+. (#3413, #3416, #3429, #3434, #3452, #3467) (new)
  • AArch64: All known ABI issues have been fixed. C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. (#3421)
  • Windows hosts: DMD's Visual C++ toolchain detection has been adopted. As that's orders of magnitude faster than the previous method involving the MS batch file, auto-detection has been enabled by default, so if you have a non-ancient Visual C++ installation, it will now be used automatically for linking. The environment setup has been reduced to the bare minimum (LIB and PATH). (#3415)
  • FreeBSD x64: CI with CirrusCI is now fully green and includes automated prebuilt package generation. The package depends on the llvm ports package and should currently work on FreeBSD 11-13. (#3453, #3464) (new)
  • Link-time overridable @weak functions are now emulated for Windows targets and work properly for ELF platforms. For ELF, LDC doesn't emit any COMDATs anymore. (#3424)
  • New ldc.gccbuiltins_{amdgcn,nvvm} for AMD GCN and NVIDIA PTX targets. (#3411)
  • druntime: Significant speed-up for core.math.ldexp. (#3440, #3446)

Platform support

  • Supports LLVM 3.9 - 10.0.

Bug fixes

  • Cross-module inlining (incl. pragma(inline, true)): Enable emission into multiple object files. This may have a significant impact on performance (incl. druntime/Phobos) when not using LTO. (#3126, #3442)
  • Android: Fix TLS initialization regression (introduced in v1.21) and potential alignment issues. Unfortunately, the ld.bfd linker is required for our custom TLS emulation scheme, unless you're willing to use a custom linker script. So -linker=bfd is the new default for Android targets. (#3462) (new)
  • Casting (static and dynamic) arrays to vectors now loads the data instead of splatting the first element. (#3418, #3419)
  • Fix return statements potentially accessing memory from destructed temporaries. (#3426)
  • Add proper support for -checkaction=halt. (#3430, #3431)
  • druntime: Include core.stdcpp.* modules. (#3103, #3158)
  • GCC-style asm: Add support for indirect input operands ("m"). (#3438)
  • FreeBSD: Fix backtraces for optimized code by switching to external libexecinfo. (#3108, #3453)
  • FreeBSD: Fix C math related issues (incl. CTFE math issues) by bringing core.stdc.{math,tgmath} up to speed. (dlang/druntime#3119)
  • Fix ICE for captured parameters not passed on the LLVM level. (#3441)
  • Convenience fixes for RISC-V and other exotic targets. (#3457, #3460) (new)

Internals

  • When printing compile-time reals to hex strings (mangling, .di headers), LDC now uses LLVM instead of the host C runtime, for proper and consistent results. (#3410)
  • One limitation for exotic hosts wrt. C long double precision has been lifted. (#3414)
  • For AVR targets, the compiler now predefines AVR and emits all TLS globals as regular __gshared ones. (#3420)
  • WebAssembly: New memory grow/size intrinsics. (ldc-developers/druntime#187) (new)
  • New -fno-plt option to avoid PLT external calls. (#3443)
  • iOS/arm64 CI, running the debug druntime & Phobos unittests on an iPhone 6S. Thx Jacob for this tedious work! (#3379, #3450)

Known issues

  • When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 14
Pre-release
Pre-release

@kinke kinke released this Jun 1, 2020

(Changes since 1.22.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.092.0+. (#3413, #3416, #3429, #3434, #3452) (new)
  • AArch64: All known ABI issues have been fixed. C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. (#3421)
  • Windows hosts: DMD's Visual C++ toolchain detection has been adopted. As that's orders of magnitude faster than the previous method involving the MS batch file, auto-detection has been enabled by default, so if you have a non-ancient Visual C++ installation, it will now be used automatically for linking. The environment setup has been reduced to the bare minimum (LIB and PATH). (#3415)
  • Link-time overridable @weak functions are now emulated for Windows targets and work properly for ELF platforms. For ELF, LDC doesn't emit any COMDATs anymore. (#3424)
  • New ldc.gccbuiltins_{amdgcn,nvvm} for AMD GCN and NVIDIA PTX targets. (#3411)
  • druntime: Significant speed-up for core.math.ldexp. (#3440, #3446) (new)

Platform support

  • Supports LLVM 3.9 - 10.0.

Bug fixes

  • Cross-module inlining (incl. pragma(inline, true)): Enable emission into multiple object files. (#3126, #3442) (new)
  • Casting (static and dynamic) arrays to vectors now loads the data instead of splatting the first element. (#3418, #3419)
  • Fix return statements potentially accessing memory from destructed temporaries. (#3426)
  • Add proper support for -checkaction=halt. (#3430, #3431)
  • druntime: Include core.stdcpp.* modules. (#3103, #3158) (new)
  • GCC-style asm: Add support for indirect input operands ("m"). (#3438) (new)
  • FreeBSD: Fix backtraces for optimized code by switching to external libexecinfo. (#3108, #3453) (new)
  • FreeBSD: Fix C math related issues (incl. CTFE math issues) by bringing core.stdc.{math,tgmath} up to speed. (dlang/druntime#3119) (new)
  • Fix ICE for captured parameters not passed on the LLVM level. (#3441) (new)

Internals

  • When printing compile-time reals to hex strings (mangling, .di headers), LDC now uses LLVM instead of the host C runtime, for proper and consistent results. (#3410)
  • One limitation for exotic hosts wrt. C long double precision has been lifted. (#3414)
  • For AVR targets, the compiler now predefines AVR and emits all TLS globals as regular __gshared ones. (#3420)
  • New -fno-plt option to avoid PLT external calls. (#3443) (new)
  • iOS/arm64 CI, running the debug druntime & Phobos unittests on an iPhone 6S. Thx Jacob for this tedious work! (#3379, #3450) (new)
  • FreeBSD CI with CirrusCI is now fully green and non-optional. (#3453) (new)

Known issues

  • When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 13
Pre-release
Pre-release

@kinke kinke released this May 17, 2020

Big news

  • Frontend, druntime and Phobos are at version 2.092.0+. (#3413, #3416, #3429, #3434)
  • AArch64: All known ABI issues have been fixed. C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. (#3421)
  • Windows hosts: DMD's Visual C++ toolchain detection has been adopted. As that's orders of magnitude faster than the previous method involving the MS batch file, auto-detection has been enabled by default, so if you have a non-ancient Visual C++ installation, it will now be used automatically for linking. The environment setup has been reduced to the bare minimum (LIB and PATH). (#3415)
  • Link-time overridable @weak functions are now emulated for Windows targets and work properly for ELF platforms. For ELF, LDC doesn't emit any COMDATs anymore. (#3424)
  • New ldc.gccbuiltins_{amdgcn,nvvm} for AMD GCN and NVIDIA PTX targets. (#3411)

Platform support

  • Supports LLVM 3.9 - 10.0.

Bug fixes

  • Casting (static and dynamic) arrays to vectors now loads the data instead of splatting the first element. (#3418, #3419)
  • Fix return statements potentially accessing memory from destructed temporaries. (#3426)
  • Add proper support for -checkaction=halt. (#3430, #3431)

Internals

  • When printing compile-time reals to hex strings (mangling, .di headers), LDC now uses LLVM instead of the host C runtime, for proper and consistent results. (#3410)
  • One limitation for exotic hosts wrt. C long double precision has been lifted. (#3414)
  • For AVR targets, the compiler now predefines AVR and emits all TLS globals as regular __gshared ones. (#3420)

Known issues

  • When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 13

@kinke kinke released this Apr 23, 2020

(Changes since 1.21.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.091.1+, incl. new CLI switches -verror-style and -HC, -HCd, -HCf. (#3333, #3399) (new)
  • iOS (incl. watchOS and tvOS) support has landed in druntime and Phobos (thanks Jacob!). All unittests are green on iOS/arm64. The prebuilt macOS package includes prebuilt druntime & Phobos libraries for iOS/arm64, for first -mtriple=arm64-apple-ios12.0 cross-compilation experiments. (#3373)
  • LLVM for prebuilt packages upgraded to v10.0.0. Android NDK version bumped to r21. (#3307, #3387, #3398) (new)
  • Initial support for GCC/GDC-style inline assembly syntax, besides DMD-style inline asm and LDC-specific __asm, enabling to write inline asm that is portable across GDC/LDC and corresponds to the GCC syntax in C. See ldc-developers/druntime#171 for examples wrt. how to transition from __asm to similar GCC-style asm. (#3304)
  • Inline assembly diagnostics have been extended by the D source location. (#3339)
  • Android:
    • Revamped druntime initialization, fixing related issues for i686/x86_64 targets, enabling the usage of the ld.gold linker (bfd isn't required anymore) as well as getting rid of the D main() requirement. (#3350, #3357, ldc-developers/druntime#178)
    • Reduced size for shared libraries by compiling druntime and Phobos with hidden visibility. (#3377) (new)

Platform support

  • Supports LLVM 3.9 - 10.0.

Bug fixes

  • Fixed tail calls in thunks, affecting AArch64 (the debug libraries now work) and possibly other architectures. (#3329, #3332)
  • Windows: Do not emit any column infos for CodeView by default (like clang) & add -gcolumn-info. (#3102, #3388) (new)
  • Windows: Do not leak MSVC-environment-setup into -run child processes. A new LDC_VSDIR_FORCE environment variable can be used to enforce MSVC toolchain setup. (#3340, #3341)
  • Windows: Fix memory leak when throwing exceptions in threads. (#3369, ldc-developers/druntime#181)
  • Try to use memcmp for (in)equality of non-mutable static arrays and mutable slices. (#3400, #3401) (new)
  • ldc.gccbuiltins_*: Lift 256-bit vector limit, adding 174 AVX512 builtins for x86; 512-bit vector aliases have been added to core.simd. (#3405, #3406) (new)

Internals

  • core.bitop.{bts,btr,btc} are now CTFE-able. (ldc-developers/druntime#182) (new)
  • Do not fallback to host for critical section size of unknown targets. (#3389) (new)
  • Linux: Possibility to avoid passing -fuse-ld to cc via -linker=. (#3382) (new)
  • WebAssembly: Switch from legacy linked-list ModuleInfo registry to __minfo section. (#3348)
  • Windows: Bundled libcurl upgraded to v7.69.1, incl. the option to link it statically. (#3378) (new)
  • Windows: Switch to wide wmain C entry point in druntime. (#3351)
  • druntime unittests are now compiled with -checkaction=context.

Known issues

  • NEW: When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 13
Pre-release
Pre-release

@kinke kinke released this Mar 21, 2020

Big news

  • Frontend, druntime and Phobos are at version 2.091.0, incl. new CLI switches -verror-style and -HC, -HCd, -HCf. (#3333)
  • iOS (incl. watchOS and tvOS) support has landed in druntime and Phobos (thanks Jacob!). All unittests are green on iOS/arm64. The prebuilt macOS package includes prebuilt druntime & Phobos libraries for iOS/arm64, for first -mtriple=arm64-apple-ios12.0 cross-compilation experiments. (#3373)
  • LLVM for prebuilt packages upgraded to v10.0.0-rc4. Android NDK version bumped to r21. (#3307)
  • Initial support for GCC/GDC-style inline assembly syntax, besides DMD-style inline asm and LDC-specific __asm, enabling to write inline asm that is portable across GDC/LDC and corresponds to the GCC syntax in C. See ldc-developers/druntime#171 for examples wrt. how to transition from __asm to similar GCC-style asm. (#3304)
  • Inline assembly diagnostics have been extended by the D source location. (#3339)
  • Android: Revamped druntime initialization, fixing related issues for i686/x86_64 targets, enabling the usage of the ld.gold linker (bfd isn't required anymore) as well as getting rid of the D main() requirement. (#3350, #3357, ldc-developers/druntime#178)

Platform support

  • Supports LLVM 3.9 - 10.0.

Bug fixes

  • Fixed tail calls in thunks, affecting AArch64 (the debug libraries now work) and possibly other architectures. (#3329, #3332)
  • Windows: Do not leak MSVC-environment-setup into -run child processes. A new LDC_VSDIR_FORCE environment variable can be used to enforce MSVC toolchain setup. (#3340, #3341)
  • Windows: Fix memory leak when throwing exceptions in threads. (#3369, ldc-developers/druntime#181)

Internals

  • WebAssembly: Switch from legacy linked-list ModuleInfo registry to __minfo section. (#3348)
  • Windows: Switch to wide wmain C entry point in druntime. (#3351)

Known issues

  • NEW: When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. It can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354)
  • 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.
Assets 13

@kinke kinke released this Mar 7, 2020

Bug fixes

  • Non-Windows: Revert to strong ModuleInfo.importedModules references for correct module constructors execution order. (#3346, #3347)
Assets 13

@kinke kinke released this Feb 14, 2020

(Changes since 1.20.0-beta1 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.090.1+. (#3262, #3296, #3306, #3317, #3326) (new)
  • Codegen preparations for:
    • iOS/tvOS/watchOS on AArch64. Thanks Jacob! (#3288) (new)
    • WASI (WebAssembly System Interface) (#3295) (new)
  • 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)
  • Windows: Bundled MinGW-based libs now support wide wmain and wWinMain C entry points. (#3311) (new)

Platform support

  • Supports LLVM 3.9 - 10.0. (new)

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)
  • Support for data directives in DMD-style inline asm. (#3299, #3301) (new)
  • Cherry-picked fixes for soft-float targets. (#3292, dlang/phobos#7362, dlang/phobos#7366, dlang/phobos#7377) (new)
  • ICE during debuginfo generation for function literals inside enum declarations. (#3272, #3274)

Internals

  • Misc. tweaks for dmd-testsuite: (#3287, #3306) (new)
    • Significantly accelerated by skipping uninteresting permutations.
    • Switch from Makefile to run.d, incl. moving LDC-specific exceptions from Makefile to individual test files and support for extended DISABLED directives.
  • Addition of (recommendable!) Cirrus CI service (incl. FreeBSD) and removal of Semaphore CI. (#3298) (new)
  • Some improvements for gdmd host compilers, incl. CI tests. (#3286) (new)

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.
Assets 13
Pre-release
Pre-release

@kinke kinke released this Jan 16, 2020

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.
Assets 13

@kinke kinke released this Dec 20, 2019

(Changes since 1.19.0-beta2 are marked with (new).)

Big news

  • Frontend, druntime and Phobos are at version 2.089.1+. (#3192, #3210, #3215, #3232, #3242, #3255, #3261) (new)
  • LLVM for prebuilt packages upgraded to v9.0.1; our fork has moved to ldc-developers/llvm-project. The x86[_64] packages newly include the experimental AVR backend. (#3244) (new)
  • Android: A prebuilt AArch64 package has been added. It also includes prebuilt druntime/Phobos libraries for x86_64; the armv7a package includes the i686 libraries. So all 4 Android targets are covered with prebuilt druntime/Phobos. (#3244) (new)
  • Breaking extern(D) ABI change for Posix x86[_64]: non-POD arguments are now passed by ref under the hood, just like they already were for extern(C++). Some superfluous implicit blits have been optimized away as well, for all targets. (#3204)
  • Posix: Defaults to cc now for linking, not gcc (or clang for FreeBSD 10+) - if the CC environment variable isn't set. Override with -gcc=<gcc|clang>. (#3202)
  • Codegen elision of dead branches for if statements with constant condition (not depending on enabled LLVM optimizations). (#3134)
  • druntime: New llvm_sideeffect intrinsic, new @cold function UDA and extended CAS functionality in core.atomic (incl. support for weak CAS and separate failure ordering). (ldc-developers/druntime#166, ldc-developers/druntime#167, #3220)
  • Windows: Bundled MinGW-based libs have been upgraded to use the .def files from MinGW-w64 v7.0.0. They now also contain a default DllMain entry point as well as _[v]snprintf. (libs, #3142)

Platform support

  • Supports LLVM 3.9 - 9.0.

Bug fixes

  • Misc. CMake issues with some LLVM 9 configurations. (#3079, #3198)
  • Equality/identity comparisons of vectors with length ≥ 32. (#3208, #3209)
  • ldc.gccbuiltins_* druntime modules now available to non-installed compiler too. (#3194, #3201)
  • Potential ICE when applying @assumeUsed on global union. (#3221, #3222)
  • Context from outer function, but no outer function? regression introduced in v1.11 (inability to access outer context from extern(C++) methods). (#3234, #3235)
  • Lvalue expressions with nested temporaries to be destructed yielding a wrong lvalue. (#3233)
  • druntime: Cherry-picked fix wrt. GC potentially collecting objects still referenced in other threads' TLS area. (dlang/druntime#2558) (new)

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.
Assets 13
You can’t perform that action at this time.