[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Chapter 1 and 2 Last Chance Review
- To: common-lisp-object-system%sail.stanford.edu@multimax
- Subject: Chapter 1 and 2 Last Chance Review
- From: Dan L. Pierson <pierson%mist@multimax.ARPA>
- Date: Wed, 13 Apr 88 16:19:19 EDT
Comments on Chapters 1 and 2 of the CLOS Spec (Edition of 2/8/88)
Page 1-9, Add to the list of things provided by slot options and
class options:
o Specifying the legal data types of the slot contents.
(Of course, this can be found elsewhere in the document,
but my impression on reading this introductory list was
that for some reason you couldn't do this.)
Page 1-11, Paragraphs 3 and 7
Why are reader, writer, and with-slots *required* to be
implemented using SLOT-VALUE? I don't doubt that you have
a good reason, but it's not obvious to a relative novice.
Paragraphs 7 and 8
This implies that WITH-SLOTS can access slots without
accessors but WITH-ACCESSORS can't. This is reasonable
but should probably be made explicit. Some people may
feel that this maked WITH-SLOTS unsafe.
Page 1-13, Paragraph 4
This paragraph appears self-contradictory. I think that
it means that portable code cannot depend on slot types
since:
(1) Some implementations may not provide type errors
(therefore reducing the value of slot types for
debugging), and
(2) Calls from outside the package may store incorrect
types (so even if your portable code is self-consistent
you could wind up with undetected type errors).
The wording of this paragraph leads me to suspect that
this issue has already been argued to death on the CLOS list.
Page 1-26, Paragraph 2, Sentence 2
The following are my exact notes as I read this section:
What about methods in both old and new? Are they "added"?
If so, in what way is this definition different from
saying that the "contents" of the old generic function are
trashed and replaced by the new generic function? AHA!
Some methods could have been defined by DEFMETHOD, but the
wording is still confusing.
Paragraph 6, Sentence 3
The wording is a bit confusing.
Page 1-28, Paragraph 2, Sentence 4 and example line
Has this been submitted to cleanup? I don't recognize it.
Page 1.29, Paragraph 1
The wording implies that:
(EQUAL '(A (B C)) '((A B) C))
is T, which is certainly false. Note that cleanup is
entertaining proposal to flush EQUAL and EQUALP.
Page 1-32, At this point I made a note:
In general, this draft details the complex, general case
before the simpler, common special case. This *may* be
appropriate for a standards document but it certainly
isn't for a manual.
Page 2-27, Next to last paragraph
Can extension slot options appear more than once in a
single slot description (it appears reasonable, but it's
not clear from this whether it's legal).
Last paragraph
The slot can also be accessed by WITH-SLOTS, since
WITH-SLOTS uses SLOT-VALUE.
Page 2-35, Paragraphs 7 and 8
These paragraphs don't specify how to distinguish a
predicate from the first keyword option since they are
both distinguished by being symbols other than * (or NIL).