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

documentation slot option



One of the comments we received proposed a :documentation slot option.
This option would provide a documentation string for the automatically
generated :reader or :writer methods for the slot.

So:

(defclass foo ()
     ((x :reader foo-x
         :documentation "the x slot stores the x position")))

would be equivalent to

(defclass foo ()
     ((x)))

(defmethod foo-x ((foo foo))
  "the x slot stores the x position"
  (slot-value foo 'x))


This is the actual comment we received:

    Date: Fri, 15 Apr 88 13:43 PDT
    From: David N Gray <Gray@DSG.csc.ti.com>
    
    Functionality comments:
    -----------------------
    
    DEFCLASS needs to permit a slot option of the form:
      (:DOCUMENTATION doc-string)
    Any implementation would be permitted to ignore this, but the
    standard should recommend that the specified doc-string should become the
    value to be returned by the DOCUMENTATION function for any reader methods
    created for the slot by the :READER or :ACCESSOR options.
    
    I recognize that an implementation is already permitted to support this as
    an extension, but since the use of documentation should be encouraged
    rather than made more difficult, I think it is unacceptable to require
    users to write code that looks like this:
    
       ...
       (:READER FOO)
       #+(OR TI ...) ; implementations that I happen to know accept this
       (:DOCUMENTATION "...")
       ...
    
    when it is trivial for an implementation to just ignore the option if it
    doesn't wish to support it.


I am mildly opposed to this because I think documentation strings are a
joke.  I am also mildy opposed because it isn't clear that the same
documentation string could be useful for all the automatically generated
methods for a slot.

It is well defined though, so we could go ahead and do it.

What do others think?
-------