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