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

Sections 2.3 and 2.5

Sections 2.3 and 2.5 are marked as done, but here are some comments
from one of our CLOS implementors, who has just done a very careful
reading of the 5.10 versions of 2.3, 2.4, and 2.5.  This message is
mainly to KC, but I thought all the qinquevirate should be copied.
RPG in particular might have comments.

I [still Moon] think these comments fall into two categories.  One is
editorial problems introduced by reorganizing the text that was in
88-002R and those are straightforward to handle.  The other is problems
with the Common Lisp language caused by the metaobjects portion of CLOS
not getting done on time.  Right now we have some small inconsistencies
in the language due to this.  Possible approaches would be to
exterminate anything that mentions metaobjects, or to incorporate some
selected portions of the beginning of chapter 3 into the standard, or to
flag some portions of the specification as being a framework for future
extensions that shouldn't be expected to make sense standing on its own
without those extensions.  I currently favor the third course, partly
because I think it is the easiest.  The comments below may not completely
flag all the places where this should be done; if the drafting committee
decides this is the right course of action, I (or Dick?) can go through
and flag all such places.

p.2-3, para.3: Without meta objects one can't create anonymous classes
and improper class names, so much of this paragraph is currently
irrelevant.  Keep the first two sentences and the last sentence, delete
the rest.  [I think we should keep it anyway, but flag it as a framework
for future extensions --Moon]

p.2-4, para.3,4: Again the stuff about metaclasses is not relevant to
the current metaobject-free standard.

p.2-5, bullet 3: changing "is shared by instances" to
"is shared by all instances" would be clearer.

p.2-5: Delete the 3-line inheritance section.  This section has been
reorganized into nonexistence.

p.2-5: Inheritance of Class Options should come after the class
precedence list section.

p.2-9, Redefining Classes, Third paragraph:  The CLOS spec says when
slots aren't updated, X3J13 says when they are updated.  X3J13 doesn't
mention anything about changes to ordering.  [How come this spec.
doesn't say exactly the same thing as 88-002R here? --Moon]

In several of these paragraphs, references are made to the "old class"
and the "new class".  It would be clearer to say "the old class
definition" and "the new class definition" since it's still the same
class object after the redefinition.

p.2-24: If there's no MOP, then "These procedures can be customized ..."
should go away, as well as the last sentence of the next paragraph.

p.2-26: It would be nice if it said "Every generic function is an
instance of the class standard-generic-function or one of its
subclasses".  [But I don't think that's true, at least after
metaobjects are put in. --Moon]