On 01/20/2011 09:14 PM, David Golden wrote: > On Thu, Jan 20, 2011 at 2:28 PM, chromatic<chromatic@wgz.org> wrote: >> * grabbing the optree *already generated* for the body of the sub >> * creating a new lexical $self binding in that optree >> * rummaging through every variable access in that entire optree to find $self, >> if it exists > > This is why I was pondering a "self" keyword. If it could access the > right reference at runtime you wouldn't need to worry about the > existing bindings. > > Imagine: > > * method { ... } somehow marks the subroutine body as a method > * dispatch to such a marked method doesn't put the invocant in @_ > but puts it "somewhere else" (big hand-waving here) > * keyword self retrieves invocant from wherever it got put "wherever" would likely still be the stack, except @_ is populated only with the elements after the invocant. The little understanding I have of these matters suggests that arguments will be passed via the stack no matter what and @_ is then "aliased" (SV* copy? Too lazy to check.) to the elements since the last pushmark. If there was a flag to start only after the first element and make the sp accessible via "self" by some mechanism, that might just do it. > I leave it to people who know the guts in detail to explain why that > is doomed to fail. :-) Yes, it is now up to them :) Cheers, SteffenThread Previous | Thread Next