On 4/18/07, Allison Randal <[EMAIL PROTECTED]> wrote:
Alek Storm wrote:
> .sub get_string :vtable :method :anon # now we're in trouble

Just like ":method :anon", but also stores it as a vtable entry.

But herein lies the problem.  Saying ":vtable :method :anon" is just
like ":method :anon" doesn't make sense, because with this solution,
:method means something *different* when used with :vtable.  ":vtable"
adds a hidden vtable entry, ":vtable :method" adds a visible vtable
entry, ":method :anon" adds a hidden method, so what does ":vtable
:method :anon" do?  When used with :vtable, :method and :anon have
exactly opposite meanings, so who wins?  I don't know, and it doesn't
matter who does win, because it's not obvious to the user.  That is
why we can't use two opposite systems.

This works too, but doesn't optimize for the most common case.

That's a good point.  However, requiring two flags instead of one for
the most common case is not worth the costs I've outlined above and in
my previous posts.

I ran a test through all code in the parrot repository, and was about
to publish my results, before I realized that vtable overriding with
:anon wasn't working.  I'll definitely fix this.

--
Alek Storm

Reply via email to