annotate lisp/cl/cl-defs.el @ 189:489f57a838ef r20-3b21

Import from CVS: tag r20-3b21
author cvs
date Mon, 13 Aug 2007 09:57:07 +0200
parents 376386a54a3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
1 ;;; cl-defs.el --- Manually maintained autoloads for cl
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
3 ;; Copyright (C) 1993, 1997 Free Software Foundation, Inc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
5 ;; Maintainer: XEmacs Development Team
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
6 ;; Keywords: extensions, lisp
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
8 ;; This file is part of XEmacs.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
10 ;; XEmacs is free software; you can redistribute it and/or modify it
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
11 ;; under the terms of the GNU General Public License as published by
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
13 ;; any later version.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
15 ;; XEmacs is distributed in the hope that it will be useful, but
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
18 ;; General Public License for more details.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
20 ;; You should have received a copy of the GNU General Public License
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
21 ;; along with XEmacs; see the file COPYING. If not, write to the
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
22 ;; Free Software Foundation, 59 Temple Place - Suite 330,
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
23 ;; Boston, MA 02111-1307, USA.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
25 ;;; Synched up with: Not synched.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
27 ;;; Commentary:
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
28
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
29 ;; At one time this file appears to have been generated by autoload.el.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
31 ;;; Code:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 ;;;***
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 ;;;### (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))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 ;;; Generated autoloads from cl/cl-macs.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 (autoload 'gensym "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 Generate a new uninterned symbol.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 The name is made by appending a number to PREFIX, default \"G\"." nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 (autoload 'gentemp "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 Generate a new interned symbol with a unique name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 The name is made by appending a number to PREFIX, default \"G\"." nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 (autoload 'typep "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 Check that OBJECT is of type TYPE.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 TYPE is a Common Lisp-style type specifier." nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 (autoload 'cl-do-pop "cl-macs" nil nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 (autoload 'get-setf-method "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 Return a list of five values describing the setf-method for PLACE.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 PLACE may be any Lisp form which can appear as the PLACE argument to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 a macro like `setf' or `incf'." nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 (autoload 'cl-struct-setf-expander "cl-macs" nil nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 (autoload 'compiler-macroexpand "cl-macs" nil nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 (autoload 'cl-compile-time-init "cl-macs" nil nil nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 ;;;***
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 ;;;### (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))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 ;;; Generated autoloads from cl/cl-macs.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 (autoload 'defun* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 (defun* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a function.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 Like normal `defun', except ARGLIST allows full Common Lisp conventions,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 and BODY is implicitly surrounded by (block NAME ...)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 (autoload 'defmacro* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 (defmacro* NAME ARGLIST [DOCSTRING] BODY...): define NAME as a macro.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 Like normal `defmacro', except ARGLIST allows full Common Lisp conventions,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 and BODY is implicitly surrounded by (block NAME ...)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 (autoload 'function* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 (function* SYMBOL-OR-LAMBDA): introduce a function.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 Like normal `function', except that if argument is a lambda form, its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 ARGLIST allows full Common Lisp conventions." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 (autoload 'destructuring-bind "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 (autoload 'eval-when "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 (eval-when (WHEN...) BODY...): control when BODY is evaluated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 If `compile' is in WHEN, BODY is evaluated when compiled at top-level.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 If `load' is in WHEN, BODY is evaluated when loaded after top-level compile.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 (autoload 'load-time-value "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 Like `progn', but evaluates the body at load time.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 The result of the body appears to the compiler as a quoted constant." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 (autoload 'case "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 (case EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 Each clause looks like (KEYLIST BODY...). EXPR is evaluated and compared
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 against each key in each KEYLIST; the corresponding BODY is evaluated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 If no clause succeeds, case returns nil. A single atom may be used in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 place of a KEYLIST of one atom. A KEYLIST of `t' or `otherwise' is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 allowed only in the final clause, and matches if no other keys match.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 Key values are compared by `eql'." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 (autoload 'ecase "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 (ecase EXPR CLAUSES...): like `case', but error if no case fits.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 `otherwise'-clauses are not allowed." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 (autoload 'typecase "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 (typecase EXPR CLAUSES...): evals EXPR, chooses from CLAUSES on that value.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 typecase returns nil. A TYPE of `t' or `otherwise' is allowed only in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 final clause, and matches if no other keys match." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 (autoload 'etypecase "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 (etypecase EXPR CLAUSES...): like `typecase', but error if no case fits.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 `otherwise'-clauses are not allowed." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 (autoload 'block "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 (block NAME BODY...): define a lexically-scoped block named NAME.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 NAME may be any symbol. Code inside the BODY forms can call `return-from'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 to jump prematurely out of the block. This differs from `catch' and `throw'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 in two respects: First, the NAME is an unevaluated symbol rather than a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 quoted symbol or other form; and second, NAME is lexically rather than
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 dynamically scoped: Only references to it within BODY will work. These
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 references may appear inside macro expansions, but not inside functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 called from BODY." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 (autoload 'return "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 (return [RESULT]): return from the block named nil.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 This is equivalent to `(return-from nil RESULT)'." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 (autoload 'return-from "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 (return-from NAME [RESULT]): return from the block named NAME.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 This jump out to the innermost enclosing `(block NAME ...)' form,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 returning RESULT from that form (or nil if RESULT is omitted).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 This is compatible with Common Lisp, but note that `defun' and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 `defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 (autoload 'loop "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 (loop CLAUSE...): The Common Lisp `loop' macro.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 Valid clauses are:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 for VAR from/upfrom/downfrom NUM to/upto/downto/above/below NUM by NUM,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 for VAR in LIST by FUNC, for VAR on LIST by FUNC, for VAR = INIT then EXPR,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 for VAR across ARRAY, repeat NUM, with VAR = INIT, while COND, until COND,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 always COND, never COND, thereis COND, collect EXPR into VAR,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 append EXPR into VAR, nconc EXPR into VAR, sum EXPR into VAR,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 count EXPR into VAR, maximize EXPR into VAR, minimize EXPR into VAR,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 if COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...],
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 unless COND CLAUSE [and CLAUSE]... else CLAUSE [and CLAUSE...],
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 do EXPRS..., initially EXPRS..., finally EXPRS..., return EXPR,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 finally return EXPR, named NAME." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 (autoload 'do "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 The Common Lisp `do' loop.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 Format is: (do ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 (autoload 'do* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 The Common Lisp `do*' loop.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 (autoload 'dolist "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 (dolist (VAR LIST [RESULT]) BODY...): loop over a list.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 Evaluate BODY with VAR bound to each `car' from LIST, in turn.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 Then evaluate RESULT to get return value, default nil." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 (autoload 'dotimes "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 (dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 Evaluate BODY with VAR bound to successive integers from 0, inclusive,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 to COUNT, exclusive. Then evaluate RESULT to get return value, default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 nil." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 (autoload 'do-symbols "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 (dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 Evaluate BODY with VAR bound to each interned symbol, or to each symbol
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 from OBARRAY." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 (autoload 'do-all-symbols "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 (autoload 'psetq "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 (psetq SYM VAL SYM VAL ...): set SYMs to the values VALs in parallel.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 This is like `setq', except that all VAL forms are evaluated (in order)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 before assigning any symbols SYM to the corresponding values." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 (autoload 'progv "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 (progv SYMBOLS VALUES BODY...): bind SYMBOLS to VALUES dynamically in BODY.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 Each SYMBOL in the first list is bound to the corresponding VALUE in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 second list (or made unbound if VALUES is shorter than SYMBOLS); then the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 BODY forms are executed and their result is returned. This is much like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 a `let' form, except that the list of symbols can be computed at run-time." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 (autoload 'flet "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 (flet ((FUNC ARGLIST BODY...) ...) FORM...): make temporary function defns.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 This is an analogue of `let' that operates on the function cell of FUNC
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 rather than its value cell. The FORMs are evaluated with the specified
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 function definitions in place, then the definitions are undone (the FUNCs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 go back to their previous definitions, or lack thereof)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 (autoload 'labels "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 (autoload 'macrolet "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 (macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 This is like `flet', but for macros instead of functions." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 (autoload 'symbol-macrolet "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 (symbol-macrolet ((NAME EXPANSION) ...) FORM...): make symbol macro defns.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 Within the body FORMs, references to the variable NAME will be replaced
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 (autoload 'lexical-let "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 (lexical-let BINDINGS BODY...): like `let', but lexically scoped.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 The main visible difference is that lambdas inside BODY will create
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 lexical closures as in Common Lisp." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 (autoload 'lexical-let* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 (lexical-let* BINDINGS BODY...): like `let*', but lexically scoped.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 The main visible difference is that lambdas inside BODY will create
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 lexical closures as in Common Lisp." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 (autoload 'multiple-value-bind "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 (multiple-value-bind (SYM SYM...) FORM BODY): collect multiple return values.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 FORM must return a list; the BODY is then executed with the first N elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 of this list bound (`let'-style) to each of the symbols SYM in turn. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 is analogous to the Common Lisp `multiple-value-bind' macro, using lists to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 simulate true multiple return values. For compatibility, (values A B C) is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 a synonym for (list A B C)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 (autoload 'multiple-value-setq "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 (multiple-value-setq (SYM SYM...) FORM): collect multiple return values.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 FORM must return a list; the first N elements of this list are stored in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 each of the symbols SYM in turn. This is analogous to the Common Lisp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 `multiple-value-setq' macro, using lists to simulate true multiple return
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 values. For compatibility, (values A B C) is a synonym for (list A B C)." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 (autoload 'locally "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 (autoload 'the "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 (autoload 'declare "cl-macs" nil nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 (autoload 'define-setf-method "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 (define-setf-method NAME ARGLIST BODY...): define a `setf' method.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 This method shows how to handle `setf's to places of the form (NAME ARGS...).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 The argument forms ARGS are bound according to ARGLIST, as if NAME were
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 going to be expanded as a macro, then the BODY forms are executed and must
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 return a list of five elements: a temporary-variables list, a value-forms
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 list, a store-variables list (of length one), a store-form, and an access-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 form. See `defsetf' for a simpler way to define most setf-methods." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 (autoload 'defsetf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 (defsetf NAME FUNC): define a `setf' method.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 This macro is an easy-to-use substitute for `define-setf-method' that works
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 well for simple place forms. In the simple `defsetf' form, `setf's of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 the form (setf (NAME ARGS...) VAL) are transformed to function or macro
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 calls of the form (FUNC ARGS... VAL). Example: (defsetf aref aset).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 Alternate form: (defsetf NAME ARGLIST (STORE) BODY...).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 Here, the above `setf' call is expanded by binding the argument forms ARGS
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 according to ARGLIST, binding the value form VAL to STORE, then executing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 BODY, which must return a Lisp form that does the necessary `setf' operation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 Actually, ARGLIST and STORE may be bound to temporary variables which are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 introduced automatically to preserve proper execution order of the arguments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 (autoload 'define-modify-macro "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 (define-modify-macro NAME ARGLIST FUNC): define a `setf'-like modify macro.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 If NAME is called, it combines its PLACE argument with the other arguments
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)" nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 (autoload 'setf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 (setf PLACE VAL PLACE VAL ...): set each PLACE to the value of its VAL.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 This is a generalized version of `setq'; the PLACEs may be symbolic
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 references such as (car x) or (aref x i), as well as plain symbols.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 For example, (setf (cadar x) y) is equivalent to (setcar (cdar x) y).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 The return value is the last VAL in the list." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 (autoload 'psetf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 (psetf PLACE VAL PLACE VAL ...): set PLACEs to the values VALs in parallel.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 This is like `setf', except that all VAL forms are evaluated (in order)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 before assigning any PLACEs to the corresponding values." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 (autoload 'remf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 (remf PLACE TAG): remove TAG from property list PLACE.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 PLACE may be a symbol, or any generalized variable allowed by `setf'.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 The form returns true if TAG was found and removed, nil otherwise." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 (autoload 'shiftf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 (shiftf PLACE PLACE... VAL): shift left among PLACEs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 Example: (shiftf A B C) sets A to B, B to C, and returns the old A.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 (autoload 'rotatef "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 (rotatef PLACE...): rotate left among PLACEs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 Example: (rotatef A B C) sets A to B, B to C, and C to A. It returns nil.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 Each PLACE may be a symbol, or any generalized variable allowed by `setf'." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 (autoload 'letf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 (letf ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 This is the analogue of `let', but with generalized variables (in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 sense of `setf') for the PLACEs. Each PLACE is set to the corresponding
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 VALUE, then the BODY forms are executed. On exit, either normally or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 because of a `throw' or error, the PLACEs are set back to their original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 values. Note that this macro is *not* available in Common Lisp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)',
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 the PLACE is not modified before executing BODY." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 (autoload 'letf* "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 (letf* ((PLACE VALUE) ...) BODY...): temporarily bind to PLACEs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 This is the analogue of `let*', but with generalized variables (in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 sense of `setf') for the PLACEs. Each PLACE is set to the corresponding
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 VALUE, then the BODY forms are executed. On exit, either normally or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 because of a `throw' or error, the PLACEs are set back to their original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 values. Note that this macro is *not* available in Common Lisp.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)',
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 the PLACE is not modified before executing BODY." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 (autoload 'callf "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 (callf FUNC PLACE ARGS...): set PLACE to (FUNC PLACE ARGS...).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 FUNC should be an unquoted function name. PLACE may be a symbol,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 or any generalized variable allowed by `setf'." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 (autoload 'callf2 "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 (callf2 FUNC ARG1 PLACE ARGS...): set PLACE to (FUNC ARG1 PLACE ARGS...).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 Like `callf', but PLACE is the second argument of FUNC, not the first." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 (autoload 'defstruct "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 (defstruct (NAME OPTIONS...) (SLOT SLOT-OPTS...)...): define a struct type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 This macro defines a new Lisp data type called NAME, which contains data
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 stored in SLOTs. This defines a `make-NAME' constructor, a `copy-NAME'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 (autoload 'check-type "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 Verify that FORM is of type TYPE; signal an error if not.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 STRING is an optional description of the desired type." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 (autoload 'assert "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 Verify that FORM returns non-nil; signal an error if not.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 Second arg SHOW-ARGS means to include arguments of FORM in message.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 Other args STRING and ARGS... are arguments to be passed to `error'.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 They are not evaluated unless the assertion fails. If STRING is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 omitted, a default message listing FORM itself is used." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 (autoload 'ignore-errors "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 Execute FORMS; if an error occurs, return nil.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 Otherwise, return result of last FORM." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 (autoload 'define-compiler-macro "cl-macs" "\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 (define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 This is like `defmacro', but macro expansion occurs only if the call to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350 FUNC is compiled (i.e., not interpreted). Compiler macros should be used
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 for optimizing the way calls to FUNC are compiled; the form returned by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 BODY should do the same thing as a call to the normal function called
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 FUNC, though possibly more efficiently. Note that, like regular macros,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 compiler macros are expanded repeatedly until no further expansions are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 possible. Unlike regular macros, BODY can decide to \"punt\" and leave the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 original function call alone by declaring an initial `&whole foo' parameter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 and then returning foo." nil 'macro)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359 ;;;***
189
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
360
489f57a838ef Import from CVS: tag r20-3b21
cvs
parents: 0
diff changeset
361 ;;; cl-defs.el ends here