From: Bob Rogers <[EMAIL PROTECTED]>
   Date: Sun, 13 Jul 2008 23:31:49 -0400

      From: Bob Rogers <[EMAIL PROTECTED]>
      Date: Wed, 9 Jul 2008 01:27:29 -0400

      Oops; r28763 seems to be the source of one of my problems, a "lexical
      not found" error.  With this change, Parrot gets confused when multiple
      calls to the :outer sub have been made, such as when it is recursive.

   The attached patch is a band-aid that fixes this problem without
   reverting r28763 . . .

      IMHO, this fix should go into the imminent release because it
   restores functionality that had been lost since the previous release.

Done in r29463.  (Of course, this does not resolve the larger issue of
replacing "autoclose" altogether.)

                                        -- Bob

------------------------------------------------------------------------
2008-07-14 22:54:48:
  revision: 29463;  author: rgrjr
  [CORE] Keep Closure:invoke from breaking what newclosure hath wrought.
  This is a band-aid for RT#56398 that will be removed along with "autoclose."
  * include/parrot/sub.h:
     + Add SUB_FLAG_NEWCLOSURE to sub_flags_enum.
  * src/sub.c:
     + (parrot_new_closure):  Tag the closures we create.
  * src/pmc/closure.pmc:
     + (invoke):  Only overwrite sub->outer_ctx if no "newclosure" tag.
  * MANIFEST, t/op/lexicals-2.t (deleted), t/op/lexicals.t:
     + Merge lexicals-2.t into lexicals.t [per chromatic], remove "todo"
       from "RT#56398: Bob's recursion bug" case.
  => /trunk/MANIFEST:  action: M
  => /trunk/include/parrot/sub.h:  action: M
  => /trunk/src/pmc/closure.pmc:  action: M
  => /trunk/src/sub.c:  action: M
  => /trunk/t/op/lexicals-2.t:  action: D
  => /trunk/t/op/lexicals.t:  action: M

Reply via email to