missing HexString documentation
Ralph Doncaster
nerdralph at github.com
Thu Feb 8 17:30:14 UTC 2018
On Thursday, 8 February 2018 at 17:06:55 UTC, H. S. Teoh wrote:
> On Thu, Feb 08, 2018 at 08:26:03AM -0500, Steven Schveighoffer
> via Digitalmars-d wrote: [...]
>> The extra data in the object file comes from the inclusion of
>> the hexStringImpl function, and from the template parameter
>> (the symbol
>> _D3std4conv__T9hexStringVAyaa8_6465616462656566ZQBiyAa is in
>> there as well, which will always be larger than the actual
>> string passed to hexString).
> [...]
>
> This is one area that really should be improved. Is there some
> easy way in the compiler to mark a template function as "only
> used in CTFE", and not emit it into the object file if there
> are no other runtime references to it? I'm thinking of some
> kind of boolean attribute that defaults to false, and gets set
> if the function is referenced by runtime code. During codegen,
> any function that doesn't have this attribute set will be
> skipped over.
>
> My speculation is that this would lead to a good amount of
> reduction in template bloat, given how pervasively CTFE is used
> in Phobos (and idiomatic D in general).
Or maybe you can get away with just using a good compiler/linker
that supports LTO. It's quite mature in GCC now, so it's
probably worth trying with GDC.
http://hubicka.blogspot.ca/2014/04/linktime-optimization-in-gcc-1-brief.html
More information about the Digitalmars-d
mailing list