summaryrefslogtreecommitdiff
path: root/doc/misc/cl.texi
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2012-11-07 17:23:34 -0500
committerGlenn Morris <rgm@gnu.org>2012-11-07 17:23:34 -0500
commitbdd8064f8eef72a3a348bd733c1142003db6e8e4 (patch)
tree7b40f6c3d256f87f9ead449c420556696ee6138d /doc/misc/cl.texi
parent4eeba558163dd2812fa984b540a51721b50a211b (diff)
downloademacs-bdd8064f8eef72a3a348bd733c1142003db6e8e4.tar.gz
* cl.texi (Obsolete Setf Customization): Updates for define-setf-method.
* etc/NEWS: Related markup.
Diffstat (limited to 'doc/misc/cl.texi')
-rw-r--r--doc/misc/cl.texi23
1 files changed, 9 insertions, 14 deletions
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index d3c9ad6aedf..a50be1027f3 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -2865,7 +2865,6 @@ temporary variables.
This function creates a new, uninterned symbol (using @code{make-symbol})
with a unique name. (The name of an uninterned symbol is relevant
only if the symbol is printed.) By default, the name is generated
-@c FIXME no longer true?
from an increasing sequence of numbers, @samp{G1000}, @samp{G1001},
@samp{G1002}, etc. If the optional argument @var{x} is a string, that
string is used as a prefix instead of @samp{G}. Uninterned symbols
@@ -4479,14 +4478,6 @@ The @code{equal} predicate does not distinguish
between IEEE floating-point plus and minus zero. The @code{cl-equalp}
predicate has several differences with Common Lisp; @pxref{Predicates}.
-@c FIXME consider moving to lispref
-@ignore
-The @code{setf} mechanism is entirely compatible, except that
-setf-methods return a list of five values rather than five
-values directly. Also, the new ``@code{setf} function'' concept
-(typified by @code{(defun (setf foo) @dots{})}) is not implemented.
-@end ignore
-
The @code{cl-do-all-symbols} form is the same as @code{cl-do-symbols}
with no @var{obarray} argument. In Common Lisp, this form would
iterate over all symbols in all packages. Since Emacs obarrays
@@ -5059,11 +5050,12 @@ You could write this using @code{gv-define-setter} as:
@end defmac
@defmac define-setf-method access-fn arglist forms@dots{}
-This is the most general way to create new place forms. When
-a @code{setf} to @var{access-fn} with arguments described by
-@var{arglist} is expanded, the @var{forms} are evaluated and
-must return a list of five items:
-@c FIXME Is this still true?
+This is the most general way to create new place forms. You can
+replace this by @code{gv-define-setter} or @code{gv-define-expander}.
+
+When a @code{setf} to @var{access-fn} with arguments described by
+@var{arglist} is expanded, the @var{forms} are evaluated and must
+return a list of five items:
@enumerate
@item
@@ -5092,6 +5084,9 @@ This is exactly like the Common Lisp macro of the same name,
except that the method returns a list of five values rather
than the five values themselves, since Emacs Lisp does not
support Common Lisp's notion of multiple return values.
+(Note that the @code{setf} implementation provided by @file{gv.el}
+does not use this five item format. Its use here is only for
+backwards compatibility.)
Once again, the @var{forms} may begin with a documentation string.