[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Date: Fri, 2 Jun 89 09:13:50 PDT
    From: Richard P. Gabriel <rpg@lucid.com>
    > {\function defclass\/} in the compile time environment will
    >   be defined in the run time environment in such a way as to have
    >   the same {\word superclasses\/} and compatible metaclass.  
    [discussion about whether the penultimate word should be "same" omitted]
    [discussion about "compatible metaclass" omitted]
    Maybe Moon has an opinion?

Only that the fewer mentions of metaclasses in the ANSI CL standard,
the better.  It's okay to mention that metaclasses exist, i.e.
(class-of (class-of x)) doesn't signal an error.  However, anything
that starts tying down the behavior of metaclasses risks being
inconsistent with whatever is eventually figured out about metaclasses.
In other words metaclasses are not ready for standardization.

If the >-quoted text above is about how a program can be structured so
that it will be guaranteed to work, rather than about what a compiler
must assume, i.e. a lower bound on working programs rather than an upper
bound, then I see no reason not to require the metaclass to be the same
for now.  In some implementations and in a future language standard this
might be relaxed to also support programs where the superclasses and the
metaclass can vary.  In fact I know of no CLOS implementation today that
does not support that, as a byproduct of the support for class
redefinition and for incremental addition of methods.

I have no opinion that I would care to make public about the rest of the
discussion under the subject "4.2".