Comment 4 for bug 1332983

Revision history for this message
Christophe Rhodes (csr21-cantab) wrote : Re: [Bug 1332983] Re: validate-superclass on (find-class 't) yields NIL instead of T

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
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.

Christophe