diff options
| author | Glenn Morris | 2012-10-27 19:34:36 -0700 |
|---|---|---|
| committer | Glenn Morris | 2012-10-27 19:34:36 -0700 |
| commit | f94b04fcc7490510d85ce107b65c48bc60334f63 (patch) | |
| tree | eda11e5978096d080f533c986f34ee3f2e92bfc3 | |
| parent | 9c52d61d070c1e8961ce376f4829e364960cda97 (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | doc/misc/cl.texi | 60 | ||||
| -rw-r--r-- | etc/NEWS | 6 |
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 @@ | |||
| 1 | 2012-10-28 Glenn Morris <rgm@gnu.org> | 1 | 2012-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 | |||
| 806 | constructs. | 806 | constructs. |
| 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 |
| 2661 | for the Common Lisp functions that work with multiple values, but | 2661 | for the Common Lisp functions that work with multiple values, but |
| 2662 | in Emacs Lisp these functions simply operate on lists instead. | 2662 | in Emacs Lisp these functions simply operate on lists instead. |
| 2663 | The @code{values} form, for example, is a synonym for @code{list} | 2663 | The @code{cl-values} form, for example, is a synonym for @code{list} |
| 2664 | in Emacs. | 2664 | in 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. | |||
| 4701 | The multiple-value return facility treats lists as multiple | 4701 | The multiple-value return facility treats lists as multiple |
| 4702 | values, since Emacs Lisp cannot support multiple return values | 4702 | values, since Emacs Lisp cannot support multiple return values |
| 4703 | directly. The macros will be compatible with Common Lisp if | 4703 | directly. 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 |
| 4705 | a @code{cl-multiple-value-bind} or other multiple-value receiver; | 4705 | a @code{cl-multiple-value-bind} or other multiple-value receiver; |
| 4706 | if @code{values} is used without @code{cl-multiple-value-@dots{}} | 4706 | if @code{cl-values} is used without @code{cl-multiple-value-@dots{}} |
| 4707 | or vice-versa the effect will be different from Common Lisp. | 4707 | or vice-versa the effect will be different from Common Lisp. |
| 4708 | 4708 | ||
| 4709 | Many Common Lisp declarations are ignored, and others match | 4709 | Many Common Lisp declarations are ignored, and others match |
| @@ -4927,11 +4927,15 @@ recursion. | |||
| 4927 | @appendix Obsolete Features | 4927 | @appendix Obsolete Features |
| 4928 | 4928 | ||
| 4929 | This section describes some features of the package that are obsolete | 4929 | This section describes some features of the package that are obsolete |
| 4930 | and should not be used in new code. They are only provided by the old | 4930 | and 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}. | 4931 | the old @file{cl.el} entry point, not by the newer @file{cl-lib.el}; |
| 4932 | or where versions with a @samp{cl-} prefix do exist they do not behave | ||
| 4933 | in 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 | |||
| 5050 | are made sequentially in the manner of @code{let*}. | 5054 | are 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 | |||
| 5060 | The following macros are defined using @code{lexical-let}. | ||
| 5061 | They are replaced by versions with a @samp{cl-} prefix that use true | ||
| 5062 | lexical 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{} | ||
| 5066 | Replaced by @code{cl-flet} (@pxref{Function Bindings}) | ||
| 5067 | or @code{cl-letf} (@pxref{Modify Macros}). | ||
| 5068 | @end defmac | ||
| 5069 | |||
| 5070 | @defmac labels (bindings@dots{}) forms@dots{} | ||
| 5071 | Replaced by @code{cl-labels} (@pxref{Function Bindings}). | ||
| 5072 | @end defmac | ||
| 5073 | |||
| 5074 | @defmac letf (bindings@dots{}) forms@dots{} | ||
| 5075 | Replaced by @code{cl-letf} (@pxref{Modify Macros}). | ||
| 5076 | @end defmac | ||
| 5077 | |||
| 5078 | @node Obsolete Setf Customization | ||
| 5079 | @appendixsec Obsolete Ways to Customize Setf | ||
| 5080 | |||
| 5081 | This section describes some obsolete ways to extend @code{setf}. | ||
| 5082 | They are replaced by @file{gv.el} in Emacs 24.3. | ||
| 5083 | |||
| 5084 | @c FIXME. | ||
| 5085 | @defmac define-setf-expander name arglist &rest body | ||
| 5086 | Use @file{gv.el}. | ||
| 5087 | @end defmac | ||
| 5088 | |||
| 5089 | @defmac defsetf access-fn update-fn | ||
| 5090 | Use @file{gv.el}. | ||
| 5091 | @end defmac | ||
| 5092 | |||
| 5093 | @defmac define-modify-macro name arglist function [doc-string] | ||
| 5094 | Use @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 |
| @@ -323,11 +323,17 @@ The difference is that it relies on the `lexical-binding' machinery (as opposed | |||
| 323 | to the `lexical-let' machinery used previously) to capture definitions in | 323 | to the `lexical-let' machinery used previously) to capture definitions in |
| 324 | closures, so such closures will only work if `lexical-binding' is in use. | 324 | closures, 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. |
| 328 | A side effect is that vars without corresponding value are bound to nil | 330 | A side effect is that vars without corresponding value are bound to nil |
| 329 | rather than making them unbound. | 331 | rather than making them unbound. |
| 330 | 332 | ||
| 333 | *** The following methods of extending `setf' are obsolete. | ||
| 334 | Use 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'. |