Is it possible and a good idea to change the D ABI to make code like this avoid an array copy in 100% of the cases (without inlining)?
I meant, letting the compiler rewrite that code like this:
void foo(ref ubyte[1000] __data) nothrow @safe { __data[] = 0; // some code here. } void main() nothrow { ubyte[1000] __data = void; foo(__data); immutable data = cast(immutable ubyte[1000])__data; } Bye, bearophile