From: chromatic <[EMAIL PROTECTED]>
   Date: Wed, 25 Jun 2008 16:43:14 -0700

   On Wednesday 25 June 2008 16:33:31 Bob Rogers wrote:

   > I believe this is the same issue I brought up Sunday in "[pdd25cx]
   > Calling a continuation doesn't restore error handlers".  If so, the real
   > issue is that continuations no longer restore handler scopes, and this
   > is just a band-aid.

   I agree.  I talked to Allison about this, and she said that we need to move 
   dynamic exception handlers into contexts instead of a global variable, which 
   should restore dynamic handler scoping.

   -- c

I'm afraid I don't understand the point of this.  In trunk, handlers are
kept on interp->dynamic_env, not a global, and dynamic_env is captured
by continuations, which is how they are restored.  Moving them back into
contexts would not eliminate the need for continuations to capture this
state, because the sub can push or pop handlers after the continuation
is taken; the context state is too coarse-grained.

   In other words, moving dynamic_env into Parrot_Context seems at best
to increase the number of structure members that have to be updated when
calling a sub.  At worst, it could revert the effect of r14876,
reintroducing old bugs with calling continuations.

   Perhaps Allison would like to clarify?  Or maybe I should propose a
change?

                                        -- Bob

Reply via email to