On Mon, Oct 23, 2000 at 11:03:12AM -0400, Chaim Frenkel wrote:
> >>>>> "AT" == Adam Turoff <[EMAIL PROTECTED]> writes:
> AT> It would also mean that if anything was overriden anywhere, no
> AT> module code could be read in as bytecode, since it may need to be 
> AT> rethreaded to incorporate overrideable subs/builtins.
> 
> I'm missing something here. 
> 
> Wouldn't just the appearance of *foo = \&other_foo, be enough to tell
> the compiler to treat all foo's (or perhaps if there were some dataflow
> analysis some region of code) to use indirection?

You're forgetting eval "*foo = \&other_foo" and the like.  :-)

And, if modules are threaded when they're bytecompiled, it's rather 
difficult to intuit some random invocant's use of *foo = \&other
(at runtime) to add the required indirection post hoc.

Perl's expected behavior almost requires unthreaded bytecode.  Threaded 
bytecode could work, if it's explicitly requested (thus making 
*main::localtime = *foo = \&bar; a fatal error, at the user's request.)

Z.

Reply via email to