[Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint)

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Thu Aug 3 07:09:28 PDT 2017


https://issues.dlang.org/show_bug.cgi?id=17712

kinke at gmx.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kinke at gmx.net

--- Comment #4 from kinke at gmx.net ---
LDC ran into the same issue when moving to Phobos 2.074. I ended up switching
from individual druntime/Phobos object file compilation to all-D-files-at-once
compilation (like DMD), as that reduces the template instantiation culling [1].
See LDC PR [2].

This template culling, in combination with restructured Phobos, also leads to
sometimes dramatic performance decreases due to less inlining potential with
non-instantiated (culled) templates, rendering cross-module-inlining/LTO
essential for best performance. See this (lenghty but interesting) LDC issue
[3]. There's a link to a Weka.io-specific patch where they had to disable the
culling due to linker errors.

For LDC, I'm planning to allow the user to prevent template culling via a
command-line switch, as the current implementation doesn't seem very mature.

[1]:
https://github.com/dlang/dmd/blob/v2.075.0/src/ddmd/dtemplate.d#L7197-L7205
[2]: https://github.com/ldc-developers/ldc/pull/2076#issuecomment-315175464
[3]: https://github.com/ldc-developers/ldc/issues/2168

--


More information about the Digitalmars-d-bugs mailing list