On Thursday, 7 December 2017 at 01:21:11 UTC, Nicholas Wilson
wrote:
I'd like to add an attribute to indicate that the annotated
function is only available at compile time so that in cases
where the operation is invalid at runtime (strings and
concatenation on a GPU for instance) but the result is only
used at compile time (for a mixin) the compiler is free to not
codegen that function.
I can add this to LDC pretty easily, but does anyone else have
a use for this (e.g. shrinking binary sizes for mixin heavy
codebases) and would benefit having this as a standard thing?
Shouldn't the linker do this already?
Once the compiler has CTFE'd the function any call in the code
should be replaced with the function evaluation. The linker
should then drop the code out of the binary because it really is
dead code.
bye,
lobo