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

Reply via email to