aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2012-10-27 19:34:36 -0700
committerGlenn Morris2012-10-27 19:34:36 -0700
commitf94b04fcc7490510d85ce107b65c48bc60334f63 (patch)
treeeda11e5978096d080f533c986f34ee3f2e92bfc3
parent9c52d61d070c1e8961ce376f4829e364960cda97 (diff)
downloademacs-f94b04fcc7490510d85ce107b65c48bc60334f63.tar.gz
emacs-f94b04fcc7490510d85ce107b65c48bc60334f63.zip
More cl.texi updates
* doc/misc/cl.texi (Multiple Values, Common Lisp Compatibility): More namespace updates. (Obsolete Features): Copyedits. (Obsolete Lexical Macros, Obsolete Setf Customization): New subsections. * etc/NEWS: Related edits.
-rw-r--r--doc/misc/ChangeLog6
-rw-r--r--doc/misc/cl.texi60
-rw-r--r--etc/NEWS6
3 files changed, 64 insertions, 8 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 6d744908ebe..fe7781c57cc 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,5 +1,11 @@
12012-10-28 Glenn Morris <rgm@gnu.org> 12012-10-28 Glenn Morris <rgm@gnu.org>
2 2
3 * cl.texi (Multiple Values, Common Lisp Compatibility):
4 More namespace updates.
5 (Obsolete Features): Copyedits.
6 (Obsolete Lexical Macros, Obsolete Setf Customization):
7 New subsections.
8
3 * cl.texi (Porting Common Lisp, Lexical Bindings): 9 * cl.texi (Porting Common Lisp, Lexical Bindings):
4 Add some xrefs to the Elisp manual. 10 Add some xrefs to the Elisp manual.
5 11
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index aebdcb7d5f4..ed4206c0b97 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -806,7 +806,7 @@ standard @code{setf} facility, and a number of looping and conditional
806constructs. 806constructs.
807 807
808@c FIXME 808@c FIXME
809@c flet is not cl-flet, values is not cl-values. 809@c flet is not cl-flet.
810@menu 810@menu
811* Assignment:: The @code{cl-psetq} form. 811* Assignment:: The @code{cl-psetq} form.
812* Generalized Variables:: Extensions to generalized variables. 812* Generalized Variables:: Extensions to generalized variables.
@@ -815,7 +815,7 @@ constructs.
815* Blocks and Exits:: @code{cl-block}, @code{cl-return}, @code{cl-return-from}. 815* Blocks and Exits:: @code{cl-block}, @code{cl-return}, @code{cl-return-from}.
816* Iteration:: @code{cl-do}, @code{cl-dotimes}, @code{cl-dolist}, @code{cl-do-symbols}. 816* Iteration:: @code{cl-do}, @code{cl-dotimes}, @code{cl-dolist}, @code{cl-do-symbols}.
817* Loop Facility:: The Common Lisp @code{cl-loop} macro. 817* Loop Facility:: The Common Lisp @code{cl-loop} macro.
818* Multiple Values:: @code{values}, @code{cl-multiple-value-bind}, etc. 818* Multiple Values:: @code{cl-values}, @code{cl-multiple-value-bind}, etc.
819@end menu 819@end menu
820 820
821@node Assignment 821@node Assignment
@@ -2660,7 +2660,7 @@ than one value either return just the first value (as in
2660@code{get-setf-method}). This package @emph{does} define placeholders 2660@code{get-setf-method}). This package @emph{does} define placeholders
2661for the Common Lisp functions that work with multiple values, but 2661for the Common Lisp functions that work with multiple values, but
2662in Emacs Lisp these functions simply operate on lists instead. 2662in Emacs Lisp these functions simply operate on lists instead.
2663The @code{values} form, for example, is a synonym for @code{list} 2663The @code{cl-values} form, for example, is a synonym for @code{list}
2664in Emacs. 2664in Emacs.
2665 2665
2666@defmac cl-multiple-value-bind (var@dots{}) values-form forms@dots{} 2666@defmac cl-multiple-value-bind (var@dots{}) values-form forms@dots{}
@@ -4701,9 +4701,9 @@ and type specifiers are unimplemented.
4701The multiple-value return facility treats lists as multiple 4701The multiple-value return facility treats lists as multiple
4702values, since Emacs Lisp cannot support multiple return values 4702values, since Emacs Lisp cannot support multiple return values
4703directly. The macros will be compatible with Common Lisp if 4703directly. The macros will be compatible with Common Lisp if
4704@code{values} or @code{values-list} is always used to return to 4704@code{cl-values} or @code{cl-values-list} is always used to return to
4705a @code{cl-multiple-value-bind} or other multiple-value receiver; 4705a @code{cl-multiple-value-bind} or other multiple-value receiver;
4706if @code{values} is used without @code{cl-multiple-value-@dots{}} 4706if @code{cl-values} is used without @code{cl-multiple-value-@dots{}}
4707or vice-versa the effect will be different from Common Lisp. 4707or vice-versa the effect will be different from Common Lisp.
4708 4708
4709Many Common Lisp declarations are ignored, and others match 4709Many Common Lisp declarations are ignored, and others match
@@ -4927,11 +4927,15 @@ recursion.
4927@appendix Obsolete Features 4927@appendix Obsolete Features
4928 4928
4929This section describes some features of the package that are obsolete 4929This section describes some features of the package that are obsolete
4930and should not be used in new code. They are only provided by the old 4930and should not be used in new code. They are either only provided by
4931@file{cl.el} entry point, not by the newer @file{cl-lib.el}. 4931the old @file{cl.el} entry point, not by the newer @file{cl-lib.el};
4932or where versions with a @samp{cl-} prefix do exist they do not behave
4933in exactly the same way.
4932 4934
4933@menu 4935@menu
4934* Lexical Bindings:: An approximation of lexical binding. 4936* Lexical Bindings:: An approximation of lexical binding.
4937* Obsolete Lexical Macros:: Obsolete macros using lexical-let.
4938* Obsolete Setf Customization:: Obsolete ways to customize setf.
4935@end menu 4939@end menu
4936 4940
4937@node Lexical Bindings 4941@node Lexical Bindings
@@ -5050,6 +5054,46 @@ This form is just like @code{lexical-let}, except that the bindings
5050are made sequentially in the manner of @code{let*}. 5054are made sequentially in the manner of @code{let*}.
5051@end defmac 5055@end defmac
5052 5056
5057@node Obsolete Lexical Macros
5058@appendixsec Macros Defined Using Lexical-Let
5059
5060The following macros are defined using @code{lexical-let}.
5061They are replaced by versions with a @samp{cl-} prefix that use true
5062lexical binding (and hence rely on @code{lexical-binding} being set to
5063@code{t} in code using them).
5064
5065@defmac flet (bindings@dots{}) forms@dots{}
5066Replaced by @code{cl-flet} (@pxref{Function Bindings})
5067or @code{cl-letf} (@pxref{Modify Macros}).
5068@end defmac
5069
5070@defmac labels (bindings@dots{}) forms@dots{}
5071Replaced by @code{cl-labels} (@pxref{Function Bindings}).
5072@end defmac
5073
5074@defmac letf (bindings@dots{}) forms@dots{}
5075Replaced by @code{cl-letf} (@pxref{Modify Macros}).
5076@end defmac
5077
5078@node Obsolete Setf Customization
5079@appendixsec Obsolete Ways to Customize Setf
5080
5081This section describes some obsolete ways to extend @code{setf}.
5082They are replaced by @file{gv.el} in Emacs 24.3.
5083
5084@c FIXME.
5085@defmac define-setf-expander name arglist &rest body
5086Use @file{gv.el}.
5087@end defmac
5088
5089@defmac defsetf access-fn update-fn
5090Use @file{gv.el}.
5091@end defmac
5092
5093@defmac define-modify-macro name arglist function [doc-string]
5094Use @file{gv.el}.
5095@end defmac
5096
5053 5097
5054@node GNU Free Documentation License 5098@node GNU Free Documentation License
5055@appendix GNU Free Documentation License 5099@appendix GNU Free Documentation License
diff --git a/etc/NEWS b/etc/NEWS
index 45ca56f5da6..cfdd3355aa5 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -323,11 +323,17 @@ The difference is that it relies on the `lexical-binding' machinery (as opposed
323to the `lexical-let' machinery used previously) to capture definitions in 323to the `lexical-let' machinery used previously) to capture definitions in
324closures, so such closures will only work if `lexical-binding' is in use. 324closures, so such closures will only work if `lexical-binding' is in use.
325 325
326*** `cl-letf' is not exactly like `letf'.
327
326+++ 328+++
327*** `progv' was rewritten to use the `let' machinery. 329*** `progv' was rewritten to use the `let' machinery.
328A side effect is that vars without corresponding value are bound to nil 330A side effect is that vars without corresponding value are bound to nil
329rather than making them unbound. 331rather than making them unbound.
330 332
333*** The following methods of extending `setf' are obsolete.
334Use gv.el instead (FIXME; details).
335`define-setf-expander', `defsetf', `define-modify-macro'
336
331** Compilation mode 337** Compilation mode
332+++ 338+++
333*** New option `compilation-always-kill'. 339*** New option `compilation-always-kill'.