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>