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

comments on 3/88 CLOS spec

A couple of comments on the CLOS spec, dated March 1988.

1. In the discussion of Meta-Objects (Chapter 1, page 37), under the heading of
Standard Metaclasses, it seems to me that there should be a mention of the
metaclasses for the standard meta-objects other than standard-class.  Without
knowing what the metaclasses for these are, you can't define classes which are
subclasses of them, so you can't define your own specialized generic-function
classes, for example.

2. In the discussion of Integrating Types and Classes (Chapter 1, page 19), it
is stated that the class that corresponds to a predefined Common Lisp type
specifier can be implemented either as a standard-class, a structure-class, or
a built-in class, and that doing much of anything with the object system
involving built-in classes and their instances will signal an error.  This
doesn't leave any room for a particular implementation to define some of these
in some special fashion available to it which will allow the object system to
be used with them, perhaps using an implementation specific metaclass.  I think
the spec is overly restrictive, and doesn't really help with portability issues
anyway (I assume that is why the restrictions were put in) since you don't know
from one implementation to the next which types correspond to built-in classes
vs. one of the other two, so you don't know which types can be specialized,
slot-value'ed, and etc.