Thread overview | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 Iain Buclaw <ibuclaw@gdcproject.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ibuclaw@gdcproject.org --- Comment #1 from Iain Buclaw <ibuclaw@gdcproject.org> --- This seems to be the breaking change: https://github.com/dlang/phobos/pull/5017 -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 ZombineDev <petar.p.kirov@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |petar.p.kirov@gmail.com --- Comment #2 from ZombineDev <petar.p.kirov@gmail.com> --- Definitely looks like a front-end bug to me. -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 Johannes Pfau <johannespfau@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |johannespfau@gmail.com -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 --- Comment #3 from Iain Buclaw <ibuclaw@gdcproject.org> --- (In reply to ZombineDev from comment #2) > Definitely looks like a front-end bug to me. The link error does not happen when compiling the test with -unittest. So the specific location to look would be file dtemplate.d, function appendToModuleMember. The change in phobos was enough to make the instantiation speculative, so its arguable who's at fault. The compiler may be working as intended, though admittedly the whole design around speculative templates is not really backed by any spec. -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 kinke@gmx.net changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kinke@gmx.net --- Comment #4 from kinke@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 -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 --- Comment #5 from ZombineDev <petar.p.kirov@gmail.com> --- > 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. I think that's what dmd's -allinst switch does currently. -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 --- Comment #6 from kinke@gmx.net --- (In reply to ZombineDev from comment #5) > > 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. > > I think that's what dmd's -allinst switch does currently. [LDC uses the same logic and command-line switch.] I find it quite hard to tell the exact difference when using `-allinst` (and whether that includes speculative ones), as it's an early return of that function and the remaining needsCodegen() logic isn't trivial; the interaction with the tnext chain doesn't make it any simpler unfortunately. -- |
August 03, 2017 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 --- Comment #7 from Johannes Pfau <johannespfau@gmail.com> --- For reference: the missing symbol also causes a backend ICE for GCC <= 4.9: https://bugzilla.gdcproject.org/show_bug.cgi?id=157 This is fortunately of lower priority as an (unrelated) GCC change works around this problem in all new GCC versions. Fortunately we're already at GCC-7 released / GCC-8 in development :-) -- |
June 11, 2018 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 Basile B. <b2.temp@gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |b2.temp@gmx.com --- Comment #8 from Basile B. <b2.temp@gmx.com> --- There's something similar here : https://issues.dlang.org/show_bug.cgi?id=18234 Excepted that it started failing from 2.075, not 2.074 -- |
June 11, 2018 [Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17712 --- Comment #9 from Basile B. <b2.temp@gmx.com> --- *** Issue 18234 has been marked as a duplicate of this issue. *** -- |
Copyright © 1999-2021 by the D Language Foundation