On Tue, 2004-03-16 at 11:57, Dan Sugalski wrote:
(I forgot to reply to this last week)
> At 11:51 AM -0800 3/16/04, chromatic wrote:
> >Just to be sure, if Class Y inherits from Class X, is X on Y's does
> >list?
>
> If class X does X, then yes. (I *really* should've picked better
> names) Classes don't by default do themselves, so if you had a
> top-level class Foo that didn't mark itself as doing anything, an
> object of class Foo would return true for an isa('Foo') check but
> false for a does('Foo') check.
>
> Classes and roles don't automatically share the same namespace.
This means that the Perl 6 compiler will have to set does() on all
classes or class-manipulations. As you suggest, we're not mixing up
implementation (how does he do it?) with promise (he says he'll do it)
-- signature type checking has to respect roles, not inheritance.
(Followups on why this must be -> p6l.)
If Parrot doesn't do this by default, that's fine in the sense that
it'll at least make the mechanism available, but Perl 6 has to do it.
-- c