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

Chapter 1 and 2 Last Chance Review



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