Robert Klemme wrote:
> That was what I was guessing.  However, I haven't enough insight to
> verify.  There is at least one point that causes me doubt: the array can
> be handled and stored like any other array, so it should be on the heap
> (or it is implicitly moved there).

Yes, the implementation of this is in eval.c's rb_call0, after that the
arguments are passed along via the argc/argv function arguments. Ruby also tries
to throw a SystemStackError in rb_call0 like Mauricio has shown, but this isn't
guaranteed to work in all cases.

-- 
Florian Frank