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

Aaron Larson's comments



Two points from Larson's comments where I felt compelled to make a remark,
plus another remark:

    Date: Wed, 4 Oct 89 23:48:05 -0700
    From: chapman@aitg.enet.dec.com (05-Oct-1989 0247)

    pg 2-11, under property list:

      also, in last (single sentence) paragraph.  what does it mean
      "initially"?  Does this imply that all CL defined symbols must have null
      plists?  Or is this just a property of MAKE-SYMBOL?

This sounds like a genuine hole in the specification that needs to go to
the committee.  Of course I think it's just a property of MAKE-SYMBOL,
but some others might think the reverse.  PACKAGE-CLUTTER:REDUCE seems
to be on my side.

    pg 2-20  In section "structure-object"

       add "A structure-object is an instance whoose class is a subclass
       of structure-class."

Unfortunately "subclass" is not defined reflexively, so this is
inaccurate.  The class might be structure-class itself.  Also the phrase
"instance of" is missing, either accidentally or because Aaron
misunderstood the class structure here.  Thus I would clean up the
wording to:  "A structure-object is an instance whose class is a member
of structure-class" which is an abbreviation of "A structure-object is
an instance whose class is an instance of structure-class or of a
subclass of structure-class."

Editorial comment raised by several of the sections Larson commented on:
this specification seems to use the words "element" and "component"
interchangeably, at least when referring to arrays.  I can't stand
reading specification documents that use multiple words for the same
concept, because I never know whether they are really synonyms or there
is some subtle shade of difference that I have not understood.  I would
change the terminology to be "element" uniformly for all sequence (array
or list) elements.  The only place I can think of right now where
"component" is correctly used is in pathnames and structures (see CLtL).
These "components" are "really" slots, but we mustn't use the word
"slot" because that would imply that SLOT-VALUE could be used to access
them, and Common Lisp defines that it is implementation-defined whether
SLOT-VALUE works on structures and pathnames.  We can't call them
"elements" because that would imply that ELT could be used to access
them.  Here the terms "element", "slot", and "component" really should
all be used for concepts that are similar but do have subtle shades of
difference.  Of these three words, only "slot" is in the glossary, and
its definition there is wrong.