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.

Reply via email to