Merge from trunk
[bpt/emacs.git] / lisp / ChangeLog
CommitLineData
3e21b6a7
SM
12011-02-21 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * subr.el (with-output-to-temp-buffer): New macro.
4
5 * simple.el (count-words-region): Don't use interactive-p.
6
7 * minibuffer.el: Use lexical-binding. Replace all uses of lexical-let.
8
9 * emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one):
10 Call byte-compile rather than byte-compile-lambda.
11
12 * emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod):
13 Rename from byte-compile-file-form-defmethod.
14 Don't byte-compile-lambda.
15 (eieio-byte-compile-defmethod-param-convert): Rename from
16 byte-compile-defmethod-param-convert.
17
18 * emacs-lisp/cl-extra.el (cl-macroexpand-all): Don't assume that the
19 value of (function (lambda ...)) is self-quoting.
20
21 * emacs-lisp/cconv.el: Use lexical-binding.
22 (cconv--lookup-let): Rename from cconv-lookup-let.
23 (cconv-closure-convert-rec): Fix handling of captured+mutated
24 arguments in defun/defmacro.
25
26 * emacs-lisp/bytecomp.el (byte-compile-lapcode):
27 Turn stack-ref-0 into dup.
28 (byte-compile-form): Don't indirect-function since it can signal
29 errors.
30 (byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs
31 being relative to top rather than to bottom in the byte-code.
32 (with-output-to-temp-buffer): Remove.
33 (byte-compile-with-output-to-temp-buffer): Remove.
34
35 * emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops):
36 Remove interactive-p.
37 (byte-optimize-lapcode): Update optimizations now that stack-refs are
38 relative to the top rather than to the bottom.
39
e0f57e65
SM
402011-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
41
42 * subr.el (save-window-excursion): New macro, moved from C.
43 * emacs-lisp/lisp-mode.el (save-window-excursion): Don't touch.
44 * emacs-lisp/cconv.el (cconv-closure-convert-rec, cconv-analyse-form):
45 Don't handle save-window-excursion any more.
46 * emacs-lisp/bytecomp.el (interactive-p, save-window-excursion):
47 Don't use the byte-code any more.
48 (byte-compile-form): Check macro expansion was done.
49 (byte-compile-save-window-excursion): Remove.
50 * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
51 Ignore save-window-excursion. Don't macroepand any more.
52
9a05edc4
SM
532011-02-18 Stefan Monnier <monnier@iro.umontreal.ca>
54
55 * emacs-lisp/pcase.el (pcase--expand, pcase--u, pcase--u1, pcase--q1):
56 Avoid destructuring-bind which results in poorer code.
57
b38b1ec0
SM
582011-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
59
60 * files.el (lexical-binding): Add a safe-local-variable property.
61
62 * emacs-lisp/cl-macs.el (cl-byte-compile-block): Disable optimization
63 in lexbind, because it needs a different implementation.
64
65 * emacs-lisp/cconv.el (cconv--set-diff, cconv--set-diff-map)
66 (cconv--map-diff, cconv--map-diff-elem, cconv--map-diff-set): New funs.
67 (cconv--env-var): New constant.
68 (cconv-closure-convert-rec): Use it and use them. Fix a typo that
69 ended up forgetting to remove entries from lmenvs in `let'.
70 For `lambda' use the outer `fvrs' when building the closure and don't
71 forget to remove `vars' from the `emvrs' and `lmenvs' of the body.
72
73 * emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
74 Correctly extract arglist from `closure's.
75 (byte-compile-cl-warn): Compiler-macros are run earlier now.
76 (byte-compile-top-level): Bind byte-compile-lexical-environment to nil,
77 except for lambdas.
78 (byte-compile-form): Don't run the compiler-macro expander here.
79 (byte-compile-let): Merge with byte-compile-let*.
80 Don't preserve-body-value if the body's value was discarded.
81
82 * emacs-lisp/byte-opt.el (byte-inline-lapcode): Check how many elements
83 are added to the stack.
84 (byte-compile-splice-in-already-compiled-code): Don't touch lexical nor
85 byte-compile-depth now that byte-inline-lapcode does it for us.
86 (byte-compile-inline-expand): Don't inline dynbind byte code into
87 lexbind code, since it has to be done differently.
88
ce5b520a
SM
892011-02-12 Stefan Monnier <monnier@iro.umontreal.ca>
90
91 * emacs-lisp/byte-lexbind.el: Delete.
92
93 * emacs-lisp/bytecomp.el (byte-compile-current-heap-environment)
94 (byte-compile-current-num-closures): Remove vars.
95 (byte-vec-ref, byte-vec-set): Remove byte codes.
96 (byte-compile-arglist-vars, byte-compile-make-lambda-lexenv): Move from
97 byte-lexbind.el.
98 (byte-compile-lambda): Never build a closure.
99 (byte-compile-closure-code-p, byte-compile-make-closure): Remove.
100 (byte-compile-closure): Simplify.
101 (byte-compile-top-level): Don't mess with heap environments.
102 (byte-compile-dynamic-variable-bind): Always maintain
103 byte-compile-bound-variables.
104 (byte-compile-variable-ref, byte-compile-variable-set): Always just use
105 the stack for lexical vars.
106 (byte-compile-push-binding-init): Simplify.
107 (byte-compile-not-lexical-var-p): New function, moved from cconv.el.
108 (byte-compile-bind, byte-compile-unbind): New functions, moved and
109 simplified from byte-lexbind.el.
110 (byte-compile-let, byte-compile-let*): Simplify.
111 (byte-compile-condition-case): Don't add :fun-body to the bound vars.
112 (byte-compile-defmacro): Simplify.
113
114 * emacs-lisp/cconv.el (cconv-not-lexical-var-p): Remove.
115 (cconv-freevars, cconv-analyse-function, cconv-analyse-form):
116 Use byte-compile-not-lexical-var-p instead.
117
118 * help-fns.el (describe-function-1): Fix paren typo.
119
120 * emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops)
121 (byte-optimize-lapcode): Remove byte-vec-ref and byte-vec-set.
122
295fb2ac
SM
1232011-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
124
125 * emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg.
126 (cconv-closure-convert-toplevel): Remove.
127 (cconv-lookup-let): New fun.
128 (cconv-closure-convert-rec): Don't bother with defs-are-legal.
129 Use :fun-body to handle special forms that require closing their forms.
130
131 * emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile):
132 Use cconv-closure-convert instead of cconv-closure-convert-toplevel.
133 (byte-compile-lambda, byte-compile-make-closure):
134 * emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
135 Make sure cconv did its job.
136
137 * emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
138 before using it.
139
140 * dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
141 function argument.
142
43e67019
SM
1432011-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
144
145 * emacs-lisp/bytecomp.el (byte-compile-lambda): Fix `fun' that was not
146 renamed to `bytecomp-fun'.
147
148 * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
149 Understand the :fun-body case for catch, save-window-excursion, and
150 condition-case.
151 (byte-compile-maybe-push-heap-environment): No need when nclosures is
152 zero and byte-compile-current-num-closures is -1.
153
154 * emacs-lisp/cconv.el (cconv-not-lexical-var-p): New function.
155 (cconv-freevars): Use it.
156 (cconv-closure-convert-rec): Avoid `position'.
157 (cconv-analyse-function): New function.
158 (cconv-analyse-form): Use it. `inclosure' can't be nil any more.
159 Check lexical vars at let-binding time rather than when referenced.
160 For defuns to be in an empty environment and lambdas to take lexical args.
161 Pay attention to the need to build closures in catch, unwind-protect,
162 save-window-excursion, condition-case, and track-mouse.
163 Fix defconst/defvar handling.
164
d779e73c
SM
1652011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
166
167 * emacs-lisp/cconv.el (cconv-mutated, cconv-captured)
168 (cconv-captured+mutated, cconv-lambda-candidates): Fix up declaration.
169 (cconv-freevars): Minor cleanup. Fix handling of the error var in
170 condition-case.
171
172 * emacs-lisp/bytecomp.el (byte-compile-catch)
173 (byte-compile-unwind-protect, byte-compile-track-mouse)
174 (byte-compile-condition-case, byte-compile-save-window-excursion):
175 Provide a :fun-body alternative, so that info can be propagated from the
176 surrounding context, as is the case for lexical scoping.
177
94d11cb5
IK
1782011-02-10 Igor Kuzmin <kuzminig@iro.umontreal.ca>
179
180 * emacs-lisp/cconv.el: New file.
181 * emacs-lisp/bytecomp.el: Use cconv.
182 (byte-compile-file-form, byte-compile):
183 Call cconv-closure-convert-toplevel when requested.
184 * server.el:
185 * mpc.el:
186 * emacs-lisp/pcase.el:
187 * doc-view.el:
188 * dired.el: Use lexical-binding.
189
590130fb
SM
1902010-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
191
192 * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Don't use #'.
193
a0ee6f27
SM
1942010-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
195
196 * emacs-lisp/edebug.el (edebug-eval-defun, edebug-eval):
197 * emacs-lisp/lisp-mode.el (eval-last-sexp-1, eval-defun-1):
198 * ielm.el (ielm-eval-input):
199 * simple.el (eval-expression): Use new eval arg to obey lexical-binding.
200
defb1411
SM
2012010-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
202
203 * emacs-lisp/bytecomp.el (byte-compile-condition-case): Use push.
204
f07a954e
SM
2052010-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
206
207 * subr.el (with-lexical-binding): Remove.
208
4a330052
SM
2092010-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
210
211 * emacs-lisp/byte-lexbind.el (byte-compile-compute-lforminfo):
212 specialp -> special-variable-p.
213
3c3ddb98
SM
2142010-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
215
216 * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
217 Don't macroexpand before evaluating in eval-and-compile, in case
218 `body's macro expansion uses macros and functions defined in itself.
219
f43cb649
SM
2202010-06-14 Stefan Monnier <monnier@iro.umontreal.ca>
221
222 * emacs-lisp/bytecomp.el (byte-compile-check-variable):
223 Update byte-compile-not-obsolete-var to byte-compile-not-obsolete-vars.
224
225 * Makefile.in (.el.elc): Increase max-lisp-eval-depth.
226
894e369d 2272006-12-04 Miles Bader <miles@gnu.org>
89877f5f 228
894e369d
SM
229 * Makefile.in (COMPILE_FIRST_STACK_DEPTH): New variable.
230 (compile, compile-always): Use it.
133a8d82 231
894e369d 2322005-10-24 Miles Bader <miles@gnu.org>
89877f5f 233
894e369d 234 * subr.el (functionp): Re-remove.
89877f5f 235
894e369d
SM
236 * emacs-lisp/bytecomp.el (byte-compile-closure): Add optional
237 ADD-LAMBDA argument, which we just pass to `byte-compile-lambda'.
238 (byte-compile-defun): Use ADD-LAMBDA arg to `byte-compile-closure'
239 instead of adding lambda ourselves.
9d1f18b5 240
894e369d 2412004-08-09 Miles Bader <miles@gnu.org>
9d1f18b5 242
894e369d 243 Changes from merging the funvec patch:
b81a0b56 244
894e369d
SM
245 * emacs-lisp/bytecomp.el (byte-compile-make-closure): Use `curry'
246 instead of `vector' to create compiled closures.
b81a0b56 247
894e369d 248 Merge funvec patch.
b81a0b56 249
894e369d 2502004-04-29 Miles Bader <miles@gnu.org>
69f18acc 251
894e369d
SM
252 * emacs-lisp/bytecomp.el (byte-compile-top-level): Add new entries
253 to `byte-compile-lexical-environment' at the start, not end.
254 (byte-compile-delay-out): Correctly default STACK-ADJUST to zero.
5fee75d4 255
894e369d
SM
256 * emacs-lisp/byte-opt.el (byte-opt-update-stack-params):
257 Don't crash on no-op lapcode entries (car is nil).
69f18acc 258
894e369d
SM
259 * emacs-lisp/byte-lexbind.el (byte-compile-make-lambda-lexenv):
260 Push a lexvar onto lexenv, not a vinfo!
9766adfb 261
894e369d 2622004-04-11 Miles Bader <miles@gnu.org>
9766adfb 263
894e369d
SM
264 * emacs-lisp/bytecomp.el (byte-compile-top-level):
265 Correctly analyze lexically-bound arguments.
9766adfb 266
894e369d
SM
267 * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
268 Use `append' instead of `nconc'.
56b2854f 269
894e369d
SM
270 * emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo):
271 Don't use backquote to make a mutable data-structure.
272 (byte-compile-lvarinfo-num-refs, byte-compile-lvarinfo-num-sets):
273 Rename to use `num-' instead of `num'.
274 (byte-compile-make-lambda-lexenv): Adjust accordingly.
56b2854f 275
894e369d 2762004-04-10 Miles Bader <miles@gnu.org>
6534e58a 277
894e369d
SM
278 * emacs-lisp/byte-lexbind.el (byte-compile-compute-lforminfo):
279 Look at variable's global specialp state too.
d6ceb380 280
894e369d 2812004-04-09 Miles Bader <miles@gnu.org>
d6ceb380 282
894e369d
SM
283 * emacs-lisp/byte-opt.el (byte-optimize-lapcode):
284 Default initial-stack-depth to 0.
285 (byte-optimize-lapcode): Discard the right number of values in
286 the stack-set+discard-->discard optimization.
c760f19e 287
894e369d 2882004-04-02 Miles Bader <miles@gnu.org>
2e9b968b 289
894e369d
SM
290 * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Setup the lexical
291 environment if lexical-binding is enabled.
2e9b968b 292
894e369d 2932003-10-14 Miles Bader <miles@gnu.org>
6d00ce04 294
894e369d
SM
295 * emacs-lisp/macroexp.el (macroexpand-all-1): Special-case
296 `backquote-list*' to avoid stack overflows.
baf1a55e 297
894e369d 2982003-04-04 Miles Bader <miles@gnu.org>
6ee21b07 299
894e369d 300 * help-fns.el (help-function-arglist): Handle interpreted closures.
f0dbdc25 301
894e369d 3022002-11-20 Miles Bader <miles@gnu.org>
f0dbdc25 303
894e369d
SM
304 * emacs-lisp/bytecomp.el (byte-compile-stack-adjustment):
305 Correctly handle discardN* operators.
306 * emacs-lisp/byte-opt.el (byte-optimize-lapcode): Fix stack-depth
307 tracking errors.
e044e4fc 308
894e369d 3092002-08-26 Miles Bader <miles@gnu.org>
e044e4fc 310
894e369d
SM
311 * international/mule.el (make-char): Macroexpand call to
312 charset-id constructed by `byte-compile' hook.
2e9b968b 313
894e369d 314 * emacs-lisp/macroexp.el (macroexpand-all-1): Expand defconst value.
2e9b968b 315
894e369d
SM
316 * emacs-lisp/byte-opt.el (byte-opt-update-stack-params): New macro.
317 (byte-optimize-lapcode): Keep track of stack-depth in final pass too.
318 Add more optimizations for lexical binding.
319 (byte-compile-inline-expand): Macroexpand result of inlining.
baf1a55e 320
894e369d
SM
321 * emacs-lisp/bytecomp.el (byte-compile-lambda): Update call to
322 byte-compile-closure-initial-lexenv-p.
323 (byte-discardN-preserve-tos): Alias to byte-discardN.
324 (byte-compile-push-binding-init): Don't push unused variables on
325 init-lexenv.
326 (byte-compile-push-binding-init): Don't use LFORMINFO if it's nil.
327 (byte-compile-lambda): Don't look at lexical environment unless
328 we're using lexical binding.
329 (byte-compile-defmacro): Correctly generate macros.
330
331 * emacs-lisp/byte-lexbind.el (byte-compile-unbind): Optimize the
332 dynamic-bindings-only case.
333 (byte-compile-bind): Don't special-case unused lexical variables.
334
335 * emacs-lisp/disass.el (disassemble-1): Print arg for discardN ops.
336
3372002-08-19 Miles Bader <miles@gnu.org>
338
339 * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1):
340 Handle `byte-discardN-preserve-tos' pseudo-op.
341 (byte-compile-side-effect-and-error-free-ops): Add `byte-stack-ref'.
342 (byte-compile-side-effect-free-ops): Add `byte-vec-ref'.
343 (byte-optimize-lapcode): Add some cases for stack-set/ref ops.
344 Add tracking of stack-depth. Unfinished code to collapse
345 lexical-unbinding sequences.
346
347 * emacs-lisp/bytecomp.el (byte-compile-lapcode):
348 Handle `byte-discardN-preserve-tos' pseudo-op.
349 (byte-compile-top-level): If there are lexical args, output a TAG
350 op to record the initial stack-depth for the optimizer.
351
3522002-08-17 Miles Bader <miles@gnu.org>
353
354 * emacs-lisp/bytecomp.el (byte-discardN): Add byte-defop.
355 (byte-compile-lapcode): Include byte-discardN.
356 (byte-compile-lambda): Fixup closure detection.
357 (byte-compile-top-level): Handle arguments for a lexical lambda.
358 (byte-compile-lexical-variable-ref, byte-compile-variable-ref)
359 (byte-compile-variable-set): Use byte-compile-stack-set/ref.
360 (byte-compile-discard): Add new parameters NUM and PRESERVE-TOS.
361 (byte-compile-stack-ref, byte-compile-stack-set): New functions.
362 (byte-compile-push-binding-init): Get the variable list properly
363 from LFORMINFO.
364
365 * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
366 Ignore setq'd variables we're not interested in.
367 (byte-compile-make-lambda-lexenv): Add assertion that closed-over
368 variables be heap allocated.
369 (byte-compile-closure-initial-lexenv-p): Rename from
370 byte-compile-closure-lexenv-p.
371 (byte-compile-non-stack-bindings-p): Get the variable list
372 properly from LFORMINFO.
373 (byte-compile-maybe-push-heap-environment): Handle the
374 no-closed-over-variables case correctly.
375 (byte-compile-bind): Use byte-compile-stack-set/ref.
376 Don't bother modifying INIT-LEXENV as no one will see the changes.
377 (byte-compile-unbind): Call `byte-compile-discard' to handle
378 unbinding lexical bindings.
379
380 * emacs-lisp/disass.el (disassemble-internal): Handle closures.
381 (disassemble-1): Handle new bytecodes.
382 * emacs-lisp/byte-opt.el (disassemble-offset): Handle new bytecodes.
383
3842002-06-16 Miles Bader <miles@gnu.org>
385
386 * emacs-lisp/macroexp.el (macroexp-accumulate): New macro.
387 (macroexpand-all-forms, macroexpand-all-clauses): Use it.
388 * Makefile.in (compile): Undo previous change.
389
3902002-06-14 Miles Bader <miles@gnu.org>
391
392 * Makefile.in (COMPILE_FIRST): Add `emacs-lisp/macroexp.el'.
393 (compile): Add a special case that compiles `emacs-lisp/macroexp.el'
394 with an increased max-lisp-eval-depth.
395
396 * emacs-lisp/bytecomp.el: Provide `bytecomp-preload', at the
397 beginning of the file. Require `byte-lexbind' at compile time.
398 Add a few doc string.
399 (byte-compile-push-bytecodes)
400 (byte-compile-push-bytecode-const2): New macros.
401 (byte-compile-lapcode): Use them. Do general code cleanup.
402 (byte-compile-initial-macro-environment): Expand macros in
403 byte-compile-eval before passing to byte-compile-top-level.
404 (byte-compile): Use the `byte-compile-initial-macro-environment'.
405
406 * emacs-lisp/byte-lexbind.el: Require `bytecomp-preload' instead of
407 `bytecomp'.
408 (byte-compile-bind): Use `byte-compile-dynamic-variable-bind' to bind
409 dynamic variables.
410 (byte-compile-maybe-push-heap-environment): Fix function name typo.
411
4122002-06-13 Miles Bader <miles@gnu.org>
413
414 Byte compiler lexical binding support (not finished yet):
415 * emacs-lisp/bytecomp.el: Require `macroexp'.
416 (byte-compile-lexical-environment)
417 (byte-compile-current-heap-environment)
418 (byte-compile-current-num-closures): New variables.
419 (0, 178, 179, 180, 181): New byte-opcodes.
420 (byte-compile-lapcode): Handle stack-ref/set opcodes. Signal an
421 error if a delay-output placeholder is not filled in yet.
422 (byte-compile-file-form, byte-compile): Expand all macros with
423 `macroexpand-all'.
424 (byte-compile-file-form-defsubst, byte-compile-form): Don't expand
425 macros here.
426 (byte-compile-make-lambda-lexenv): Autoload.
427 (byte-compile-lambda): Initial code for handling lexically-bound
428 arguments and closures; doesn't work yet.
429 (byte-compile-closure-code-p, byte-compile-make-closure)
430 (byte-compile-closure): New functions.
431 (byte-compile-check-variable, byte-compile-dynamic-variable-op)
432 (byte-compile-dynamic-variable-bind)
433 (byte-compile-lexical-variable-ref, byte-compile-variable-set):
baf1a55e 434 New functions.
894e369d
SM
435 (byte-compile-variable-ref): Remove second argument. Now only
436 handles real variable references (not setting or binding).
437 (byte-compile-push-unknown-constant)
438 (byte-compile-resolve-unknown-constant): New functions.
439 (byte-compile-funarg, byte-compile-funarg-2): Functions removed.
440 (byte-compile-function-form): Use either `byte-compile-constant'
441 or `byte-compile-closure'.
442 (byte-compile-setq): Use `byte-compile-variable-set' instead of
443 `byte-compile-variable-ref'.
444 (apply, mapcar, mapatoms, mapconcat, mapc, sort):
445 `byte-defop-compiler-1's removed.
446 (byte-compile-while): Make sure lexically-bound variables inside
447 the loop don't get stored in an environment outside the loop.
448 (byte-compile-compute-lforminfo): Autoload.
449 (byte-compile-push-binding-init): New function.
450 (byte-compile-let, byte-compile-let*): Handle lexical binding.
451 (byte-compile-defun): Use `byte-compile-closure' to do the work.
452 (byte-compile-defmacro): Use `byte-compile-make-closure'.
453 (byte-compile-defvar): Expand the generated call to `push' since
454 we're past macroexpansion already.
455 (byte-compile-stack-adjustment): New function.
456 (byte-compile-out): Make second arg optional. Rewrite for clarity.
457 (byte-compile-delay-out, byte-compile-delayed-out): New functions.
458
459 * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
460 Don't expand macros here.
461
462 * emacs-lisp/macroexp.el (macroexpand-all-1): Expand defmacro forms.
463
464 * emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo)
465 (byte-compile-lforminfo-add-var)
466 (byte-compile-lforminfo-note-closure)
467 (byte-compile-compute-lforminfo)
468 (byte-compile-lforminfo-from-lambda)
469 (byte-compile-lforminfo-analyze)
470 (byte-compile-heapenv-add-accessible-env)
471 (byte-compile-heapenv-ensure-access)
472 (byte-compile-rearrange-let-clauses, byte-compile-bind)
473 (byte-compile-unbind): Fix a bunch of typos.
474
4752002-06-12 Miles Bader <miles@gnu.org>
476
477 * emacs-lisp/byte-lexbind.el, emacs-lisp/macroexp.el: New files.
478
479 * subr.el (functionp): Function removed (now a subr).
480 * help-fns.el (describe-function-1): Handle interpreted closures.
481
482;; arch-tag: bd1b5b8b-fdb2-425d-9ac2-20689fb0ee70