]> code.delx.au - gnu-emacs/commitdiff
* cl.texi (Obsolete Setf Customization): Updates for define-setf-method.
authorGlenn Morris <rgm@gnu.org>
Wed, 7 Nov 2012 22:23:34 +0000 (17:23 -0500)
committerGlenn Morris <rgm@gnu.org>
Wed, 7 Nov 2012 22:23:34 +0000 (17:23 -0500)
* etc/NEWS: Related markup.

doc/misc/ChangeLog
doc/misc/cl.texi
etc/NEWS

index 6951f2df79d20d41a50e1fb1e1995a75e50e5248..700d432ef44fff563595ad005dcdca2030b9c437 100644 (file)
@@ -2,7 +2,8 @@
 
        * cl.texi (Obsolete Setf Customization):
        Revert defsetf example to the more correct let rather than prog1.
-       Give define-modify-macro and defsetf gv.el replacements.
+       Give define-modify-macro, defsetf, and define-setf-method
+       gv.el replacements.
 
 2012-11-06  Glenn Morris  <rgm@gnu.org>
 
index d3c9ad6aedfb2587864085dfc75e63a88ededbe4..a50be1027f35ca88d02f2dad5d66abb912ba4282 100644 (file)
@@ -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.
 
index fabb4921d52d80291a1bd18eaec568c2ded748e3..d5414949c59b02af21b950055194a03862cf98a8 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -335,6 +335,7 @@ of `symbol-function' in place forms.
 A side effect is that vars without corresponding value are bound to nil
 rather than making them unbound.
 
++++
 *** The following methods of extending `setf' are obsolete
 (use features from gv.el instead):
 `define-modify-macro' (use `gv-letplace')