Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: P5 is the new P2

9 views
Skip to first unread message

Sam Ruby

unread,
Dec 21, 2004, 5:22:48 AM12/21/04
to perl6-i...@perl.org
Matt Fowles wrote:
>
> P5 is the new P2
> Sam and Leo came to the conclusion that the current object should be
> passed in P5 as well as P2. Currently they are waiting for Dan... Nudge,
> Nudge...
>
> <http://xrl.us/ef8r>

I've implemented this, but I am near the point of recanting. Examples
of problematic code (both from t/pie/b3.t):

return TT.__new__(cls, value)
return T.__cmp__(a, b)

Where the latter ends up invoking the cmp method with three arguments
instead of the customary two, and confusion reigns.

The way this is resolved in Python is with a distinction between "bound"
and "unbound" methods. Roughly, in Parrot terms, this is a distinction
between methods where the object can be found in P2 and P5 respectively.

I'm resisting implementing this for now, but will likely have to cave
ultimately. To implement this would require a call to pmc_new on each
method call on an instance, as well as reinserting the argument as the
first parameter (shifting each of the curent parameters in the process).
Blech.

- Sam Ruby

0 new messages