From: Allison Randal <[EMAIL PROTECTED]>
   Date: Fri, 18 Jul 2008 09:26:05 -0700

   Bob Rogers wrote:
   > The same Kea-CL tests are failing in pdd25cx revision 29565 . . .

   In the new implementation 'pushaction' subs are no longer automatically 
   run when executing an exception handler or continuation. The *only* way 
   to run a pushaction sub is with 'popmark'. (Also, dynamic_env is no 
   longer unrolled with the execution of continuations or exception handlers.)

That could be a problem.  Given sub A calls B calls C, where B does
pushaction, and C throws an exception (or calls a continuation) that is
caught by A, how does A know that it needs to push/pop a mark?  I could
do pushmark everywhere I take a continuation, and popmark at every
continuation destination . . . but what's the advantage to requiring
this boilerplate PIR for every continuation?

   And what happens when some sub A doesn't obey this protocol?  In that
case, sub B would not be able to count on having its pushaction called
when exited.

   I updated all the code I could find using 'pushaction' in the 
   repository. It looks like Kea-CL isn't in the Parrot repository. Do you 
   have it in a public repository I can submit a patch to?

It's a Subversion repository at
https://rgrjr.dyndns.org/svn/kea-cl/trunk/ these days (with apologies
for the lame cert).  The relevant PIR-generating code is written in
Lisp, however, so I don't expect a patch.  (At least I don't consider it
reasonable to expect one, but if you happen to be keen on it, go for
it!)

   I won't hold up the merge for external languages, since we still have 
   nearly a full month before the next Parrot release.

   Allison

That's fine; I may be the only one on the planet who needs pushaction
these days.  ;-}

                                        -- Bob

Reply via email to