]> code.delx.au - gnu-emacs/blobdiff - doc/misc/eieio.texi
Backport from trunk documentation of shr-color-visible-* variables.
[gnu-emacs] / doc / misc / eieio.texi
index 370d18cc567828f8ab19de57757b0cfcf97a8e0d..c78229b8ab7218223aa7b27fff1c59a028b1d3d9 100644 (file)
@@ -18,7 +18,7 @@ Copyright @copyright{} 2007--2014 Free Software Foundation, Inc.
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
 and with the Back-Cover Texts as in (a) below.  A copy of the license
 is included in the section entitled ``GNU Free Documentation License.''
 
@@ -185,8 +185,8 @@ recommended to learn those from a textbook or tutorial first,
 especially if you only know OOP from languages like C++ or Java.  If
 on the other hand you are already familiar with CLOS, you should be
 aware that @eieio{} does not implement the full CLOS specification and
-also differs in some other aspects (@xref{Introduction}, and @ref{CLOS
-compatibility}).
+also differs in some other aspects which are mentioned below (also
+@pxref{CLOS compatibility}).
 
 @eieio{} supports the following features:
 
@@ -306,7 +306,7 @@ or is of a subclass of @var{CLASS-NAME}.
 @end defun
 
 @defvar eieio-error-unsupported-class-tags
-If non-nil, @code{defclass} signals an error if a tag in a slot
+If non-@code{nil}, @code{defclass} signals an error if a tag in a slot
 specifier is unsupported.
 
 This option is here to support programs written with older versions of
@@ -471,7 +471,7 @@ Here are some examples:
  @item my-class-name
  An object of your class type.
  @item (or null symbol)
- A symbol, or nil.
+ A symbol, or @code{nil}.
  @end table
 
 @item :allocation
@@ -573,7 +573,7 @@ prefixed by the @code{:documentation} tag, and appears after the list
 of slots, and before the options.
 
 @item :allow-nil-initform
-If this option is non-nil, and the @code{:initform} is @code{nil}, but
+If this option is non-@code{nil}, and the @code{:initform} is @code{nil}, but
 the @code{:type} is specifies something such as @code{string} then allow
 this to pass.  The default is to have this option be off.  This is
 implemented as an alternative to unbound slots.
@@ -610,7 +610,7 @@ This is the default.
 @item :depth-first
 Search for methods in the class hierarchy in a depth first order.
 @item :c3
-Searches for methods in in a linearized way that most closely matches
+Searches for methods in a linearized way that most closely matches
 what CLOS does when a monotonic class structure is defined.
 @end table
 
@@ -644,7 +644,7 @@ It is now possible to create objects of that class type.
 
 Calling @code{defclass} has defined two new functions.  One is the
 constructor @var{record}, and the other is the predicate,
-@var{record-p}.
+@var{record}-p.
 
 @defun record object-name &rest slots
 
@@ -755,8 +755,8 @@ Unlike @code{oref}, the symbol for @var{slot} must be quoted.
 
 @defun set-slot-value object slot value
 @anchor{set-slot-value}
-This is not a CLOS function, but is meant to mirror @code{slot-value} if
-you don't want to use the cl package's @code{setf} function.  This
+This is not a CLOS function, but is the setter for @code{slot-value}
+used by the @code{setf} macro.  This
 function sets the value of @var{slot} from @var{object}.  Unlike
 @code{oset}, the symbol for @var{slot} must be quoted.
 @end defun
@@ -790,7 +790,7 @@ This establishes a lexical environment for referring to the slots in
 the instance named by the given slot-names as though they were
 variables.  Within such a context the value of the slot can be
 specified by using its slot name, as if it were a lexically bound
-variable.  Both setf and setq can be used to set the value of the
+variable.  Both @code{setf} and @code{setq} can be used to set the value of the
 slot.
 
 @var{spec-list} is of a form similar to @dfn{let}.  For example:
@@ -1022,8 +1022,8 @@ This is the default.
 @item :depth-first
 Search for methods in the class hierarchy in a depth first order.
 @item :c3
-Searches for methods in in a linearized way that most closely matches
-what CLOS does when CLOS when a monotonic class structure is defined.
+Searches for methods in a linearized way that most closely matches
+what CLOS does when a monotonic class structure is defined.
 
 This is derived from the Dylan language documents by
 Kim Barrett et al.: A Monotonic Superclass Linearization for Dylan
@@ -1264,7 +1264,7 @@ Return the list of public slots for @var{obj}.
 @defun class-slot-initarg class slot
 For the given @var{class} return the :initarg associated with
 @var{slot}.  Not all slots have initargs, so the return value can be
-nil.
+@code{nil}.
 @end defun
 
 @node Base Classes
@@ -1544,19 +1544,11 @@ comes out upside-down.
 @node Class Values
 @chapter Class Values
 
-Details about any class or object can be retrieved using the function
-@code{eieio-describe-class}.  Interactively, type in the name of a
-class.  In a program, pass it a string with the name of a class, a
-class symbol, or an object.  The resulting buffer will display all
-slot names.  Additionally, all methods defined to have functionality
-on this class is displayed.
-
-You can also use the normal @code{describe-function} to retrieve
-information about a class.  If you call it on a constructor function,
-it will also display the class information.  If you call it on a
-generic function, all implementations of that generic function will be
-listet, together with links through which you can directly jump to the
-source.
+You can use the normal @code{describe-function} command to retrieve
+information about a class.  Running it on constructors will show a
+full description of the generated class.  If you call it on a generic
+function, all implementations of that generic function will be listed,
+together with links through which you can directly jump to the source.
 
 @node Default Superclass
 @chapter Default Superclass
@@ -1834,7 +1826,7 @@ It therefore has the same issues as that package.  Extensions include
 the ability to provide object names.
 @end table
 
-Defclass also supports class options, but does not currently use values
+defclass also supports class options, but does not currently use values
 of @code{:metaclass}, and @code{:default-initargs}.
 
 @item make-instance
@@ -1858,15 +1850,10 @@ for the given object.  This is different than that found in CLOS because
 in @eieio{} this function accepts replacement arguments.  This permits
 subclasses to modify arguments as they are passed up the tree.  If no
 arguments are given, the expected CLOS behavior is used.
-@item setf
-If the common-lisp subsystem is loaded, the setf parameters are also
-loaded so the form @code{(setf (slot-value object slot) t)} should
-work.
 @end table
 
-CLOS supports the @code{describe} command, but @eieio{} only provides
-@code{eieio-describe-class}, and @code{eieio-describe-generic}.  Those
-are automatically called by @code{describe-function} when called on a
+CLOS supports the @code{describe} command, but @eieio{} provides
+support for using the standard @code{describe-function} command on a
 constructor or generic function.
 
 When creating a new class (@pxref{Building Classes}) there are several