> We then return to AMOP, having justified having T as a BUILT-IN-CLASS,
> and realize that VALIDATE-SUPERCLASS is applied over the full CPL,
> including T itself, hence the requirement that it return T in such
> situations.
Actually I think that AMOP intends that VALIDATE-SUPERCLASS is called on
just the direct superclasses (see the :direct-superclasses entry under
``Initialization of Class Metaobjects''), and that the full CPL would
end up being handled transitively. On the other hand, allowing
subclassing from T would allow metaprogrammers to construct completely
new object protocols without using any of "vanilla" CLOS.
I'm leaning towards making T a SB-PCL::SYSTEM-CLASS, like SEQUENCE and
STREAM; I think it causes the least conceptual disruption.
Alastair Bridgewater <email address hidden> writes:
> We then return to AMOP, having justified having T as a BUILT-IN-CLASS,
> and realize that VALIDATE-SUPERCLASS is applied over the full CPL,
> including T itself, hence the requirement that it return T in such
> situations.
Actually I think that AMOP intends that VALIDATE-SUPERCLASS is called on superclasses entry under
just the direct superclasses (see the :direct-
``Initialization of Class Metaobjects''), and that the full CPL would
end up being handled transitively. On the other hand, allowing
subclassing from T would allow metaprogrammers to construct completely
new object protocols without using any of "vanilla" CLOS.
I'm leaning towards making T a SB-PCL: :SYSTEM- CLASS, like SEQUENCE and
STREAM; I think it causes the least conceptual disruption.
Christophe