Mercurial > hg > xemacs-beta
diff lisp/cl/cl-defs.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 489f57a838ef |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/cl/cl-defs.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,795 @@ + +;;;### (autoloads (cl-macroexpand-all cl-prettyexpand cl-progv-before hash-table-count hash-table-p cl-puthash cl-hash-lookup make-hash-table cl-do-remf cl-set-getf getf get* tailp list-length nreconc revappend notevery notany every some map cl-mapcar-many concatenate random-state-p make-random-state random* signum rem* mod* round* truncate* ceiling* floor* isqrt lcm gcd cl-float-limits cl-set-frame-visible-p cl-map-overlays cl-map-intervals cl-map-keymap-recursively cl-map-keymap mapcon mapcan mapl mapc maplist equalp coerce) "cl-extra" "cl/cl-extra.el" (12636 41267)) +;;; Generated autoloads from cl/cl-extra.el + +(autoload 'coerce "cl-extra" "\ +Coerce OBJECT to type TYPE. +TYPE is a Common Lisp type specifier." nil nil) + +(autoload 'equalp "cl-extra" "\ +T if two Lisp objects have similar structures and contents. +This is like `equal', except that it accepts numerically equal +numbers of different types (float vs. integer), and also compares +strings case-insensitively." nil nil) + +(autoload 'maplist "cl-extra" "\ +Map FUNC to each sublist of LIST or LISTS. +Like `mapcar', except applies to lists and their cdr's rather than to +the elements themselves." nil nil) + +(autoload 'mapc "cl-extra" "\ +Like `mapcar', but does not accumulate values returned by the function." nil nil) + +(autoload 'mapl "cl-extra" "\ +Like `maplist', but does not accumulate values returned by the function." nil nil) + +(autoload 'mapcan "cl-extra" "\ +Like `mapcar', but nconc's together the values returned by the function." nil nil) + +(autoload 'mapcon "cl-extra" "\ +Like `maplist', but nconc's together the values returned by the function." nil nil) + +(autoload 'cl-map-keymap "cl-extra" nil nil nil) + +(autoload 'cl-map-keymap-recursively "cl-extra" nil nil nil) + +(autoload 'cl-map-intervals "cl-extra" nil nil nil) + +(autoload 'cl-map-overlays "cl-extra" nil nil nil) + +(autoload 'cl-set-frame-visible-p "cl-extra" nil nil nil) + +(autoload 'cl-float-limits "cl-extra" nil nil nil) + +(autoload 'gcd "cl-extra" "\ +Return the greatest common divisor of the arguments." nil nil) + +(autoload 'lcm "cl-extra" "\ +Return the least common multiple of the arguments." nil nil) + +(autoload 'isqrt "cl-extra" "\ +Return the integer square root of the argument." nil nil) + +(autoload 'floor* "cl-extra" "\ +Return a list of the floor of X and the fractional part of X. +With two arguments, return floor and remainder of their quotient." nil nil) + +(autoload 'ceiling* "cl-extra" "\ +Return a list of the ceiling of X and the fractional part of X. +With two arguments, return ceiling and remainder of their quotient." nil nil) + +(autoload 'truncate* "cl-extra" "\ +Return a list of the integer part of X and the fractional part of X. +With two arguments, return truncation and remainder of their quotient." nil nil) + +(autoload 'round* "cl-extra" "\ +Return a list of X rounded to the nearest integer and the remainder. +With two arguments, return rounding and remainder of their quotient." nil nil) + +(autoload 'mod* "cl-extra" "\ +The remainder of X divided by Y, with the same sign as Y." nil nil) + +(autoload 'rem* "cl-extra" "\ +The remainder of X divided by Y, with the same sign as X." nil nil) + +(autoload 'signum "cl-extra" "\ +Return 1 if A is positive, -1 if negative, 0 if zero." nil nil) + +(autoload 'random* "cl-extra" "\ +Return a random nonnegative number less than LIM, an integer or float. +Optional second arg STATE is a random-state object." nil nil) + +(autoload 'make-random-state "cl-extra" "\ +Return a copy of random-state STATE, or of `*random-state*' if omitted. +If STATE is t, return a new state object seeded from the time of day." nil nil) + +(autoload 'random-state-p "cl-extra" "\ +Return t if OBJECT is a random-state object." nil nil) + +(autoload 'concatenate "cl-extra" "\ +Concatenate, into a sequence of type TYPE, the argument SEQUENCES." nil nil) + +(autoload 'cl-mapcar-many "cl-extra" nil nil nil) + +(autoload 'map "cl-extra" "\ +Map a function across one or more sequences, returning a sequence. +TYPE is the sequence type to return, FUNC is the function, and SEQS +are the argument sequences." nil nil) + +(autoload 'some "cl-extra" "\ +Return true if PREDICATE is true of any element of SEQ or SEQs. +If so, return the true (non-nil) value returned by PREDICATE." nil nil) + +(autoload 'every "cl-extra" "\ +Return true if PREDICATE is true of every element of SEQ or SEQs." nil nil) + +(autoload 'notany "cl-extra" "\ +Return true if PREDICATE is false of every element of SEQ or SEQs." nil nil) + +(autoload 'notevery "cl-extra" "\ +Return true if PREDICATE is false of some element of SEQ or SEQs." nil nil) + +(autoload 'revappend "cl-extra" "\ +Equivalent to (append (reverse X) Y)." nil nil) + +(autoload 'nreconc "cl-extra" "\ +Equivalent to (nconc (nreverse X) Y)." nil nil) + +(autoload 'list-length "cl-extra" "\ +Return the length of a list. Return nil if list is circular." nil nil) + +(autoload 'tailp "cl-extra" "\ +Return true if SUBLIST is a tail of LIST." nil nil) + +(autoload 'get* "cl-extra" "\ +Return the value of SYMBOL's PROPNAME property, or DEFAULT if none." nil nil) + +(autoload 'getf "cl-extra" "\ +Search PROPLIST for property PROPNAME; return its value or DEFAULT. +PROPLIST is a list of the sort returned by `symbol-plist'." nil nil) + +(autoload 'cl-set-getf "cl-extra" nil nil nil) + +(autoload 'cl-do-remf "cl-extra" nil nil nil) + +(autoload 'make-hash-table "cl-extra" "\ +Make an empty Common Lisp-style hash-table. +If :test is `eq', this can use Lucid Emacs built-in hash-tables. +In non-Lucid Emacs, or with non-`eq' test, this internally uses a-lists. +Keywords supported: :test :size +The Common Lisp keywords :rehash-size and :rehash-threshold are ignored." nil nil) + +(autoload 'cl-hash-lookup "cl-extra" nil nil nil) + +(autoload 'cl-puthash "cl-extra" nil nil nil) + +(autoload 'hash-table-p "cl-extra" "\ +Return t if OBJECT is a hash table." nil nil) + +(autoload 'hash-table-count "cl-extra" "\ +Return the number of entries in HASH-TABLE." nil nil) + +(autoload 'cl-progv-before "cl-extra" nil nil nil) + +(autoload 'cl-prettyexpand "cl-extra" nil nil nil) + +(autoload 'cl-macroexpand-all "cl-extra" "\ +Expand all macro calls through a Lisp FORM. +This also does some trivial optimizations to make the form prettier." nil nil) + +;;;*** + +;;;### (autoloads (tree-equal nsublis sublis nsubst-if-not nsubst-if nsubst subst-if-not subst-if subsetp nset-exclusive-or set-exclusive-or nset-difference set-difference nintersection intersection nunion union rassoc-if-not rassoc-if rassoc* assoc-if-not assoc-if assoc* cl-adjoin member-if-not member-if member* merge stable-sort sort* search mismatch count-if-not count-if count position-if-not position-if position find-if-not find-if find nsubstitute-if-not nsubstitute-if nsubstitute substitute-if-not substitute-if substitute delete-duplicates remove-duplicates delete-if-not delete-if delete* remove-if-not remove-if remove* remove remq replace fill reduce) "cl-seq" "cl/cl-seq.el" (12559 39909)) +;;; Generated autoloads from cl/cl-seq.el + +(autoload 'reduce "cl-seq" "\ +Reduce two-argument FUNCTION across SEQUENCE. +Keywords supported: :start :end :from-end :initial-value :key" nil nil) + +(autoload 'fill "cl-seq" "\ +Fill the elements of SEQ with ITEM. +Keywords supported: :start :end" nil nil) + +(autoload 'replace "cl-seq" "\ +Replace the elements of SEQ1 with the elements of SEQ2. +SEQ1 is destructively modified, then returned. +Keywords supported: :start1 :end1 :start2 :end2" nil nil) + +(autoload 'remq "cl-seq" nil nil nil) + +(autoload 'remove "cl-seq" nil nil nil) + +(autoload 'remove* "cl-seq" "\ +Remove all occurrences of ITEM in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :test :test-not :key :count :start :end :from-end" nil nil) + +(autoload 'remove-if "cl-seq" "\ +Remove all items satisfying PREDICATE in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'remove-if-not "cl-seq" "\ +Remove all items not satisfying PREDICATE in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'delete* "cl-seq" "\ +Remove all occurrences of ITEM in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :test :test-not :key :count :start :end :from-end" nil nil) + +(autoload 'delete-if "cl-seq" "\ +Remove all items satisfying PREDICATE in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'delete-if-not "cl-seq" "\ +Remove all items not satisfying PREDICATE in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'remove-duplicates "cl-seq" "\ +Return a copy of SEQ with all duplicate elements removed. +Keywords supported: :test :test-not :key :start :end :from-end" nil nil) + +(autoload 'delete-duplicates "cl-seq" "\ +Remove all duplicate elements from SEQ (destructively). +Keywords supported: :test :test-not :key :start :end :from-end" nil nil) + +(autoload 'substitute "cl-seq" "\ +Substitute NEW for OLD in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :test :test-not :key :count :start :end :from-end" nil nil) + +(autoload 'substitute-if "cl-seq" "\ +Substitute NEW for all items satisfying PREDICATE in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'substitute-if-not "cl-seq" "\ +Substitute NEW for all items not satisfying PREDICATE in SEQ. +This is a non-destructive function; it makes a copy of SEQ if necessary +to avoid corrupting the original SEQ. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'nsubstitute "cl-seq" "\ +Substitute NEW for OLD in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :test :test-not :key :count :start :end :from-end" nil nil) + +(autoload 'nsubstitute-if "cl-seq" "\ +Substitute NEW for all items satisfying PREDICATE in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'nsubstitute-if-not "cl-seq" "\ +Substitute NEW for all items not satisfying PREDICATE in SEQ. +This is a destructive function; it reuses the storage of SEQ whenever possible. +Keywords supported: :key :count :start :end :from-end" nil nil) + +(autoload 'find "cl-seq" "\ +Find the first occurrence of ITEM in LIST. +Return the matching ITEM, or nil if not found. +Keywords supported: :test :test-not :key :start :end :from-end" nil nil) + +(autoload 'find-if "cl-seq" "\ +Find the first item satisfying PREDICATE in LIST. +Return the matching ITEM, or nil if not found. +Keywords supported: :key :start :end :from-end" nil nil) + +(autoload 'find-if-not "cl-seq" "\ +Find the first item not satisfying PREDICATE in LIST. +Return the matching ITEM, or nil if not found. +Keywords supported: :key :start :end :from-end" nil nil) + +(autoload 'position "cl-seq" "\ +Find the first occurrence of ITEM in LIST. +Return the index of the matching item, or nil if not found. +Keywords supported: :test :test-not :key :start :end :from-end" nil nil) + +(autoload 'position-if "cl-seq" "\ +Find the first item satisfying PREDICATE in LIST. +Return the index of the matching item, or nil if not found. +Keywords supported: :key :start :end :from-end" nil nil) + +(autoload 'position-if-not "cl-seq" "\ +Find the first item not satisfying PREDICATE in LIST. +Return the index of the matching item, or nil if not found. +Keywords supported: :key :start :end :from-end" nil nil) + +(autoload 'count "cl-seq" "\ +Count the number of occurrences of ITEM in LIST. +Keywords supported: :test :test-not :key :start :end" nil nil) + +(autoload 'count-if "cl-seq" "\ +Count the number of items satisfying PREDICATE in LIST. +Keywords supported: :key :start :end" nil nil) + +(autoload 'count-if-not "cl-seq" "\ +Count the number of items not satisfying PREDICATE in LIST. +Keywords supported: :key :start :end" nil nil) + +(autoload 'mismatch "cl-seq" "\ +Compare SEQ1 with SEQ2, return index of first mismatching element. +Return nil if the sequences match. If one sequence is a prefix of the +other, the return value indicates the end of the shorted sequence. +Keywords supported: :test :test-not :key :start1 :end1 :start2 :end2 :from-end" nil nil) + +(autoload 'search "cl-seq" "\ +Search for SEQ1 as a subsequence of SEQ2. +Return the index of the leftmost element of the first match found; +return nil if there are no matches. +Keywords supported: :test :test-not :key :start1 :end1 :start2 :end2 :from-end" nil nil) + +(autoload 'sort* "cl-seq" "\ +Sort the argument SEQUENCE according to PREDICATE. +This is a destructive function; it reuses the storage of SEQUENCE if possible. +Keywords supported: :key" nil nil) + +(autoload 'stable-sort "cl-seq" "\ +Sort the argument SEQUENCE stably according to PREDICATE. +This is a destructive function; it reuses the storage of SEQUENCE if possible. +Keywords supported: :key" nil nil) + +(autoload 'merge "cl-seq" "\ +Destructively merge the two sequences to produce a new sequence. +TYPE is the sequence type to return, SEQ1 and SEQ2 are the two +argument sequences, and PRED is a `less-than' predicate on the elements. +Keywords supported: :key" nil nil) + +(autoload 'member* "cl-seq" "\ +Find the first occurrence of ITEM in LIST. +Return the sublist of LIST whose car is ITEM. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'member-if "cl-seq" "\ +Find the first item satisfying PREDICATE in LIST. +Return the sublist of LIST whose car matches. +Keywords supported: :key" nil nil) + +(autoload 'member-if-not "cl-seq" "\ +Find the first item not satisfying PREDICATE in LIST. +Return the sublist of LIST whose car matches. +Keywords supported: :key" nil nil) + +(autoload 'cl-adjoin "cl-seq" nil nil nil) + +(autoload 'assoc* "cl-seq" "\ +Find the first item whose car matches ITEM in LIST. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'assoc-if "cl-seq" "\ +Find the first item whose car satisfies PREDICATE in LIST. +Keywords supported: :key" nil nil) + +(autoload 'assoc-if-not "cl-seq" "\ +Find the first item whose car does not satisfy PREDICATE in LIST. +Keywords supported: :key" nil nil) + +(autoload 'rassoc* "cl-seq" "\ +Find the first item whose cdr matches ITEM in LIST. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'rassoc-if "cl-seq" "\ +Find the first item whose cdr satisfies PREDICATE in LIST. +Keywords supported: :key" nil nil) + +(autoload 'rassoc-if-not "cl-seq" "\ +Find the first item whose cdr does not satisfy PREDICATE in LIST. +Keywords supported: :key" nil nil) + +(autoload 'union "cl-seq" "\ +Combine LIST1 and LIST2 using a set-union operation. +The result list contains all items that appear in either LIST1 or LIST2. +This is a non-destructive function; it makes a copy of the data if necessary +to avoid corrupting the original LIST1 and LIST2. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nunion "cl-seq" "\ +Combine LIST1 and LIST2 using a set-union operation. +The result list contains all items that appear in either LIST1 or LIST2. +This is a destructive function; it reuses the storage of LIST1 and LIST2 +whenever possible. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'intersection "cl-seq" "\ +Combine LIST1 and LIST2 using a set-intersection operation. +The result list contains all items that appear in both LIST1 and LIST2. +This is a non-destructive function; it makes a copy of the data if necessary +to avoid corrupting the original LIST1 and LIST2. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nintersection "cl-seq" "\ +Combine LIST1 and LIST2 using a set-intersection operation. +The result list contains all items that appear in both LIST1 and LIST2. +This is a destructive function; it reuses the storage of LIST1 and LIST2 +whenever possible. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'set-difference "cl-seq" "\ +Combine LIST1 and LIST2 using a set-difference operation. +The result list contains all items that appear in LIST1 but not LIST2. +This is a non-destructive function; it makes a copy of the data if necessary +to avoid corrupting the original LIST1 and LIST2. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nset-difference "cl-seq" "\ +Combine LIST1 and LIST2 using a set-difference operation. +The result list contains all items that appear in LIST1 but not LIST2. +This is a destructive function; it reuses the storage of LIST1 and LIST2 +whenever possible. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'set-exclusive-or "cl-seq" "\ +Combine LIST1 and LIST2 using a set-exclusive-or operation. +The result list contains all items that appear in exactly one of LIST1, LIST2. +This is a non-destructive function; it makes a copy of the data if necessary +to avoid corrupting the original LIST1 and LIST2. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nset-exclusive-or "cl-seq" "\ +Combine LIST1 and LIST2 using a set-exclusive-or operation. +The result list contains all items that appear in exactly one of LIST1, LIST2. +This is a destructive function; it reuses the storage of LIST1 and LIST2 +whenever possible. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'subsetp "cl-seq" "\ +True if LIST1 is a subset of LIST2. +I.e., if every element of LIST1 also appears in LIST2. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'subst-if "cl-seq" "\ +Substitute NEW for elements matching PREDICATE in TREE (non-destructively). +Return a copy of TREE with all matching elements replaced by NEW. +Keywords supported: :key" nil nil) + +(autoload 'subst-if-not "cl-seq" "\ +Substitute NEW for elts not matching PREDICATE in TREE (non-destructively). +Return a copy of TREE with all non-matching elements replaced by NEW. +Keywords supported: :key" nil nil) + +(autoload 'nsubst "cl-seq" "\ +Substitute NEW for OLD everywhere in TREE (destructively). +Any element of TREE which is `eql' to OLD is changed to NEW (via a call +to `setcar'). +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nsubst-if "cl-seq" "\ +Substitute NEW for elements matching PREDICATE in TREE (destructively). +Any element of TREE which matches is changed to NEW (via a call to `setcar'). +Keywords supported: :key" nil nil) + +(autoload 'nsubst-if-not "cl-seq" "\ +Substitute NEW for elements not matching PREDICATE in TREE (destructively). +Any element of TREE which matches is changed to NEW (via a call to `setcar'). +Keywords supported: :key" nil nil) + +(autoload 'sublis "cl-seq" "\ +Perform substitutions indicated by ALIST in TREE (non-destructively). +Return a copy of TREE with all matching elements replaced. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'nsublis "cl-seq" "\ +Perform substitutions indicated by ALIST in TREE (destructively). +Any matching element of TREE is changed via a call to `setcar'. +Keywords supported: :test :test-not :key" nil nil) + +(autoload 'tree-equal "cl-seq" "\ +T if trees X and Y have `eql' leaves. +Atoms are compared by `eql'; cons cells are compared recursively. +Keywords supported: :test :test-not :key" nil nil) + +;;;*** + +;;;### (autoloads (cl-compile-time-init compiler-macroexpand cl-struct-setf-expander get-setf-method cl-do-pop typep gentemp gensym) "cl-macs" "cl/cl-macs.el" (12559 39909)) +;;; Generated autoloads from cl/cl-macs.el + +(autoload 'gensym "cl-macs" "\ +Generate a new uninterned symbol. +The name is made by appending a number to PREFIX, default \"G\"." nil nil) + +(autoload 'gentemp "cl-macs" "\ +Generate a new interned symbol with a unique name. +The name is made by appending a number to PREFIX, default \"G\"." nil nil) + +(autoload 'typep "cl-macs" "\ +Check that OBJECT is of type TYPE. +TYPE is a Common Lisp-style type specifier." nil nil) + +(autoload 'cl-do-pop "cl-macs" nil nil nil) + +(autoload 'get-setf-method "cl-macs" "\ +Return a list of five values describing the setf-method for PLACE. +PLACE may be any Lisp form which can appear as the PLACE argument to +a macro like `setf' or `incf'." nil nil) + +(autoload 'cl-struct-setf-expander "cl-macs" nil nil nil) + +(autoload 'compiler-macroexpand "cl-macs" nil nil nil) + +(autoload 'cl-compile-time-init "cl-macs" nil nil nil) + +;;;*** + +;;;### (autoloads (define-compiler-macro ignore-errors assert check-type defstruct callf2 callf letf* letf rotatef shiftf remf psetf setf define-modify-macro defsetf define-setf-method declare the locally multiple-value-setq multiple-value-bind lexical-let* lexical-let symbol-macrolet macrolet labels flet progv psetq do-all-symbols do-symbols dotimes dolist do* do loop return-from return block etypecase typecase ecase case load-time-value eval-when destructuring-bind function* defmacro* defun*) "cl-macs" "cl/cl-macs.el" (12559 39909)) +;;; Generated autoloads from cl/cl-macs.el + +(autoload 'defun* "cl-macs" "\ +(defun* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function. +Like normal `defun', except ARGLIST allows full Common Lisp conventions, +and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) + +(autoload 'defmacro* "cl-macs" "\ +(defmacro* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a macro. +Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, +and BODY is implicitly surrounded by (block NAME ...)." nil 'macro) + +(autoload 'function* "cl-macs" "\ +(function* SYMBOL-OR-LAMBDA): introduce a function. +Like normal `function', except that if argument is a lambda form, its +ARGLIST allows full Common Lisp conventions." nil 'macro) + +(autoload 'destructuring-bind "cl-macs" nil nil 'macro) + +(autoload 'eval-when "cl-macs" "\ +(eval-when (WHEN...) BODY...): control when BODY is evaluated. +If `compile' is in WHEN, BODY is evaluated when compiled at top-level. +If `load' is in WHEN, BODY is evaluated when loaded after top-level compile. +If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level." nil 'macro) + +(autoload 'load-time-value "cl-macs" "\ +Like `progn', but evaluates the body at load time. +The result of the body appears to the compiler as a quoted constant." nil 'macro) + +(autoload 'case "cl-macs" "\ +(case EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. +Each clause looks like (KEYLIST BODY...). EXPR is evaluated and compared +against each key in each KEYLIST; the corresponding BODY is evaluated. +If no clause succeeds, case returns nil. A single atom may be used in +place of a KEYLIST of one atom. A KEYLIST of `t' or `otherwise' is +allowed only in the final clause, and matches if no other keys match. +Key values are compared by `eql'." nil 'macro) + +(autoload 'ecase "cl-macs" "\ +(ecase EXPR CLAUSES...): like `case', but error if no case fits. +`otherwise'-clauses are not allowed." nil 'macro) + +(autoload 'typecase "cl-macs" "\ +(typecase EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value. +Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it +satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds, +typecase returns nil. A TYPE of `t' or `otherwise' is allowed only in the +final clause, and matches if no other keys match." nil 'macro) + +(autoload 'etypecase "cl-macs" "\ +(etypecase EXPR CLAUSES...): like `typecase', but error if no case fits. +`otherwise'-clauses are not allowed." nil 'macro) + +(autoload 'block "cl-macs" "\ +(block NAME BODY...): define a lexically-scoped block named NAME. +NAME may be any symbol. Code inside the BODY forms can call `return-from' +to jump prematurely out of the block. This differs from `catch' and `throw' +in two respects: First, the NAME is an unevaluated symbol rather than a +quoted symbol or other form; and second, NAME is lexically rather than +dynamically scoped: Only references to it within BODY will work. These +references may appear inside macro expansions, but not inside functions +called from BODY." nil 'macro) + +(autoload 'return "cl-macs" "\ +(return [RESULT]): return from the block named nil. +This is equivalent to `(return-from nil RESULT)'." nil 'macro) + +(autoload 'return-from "cl-macs" "\ +(return-from NAME [RESULT]): return from the block named NAME. +This jump out to the innermost enclosing `(block NAME ...)' form, +returning RESULT from that form (or nil if RESULT is omitted). +This is compatible with Common Lisp, but note that `defun' and +`defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro) + +(autoload 'loop "cl-macs" "\ +(loop CLAUSE...): The Common Lisp `loop' macro. +Valid clauses are: + for VAR from/upfrom/downfrom NUM to/upto/downto/above/below NUM by NUM, + for VAR in LIST by FUNC, for VAR on LIST by FUNC, for VAR = INIT then EXPR, + for VAR across ARRAY, repeat NUM, with VAR = INIT, while COND, until COND, + always COND, never COND, thereis COND, collect EXPR into VAR, + append EXPR into VAR, nconc EXPR into VAR, sum EXPR into VAR, + count EXPR into VAR, maximize EXPR into VAR, minimize EXPR into VAR, + if COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], + unless COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...], + do EXPRS..., initially EXPRS..., finally EXPRS..., return EXPR, + finally return EXPR, named NAME." nil 'macro) + +(autoload 'do "cl-macs" "\ +The Common Lisp `do' loop. +Format is: (do ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) + +(autoload 'do* "cl-macs" "\ +The Common Lisp `do*' loop. +Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro) + +(autoload 'dolist "cl-macs" "\ +(dolist (VAR LIST [RESULT]) BODY...): loop over a list. +Evaluate BODY with VAR bound to each `car' from LIST, in turn. +Then evaluate RESULT to get return value, default nil." nil 'macro) + +(autoload 'dotimes "cl-macs" "\ +(dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times. +Evaluate BODY with VAR bound to successive integers from 0, inclusive, +to COUNT, exclusive. Then evaluate RESULT to get return value, default +nil." nil 'macro) + +(autoload 'do-symbols "cl-macs" "\ +(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols. +Evaluate BODY with VAR bound to each interned symbol, or to each symbol +from OBARRAY." nil 'macro) + +(autoload 'do-all-symbols "cl-macs" nil nil 'macro) + +(autoload 'psetq "cl-macs" "\ +(psetq SYM VAL SYM VAL ...): set SYMs to the values VALs in parallel. +This is like `setq', except that all VAL forms are evaluated (in order) +before assigning any symbols SYM to the corresponding values." nil 'macro) + +(autoload 'progv "cl-macs" "\ +(progv SYMBOLS VALUES BODY...): bind SYMBOLS to VALUES dynamically in BODY. +The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists. +Each SYMBOL in the first list is bound to the corresponding VALUE in the +second list (or made unbound if VALUES is shorter than SYMBOLS); then the +BODY forms are executed and their result is returned. This is much like +a `let' form, except that the list of symbols can be computed at run-time." nil 'macro) + +(autoload 'flet "cl-macs" "\ +(flet ((FUNC ARGLIST BODY...) ...) FORM...): make temporary function defns. +This is an analogue of `let' that operates on the function cell of FUNC +rather than its value cell. The FORMs are evaluated with the specified +function definitions in place, then the definitions are undone (the FUNCs +go back to their previous definitions, or lack thereof)." nil 'macro) + +(autoload 'labels "cl-macs" nil nil 'macro) + +(autoload 'macrolet "cl-macs" "\ +(macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns. +This is like `flet', but for macros instead of functions." nil 'macro) + +(autoload 'symbol-macrolet "cl-macs" "\ +(symbol-macrolet ((NAME EXPANSION) ...) FORM...): make symbol macro defns. +Within the body FORMs, references to the variable NAME will be replaced +by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)." nil 'macro) + +(autoload 'lexical-let "cl-macs" "\ +(lexical-let BINDINGS BODY...): like `let', but lexically scoped. +The main visible difference is that lambdas inside BODY will create +lexical closures as in Common Lisp." nil 'macro) + +(autoload 'lexical-let* "cl-macs" "\ +(lexical-let* BINDINGS BODY...): like `let*', but lexically scoped. +The main visible difference is that lambdas inside BODY will create +lexical closures as in Common Lisp." nil 'macro) + +(autoload 'multiple-value-bind "cl-macs" "\ +(multiple-value-bind (SYM SYM...) FORM BODY): collect multiple return values. +FORM must return a list; the BODY is then executed with the first N elements +of this list bound (`let'-style) to each of the symbols SYM in turn. This +is analogous to the Common Lisp `multiple-value-bind' macro, using lists to +simulate true multiple return values. For compatibility, (values A B C) is +a synonym for (list A B C)." nil 'macro) + +(autoload 'multiple-value-setq "cl-macs" "\ +(multiple-value-setq (SYM SYM...) FORM): collect multiple return values. +FORM must return a list; the first N elements of this list are stored in +each of the symbols SYM in turn. This is analogous to the Common Lisp +`multiple-value-setq' macro, using lists to simulate true multiple return +values. For compatibility, (values A B C) is a synonym for (list A B C)." nil 'macro) + +(autoload 'locally "cl-macs" nil nil 'macro) + +(autoload 'the "cl-macs" nil nil 'macro) + +(autoload 'declare "cl-macs" nil nil 'macro) + +(autoload 'define-setf-method "cl-macs" "\ +(define-setf-method NAME ARGLIST BODY...): define a `setf' method. +This method shows how to handle `setf's to places of the form (NAME ARGS...). +The argument forms ARGS are bound according to ARGLIST, as if NAME were +going to be expanded as a macro, then the BODY forms are executed and must +return a list of five elements: a temporary-variables list, a value-forms +list, a store-variables list (of length one), a store-form, and an access- +form. See `defsetf' for a simpler way to define most setf-methods." nil 'macro) + +(autoload 'defsetf "cl-macs" "\ +(defsetf NAME FUNC): define a `setf' method. +This macro is an easy-to-use substitute for `define-setf-method' that works +well for simple place forms. In the simple `defsetf' form, `setf's of +the form (setf (NAME ARGS...) VAL) are transformed to function or macro +calls of the form (FUNC ARGS... VAL). Example: (defsetf aref aset). +Alternate form: (defsetf NAME ARGLIST (STORE) BODY...). +Here, the above `setf' call is expanded by binding the argument forms ARGS +according to ARGLIST, binding the value form VAL to STORE, then executing +BODY, which must return a Lisp form that does the necessary `setf' operation. +Actually, ARGLIST and STORE may be bound to temporary variables which are +introduced automatically to preserve proper execution order of the arguments. +Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))." nil 'macro) + +(autoload 'define-modify-macro "cl-macs" "\ +(define-modify-macro NAME ARGLIST FUNC): define a `setf'-like modify macro. +If NAME is called, it combines its PLACE argument with the other arguments +from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)" nil 'macro) + +(autoload 'setf "cl-macs" "\ +(setf PLACE VAL PLACE VAL ...): set each PLACE to the value of its VAL. +This is a generalized version of `setq'; the PLACEs may be symbolic +references such as (car x) or (aref x i), as well as plain symbols. +For example, (setf (cadar x) y) is equivalent to (setcar (cdar x) y). +The return value is the last VAL in the list." nil 'macro) + +(autoload 'psetf "cl-macs" "\ +(psetf PLACE VAL PLACE VAL ...): set PLACEs to the values VALs in parallel. +This is like `setf', except that all VAL forms are evaluated (in order) +before assigning any PLACEs to the corresponding values." nil 'macro) + +(autoload 'remf "cl-macs" "\ +(remf PLACE TAG): remove TAG from property list PLACE. +PLACE may be a symbol, or any generalized variable allowed by `setf'. +The form returns true if TAG was found and removed, nil otherwise." nil 'macro) + +(autoload 'shiftf "cl-macs" "\ +(shiftf PLACE PLACE... VAL): shift left among PLACEs. +Example: (shiftf A B C) sets A to B, B to C, and returns the old A. +Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'rotatef "cl-macs" "\ +(rotatef PLACE...): rotate left among PLACEs. +Example: (rotatef A B C) sets A to B, B to C, and C to A. It returns nil. +Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'letf "cl-macs" "\ +(letf ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. +This is the analogue of `let', but with generalized variables (in the +sense of `setf') for the PLACEs. Each PLACE is set to the corresponding +VALUE, then the BODY forms are executed. On exit, either normally or +because of a `throw' or error, the PLACEs are set back to their original +values. Note that this macro is *not* available in Common Lisp. +As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', +the PLACE is not modified before executing BODY." nil 'macro) + +(autoload 'letf* "cl-macs" "\ +(letf* ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs. +This is the analogue of `let*', but with generalized variables (in the +sense of `setf') for the PLACEs. Each PLACE is set to the corresponding +VALUE, then the BODY forms are executed. On exit, either normally or +because of a `throw' or error, the PLACEs are set back to their original +values. Note that this macro is *not* available in Common Lisp. +As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', +the PLACE is not modified before executing BODY." nil 'macro) + +(autoload 'callf "cl-macs" "\ +(callf FUNC PLACE ARGS...): set PLACE to (FUNC PLACE ARGS...). +FUNC should be an unquoted function name. PLACE may be a symbol, +or any generalized variable allowed by `setf'." nil 'macro) + +(autoload 'callf2 "cl-macs" "\ +(callf2 FUNC ARG1 PLACE ARGS...): set PLACE to (FUNC ARG1 PLACE ARGS...). +Like `callf', but PLACE is the second argument of FUNC, not the first." nil 'macro) + +(autoload 'defstruct "cl-macs" "\ +(defstruct (NAME OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type. +This macro defines a new Lisp data type called NAME, which contains data +stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME' +copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors." nil 'macro) + +(autoload 'check-type "cl-macs" "\ +Verify that FORM is of type TYPE; signal an error if not. +STRING is an optional description of the desired type." nil 'macro) + +(autoload 'assert "cl-macs" "\ +Verify that FORM returns non-nil; signal an error if not. +Second arg SHOW-ARGS means to include arguments of FORM in message. +Other args STRING and ARGS... are arguments to be passed to `error'. +They are not evaluated unless the assertion fails. If STRING is +omitted, a default message listing FORM itself is used." nil 'macro) + +(autoload 'ignore-errors "cl-macs" "\ +Execute FORMS; if an error occurs, return nil. +Otherwise, return result of last FORM." nil 'macro) + +(autoload 'define-compiler-macro "cl-macs" "\ +(define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro. +This is like `defmacro', but macro expansion occurs only if the call to +FUNC is compiled (i.e., not interpreted). Compiler macros should be used +for optimizing the way calls to FUNC are compiled; the form returned by +BODY should do the same thing as a call to the normal function called +FUNC, though possibly more efficiently. Note that, like regular macros, +compiler macros are expanded repeatedly until no further expansions are +possible. Unlike regular macros, BODY can decide to \"punt\" and leave the +original function call alone by declaring an initial `&whole foo' parameter +and then returning foo." nil 'macro) + +;;;***