From: "Patrick R. Michaud" <[EMAIL PROTECTED]>
   Date: Fri, 11 Jul 2008 22:59:05 -0500

   On Fri, Jul 11, 2008 at 08:00:40PM -0700, Bob Rogers via RT wrote:
   >    Of course, if cloning works the same as newclosure than we don't
   >    need an explicit newclosure for the examples given, because
   >    assignment already makes a clone.  
   > 
   > Assignment seems to do assign_pmc, which for a closure invokes the Sub
   > method (there is no Closure method).  Needless to say, Sub:assign_pmc
   > does nothing special to capture the current context; if that is NULL,
   > then "autoclose" takes over when the thing is called.  

   You're _completely_ missing my point.  If we follow my proposal
   to modify Parrot or code generation such that a capture operation
   is performed for closures at the beginning of every outer sub 
   invocation, then by the time we get to an assign operation a
   closure would _already_ have its current context captured, so
   only a simple clone is needed (which is what assign normally 
   does -- it makes a copy of whatever is being assigned).

That's true.  And if that was your point, I did indeed miss it.  But, as
I quoted you:

        . . . if cloning works the same as newclosure than we don't need
        an explicit newclosure . . .

Which seems to say something entirely different.  So I thought I should
point out that cloning does *not* work the same as newclosure.  (And I
still don't understand the *point* of cloning a closure.)

   And again, under my proposal I've been saying (apparently 
   ineffectively) that "autoclose" would be gone entirely, and 
   invoking a Closure that hasn't already had its context captured
   (i.e, outer_ctx is NULL) will throw an exception.  In other
   words, there's no chance that "autoclose takes over when the
   thing is called".

   Pm

The paragraph before the one I quoted started with "At present ...", so
I assumed you were still talking about the current implementation.

   Maybe we should both get some sleep.

                                        -- Bob

Reply via email to