On Tue, Aug 10, 2004 at 10:45:43AM -0700, Brent 'Dax' Royal-Gordon wrote:
: I would assume (hope) that these tables would not be allowed to change
: once Parrot started using them.  It seems like an extremely dangerous
: thing to have two calls to read() be performed by different functions,
: after all.

Just as a datapoint, Perl 6's .wrap/.unwrap will have to work at run
time, because one person's compile time is another person's run time.
We deliberately fuzz them in Perl, because most compilation policy
is actually set by running bits of Perl code.

Don't know to what extent you can generalize that to embedding
interfaces though.  Just that you already have to provide for the fact
that the person who called the unwrapped function needs to return
from the unwrapped function eventually even if the function got
wrapped in the meantime.  Unwrapping a function is perhaps dicier,
but no dicier than deleting a subroutine, which we already allow in
Perl 5.  Smells like a GC problem on the return continuation, mostly.
(Of course, as soon as you mention continuations in the same breath
as embedding, you've got issues... :-)

Larry

Reply via email to