On Friday, 5 July 2019 at 23:05:32 UTC, Jonathan M Davis wrote:
Yes, I was wondering why the compiler doesn't statically
allocate it automatically as an optimization.
It would have to be set up to store the literal somewhere else.
I was thinking the read-only data segment.
Certainly, it can't just put it on the stack, because that
risks it going out of scope and causing memory problems. It
It can do that with small-ish sized literals if they don't escape
(-dip1000). I think Walter may have advocated something like
this. This one can be done even with literals of mutable elements.
no matter what optimizations the compiler does with array
literals, that shouldn't affect whether the function can be
@nogc. For it to affect that, it would have to be something
that was guaranteed by the language's semantics regardless of
whether any optimizations were being done.
Yes, just like string literals I think static allocation can be
part of the language for immutable data.