X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c3c51ec274f423cf8044cd5b9bc0bbc5bda1f6aa..124c48619e2c68c497d9075e6e940142c174c77b:/doc/misc/cl.texi diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 21188af8bb..572124d452 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -1,13 +1,13 @@ \input texinfo @c -*-texinfo-*- @setfilename ../../info/cl.info @settitle Common Lisp Extensions -@documentencoding UTF-8 +@include docstyle.texi @include emacsver.texi @copying This file documents the GNU Emacs Common Lisp emulation package. -Copyright @copyright{} 1993, 2001--2014 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001--2016 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -296,6 +296,13 @@ list. Also, the function body is enclosed in an implicit block called @var{name}; @pxref{Blocks and Exits}. @end defmac +@defmac cl-iter-defun name arglist body@dots{} +This form is identical to the regular @code{iter-defun} form, except +that @var{arglist} is allowed to be a full Common Lisp argument +list. Also, the function body is enclosed in an implicit block +called @var{name}; @pxref{Blocks and Exits}. +@end defmac + @defmac cl-defsubst name arglist body@dots{} This is just like @code{cl-defun}, except that the function that is defined is automatically proclaimed @code{inline}, i.e., @@ -563,20 +570,20 @@ When @file{foo.el} is compiled, these variables will be set during the compilation itself: @example -foo1 foo3 foo5 foo7 ; `compile' +foo1 foo3 foo5 foo7 ; 'compile' @end example When @file{foo.elc} is loaded, these variables will be set: @example -foo2 foo3 foo6 foo7 ; `load' +foo2 foo3 foo6 foo7 ; 'load' @end example And if @file{foo.el} is loaded uncompiled, these variables will be set: @example -foo4 foo5 foo6 foo7 ; `eval' +foo4 foo5 foo6 foo7 ; 'eval' @end example If these seven @code{cl-eval-when}s had been, say, inside a @code{defun}, @@ -971,7 +978,7 @@ a The generalized variable @code{buffer-substring}, listed above, also works in this way by replacing a portion of the current buffer. -@c FIXME? Also `eq'? (see cl-lib.el) +@c FIXME? Also 'eq'? (see cl-lib.el) @c Currently commented out in cl.el. @ignore @@ -2237,6 +2244,11 @@ This clause is like @code{always}, except that the loop returns This clause stops the loop when the specified form is non-@code{nil}; in this case, it returns that non-@code{nil} value. If all the values were @code{nil}, the loop returns @code{nil}. + +@item iter-by @var{iterator} +This clause iterates over the values from the specified form, an +iterator object. See (@pxref{Generators,,,elisp,GNU Emacs Lisp +Reference Manual}). @end table @node Accumulation Clauses @@ -2865,14 +2877,8 @@ their names will not conflict with ``real'' variables in the user's code. (Internally, the variable @code{cl--gensym-counter} holds the counter -used to generate names. It is incremented after each use. In Common -Lisp this is initialized with 0, but this package initializes it with -a random time-dependent value to avoid trouble when two files that -each used @code{cl-gensym} in their compilation are loaded together. -Uninterned symbols become interned when the compiler writes them out -to a file and the Emacs loader loads them, so their names have to be -treated a bit more carefully than in Common Lisp where uninterned -symbols remain uninterned after loading.) +used to generate names. It is initialized with zero and incremented +after each use.) @end defun @defun cl-gentemp &optional x @@ -2931,7 +2937,7 @@ error if the argument is not an integer. @defun cl-digit-char-p char radix Test if @var{char} is a digit in the specified @var{radix} (default is -10). If true return the decimal value of digit @var{char} in +10). If it is, return the numerical value of digit @var{char} in @var{radix}. @end defun @@ -3021,9 +3027,10 @@ of @code{cl-truncate}. This function implements the Common Lisp @code{parse-integer} function. It parses an integer in the specified @var{radix} from the substring of @var{string} between @var{start} and @var{end}. Any -leading and trailing whitespace chars are ignored. It signals an error -if the substring between @var{start} and @var{end} cannot be parsed as -an integer unless @var{junk-allowed} is non-nil. +leading and trailing whitespace chars are ignored. The function +signals an error if the substring between @var{start} and @var{end} +cannot be parsed as an integer, unless @var{junk-allowed} is +non-@code{nil}. @end defun @node Random Numbers @@ -4531,10 +4538,7 @@ example, local @code{special} declarations, which are purely advisory in Emacs Lisp, do not rigorously obey the scoping rules set down in Steele's book. -The variable @code{cl--gensym-counter} starts out with a pseudo-random -value rather than with zero. This is to cope with the fact that -generated symbols become interned when they are written to and -loaded back from a file. +The variable @code{cl--gensym-counter} starts out with zero. The @code{cl-defstruct} facility is compatible, except that structures are of type @code{:type vector :named} by default rather than some