Alek Storm wrote:
I understand entirely how both features work. I should, as I
implemented large sections of the code dealing with vtable overriding.
Perhaps you should check the code, because they are *not* stored
separately from each other. In the current revision, :vtable and
:method used together stores the sub as a vtable entry and as a visible
method. Adding :anon detaches it from the namespace. For the new PDD15
implementation, once #42406 and #42407 are committed, I plan to rework
how they're stored internally, but that isn't relevant to our discussion
of the interface.
Yes, that's how they're implemented now. Currently, in order to use the
common feature of overriding the vtable entry without polluting the
namespace you have to specify ":vtable :method :anon". Which is huge
progress over what we had before (you used to override a vtable by
creating a .sub prefixed with "__").
I'm talking about how they will be implemented for PDD15. Methods and
vtables will be stored separately, because it will be quite common to
have vtable entries with no corresponding method, and methods with no
corresponding vtable entry. The interface is intended to reflect the
same fact.
Allison
- Re: [perl #42430] [PATCH] make :vtable imply :method Allison Randal
-