Jump to page: 1 2 3
Thread overview
[Issue 17712] [REG 2.074] [LINK] Undefined reference to std.conv.toChars!(10, char, 1, uint).toChars(uint)
Aug 03, 2017
Iain Buclaw
Aug 03, 2017
ZombineDev
Aug 03, 2017
Johannes Pfau
Aug 03, 2017
Iain Buclaw
Aug 03, 2017
kinke@gmx.net
Aug 03, 2017
ZombineDev
Aug 03, 2017
kinke@gmx.net
Aug 03, 2017
Johannes Pfau
Jun 11, 2018
Basile B.
Jun 11, 2018
Basile B.
Jun 12, 2018
Basile B.
Jun 12, 2018
Basile B.
Jun 13, 2018
Basile B.
Jun 16, 2018
Mike Franklin
Jul 02, 2018
Iain Buclaw
Sep 07, 2018
kinke@gmx.net
Sep 08, 2018
Basile B.
Mar 21, 2020
Basile-z
Jun 19, 2020
Nick Treleaven
Jun 19, 2020
Dlang Bot
Apr 10, 2023
RazvanN
August 03, 2017
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
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
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
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
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
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
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
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
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
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. ***

--
« First   ‹ Prev
1 2 3