On Fri, Aug 11, 2000 at 10:54:43AM -0400, Dan Sugalski wrote:
> At 03:28 PM 8/11/00 +0100, Graham Barr wrote:
> >On Fri, Aug 11, 2000 at 10:20:55AM -0400, Dan Sugalski wrote:
> > > I think we're going to have to have a doubly-linked list going for 
> > @ISA, so
> > > when a parent package changes the child packages get changed too. It'll
> > > make updates to @ISA more expensive, but if you do that then you ought to
> > > be prepared to take a hit.
> >
> >You mean each package has a "I am inherited by" list which you could
> >follow to change the cache entries. Hm, interesting...
> 
> Yup. Makes life easier in some ways, since you can propagate the changes. 
> It also moves the expense of the update to the place the change is made, 
> rather than forcing all sorts of ambiguity resolution code on the bits that 
> do the lookups.
> 
> We'll know the inheritance hierarchy, and we'll know the contents of the 
> package stash, so we can make sure markers ripple upwards. When an 
> inherited package is changed we can propagate the changes.
> 
> That way, method lookup resolves to:
>    use package method;
>    if package method doesn't exist, start the AUTOLOAD calling sequence.

Are you also suggesting that when @ISA is assigned that you look in the
packages we inherit from an create the sub-class cache then for all
sub ?

While it would make method lookup faster, it's only benefit over the current
method is faster lookup of the first call to a method but at the cost
of extra processing at startup time to cache methods that may never be used.

Graham.

Reply via email to