On 14 Aug 2000, Chaim Frenkel wrote:

> >>>>> "LW" == Larry Wall <[EMAIL PROTECTED]> writes:
> 
> LW> No, they're only stored once per statement, as far as I recall.  This
> LW> is a great way to handle all sorts of lexically scoped things, provided
> LW> they don't require finer specificity than a statement.  Each new
> LW> statement just rams a new cop pointer into curcop and you're done with
> LW> it.  Think of it as a funny kind of vtbl pointer.  You potentially
> LW> change a whole bunch of semantics by one pointer assignment.  Any
> LW> opcode within the statement can look up anything it likes in the
> LW> current lexical context merely by following the curcop pointer back.
> 
> What about those lexical pragmas that are manipulated at runtime.
> 
> I don't think you want to have the values stored in the optree (or its
> replacement) Otherwise we get into major issues in handling the optree
> between threads (and reducing sharing.)

Those don't have to be in the optree. Their state-change, sure, but not
the actual real state. Presumably the lexical pragmas will set some
interpreter flags or flag bits, probably with some sort of undo stack like
we've got now in p5. 

                                        Dan

Reply via email to