Try again to improve method caching
authorIlya Zakharevich <ilya@math.ohio-state.edu>
Tue, 24 Dec 1996 01:13:56 +0000 (20:13 -0500)
committerChip Salzenberg <chip@atlantic.net>
Tue, 24 Dec 1996 23:25:00 +0000 (11:25 +1200)
commit81c78688fe5c3927ad37ba29de14c86e38120317
treeec6ee803671ff2b636b7075b036aec5c4d247fa4
parentb0c42ed9ba0f4415d135379bc4867084c8c23f6a
Try again to improve method caching

Subject: Re: Autoloading broken?!

Chip Salzenberg writes:
>
> According to Ilya Zakharevich:
> >
>
> Well, I can only guess what your message was going to say...  But if
> you build stock _14, you'll find that MakeMaker doesn't work, because
> SelfLoader doesn't work.
>
> I think it has something to do with your patch finding completely
> empty functions (no XSUB and no code) and ignoring -- or even removing
> -- them, under the assumption they're bad cache entries.  But that
> approach can make declarations like "sub Foo::bar;" evaporate into
> nothingness, when such declarations are sometimes used to force a call
> to Foo::AUTOLOAD().

In a correct package - FOO. I think it would call some AUTOLOAD
anyway, this is why this case slipped through my testing.

> That's my understanding, anyway.

Thanks, I found this too (and fixed it). I think it should work better
now. So far only other places which I found broken by my previous
patch are "overloading + AUTOLOADing", and "->can + AUTOLOAD".

These 3 cases work now (after correcting a bug in overload.t's AUTOLOAD).

p5p-msgid: <199612240113.UAA09487@monk.mps.ohio-state.edu>
gv.c
sv.c