Let cconv use :fun-body in special forms that need it.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 11 Feb 2011 22:30:02 +0000 (17:30 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 11 Feb 2011 22:30:02 +0000 (17:30 -0500)
commit295fb2ac59b66c0e2470325a42c8e58c135ed044
tree79a1ad28fff71252a5d19b49b1d2a6827849039c
parent43e67019dfc4fb7d3474e0fbedcfec60f2300521
Let cconv use :fun-body in special forms that need it.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg.
(cconv-closure-convert-toplevel): Remove.
(cconv-lookup-let): New fun.
(cconv-closure-convert-rec): Don't bother with defs-are-legal.
Use :fun-body to handle special forms that require closing their forms.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile):
Use cconv-closure-convert instead of cconv-closure-convert-toplevel.
(byte-compile-lambda, byte-compile-make-closure):
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
Make sure cconv did its job.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
before using it.
* lisp/dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
function argument.
lisp/ChangeLog
lisp/dired.el
lisp/emacs-lisp/byte-lexbind.el
lisp/emacs-lisp/byte-opt.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cconv.el
lisp/mpc.el