On Fri, 30 Jul 2010 16:31:49 -0400, Jonathan M Davis
<jmdavisp...@gmail.com> wrote:
On Friday, July 30, 2010 13:10:46 Steven Schveighoffer wrote:
It's not. The only runtime functions available to the compiler look
like
this:
_d_newarrayT(TypeInfo ti, size_t length);
I guess that's one thing that comes of not really implementing it as a
primitive. If there are enough such functions that would be properly
optimizable
had they actually been implemented as primitives, I would think that
there would
be some merit in finding a way to get the compiler to understand that it
can do
such optimizations. But I really don't know how all that works in dmd,
so I have
no idea how feasible that is.
To be clear, the compiler could do the optimization if it had another
runtime function to call. But since there is *no* runtime function that
allocates a new array and initializes it with a custom initial element,
how do you make a primitive?
So if the function exists, the compiler can be fixed to make the sequence
of "create then assign" a primitive, but I think just a runtime function
is good enough, and will work without compiler changes.
-Steve