aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2012-05-02 22:39:23 -0400
committerStefan Monnier2012-05-02 22:39:23 -0400
commit2bd785a208c84e7ae73884d09a1087da52780b4a (patch)
tree7f8c92f65123ad473b5ba0d761373d2352f04760
parent7ed806a75c15de00d60ef37f347b5800370fb77c (diff)
downloademacs-2bd785a208c84e7ae73884d09a1087da52780b4a.tar.gz
emacs-2bd785a208c84e7ae73884d09a1087da52780b4a.zip
* lisp/emacs-lisp/bytecomp.el
(byte-compile-file-form-custom-declare-variable): Compile all elements, since cconv.el might have introduced :fun-body, internal-make-closure, and friends for bytecomp to handle. * lisp/custom.el (defcustom): Avoid ((λ ..) ..). Fixes: debbugs:11391
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/custom.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el14
3 files changed, 10 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 40df0618c0e..69e887f0d19 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
12012-05-03 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * emacs-lisp/bytecomp.el
4 (byte-compile-file-form-custom-declare-variable): Compile all elements,
5 since cconv.el might have introduced :fun-body, internal-make-closure,
6 and friends for bytecomp to handle (bug#11391).
7 * custom.el (defcustom): Avoid ((λ ..) ..).
8
12012-05-02 Stefan Monnier <monnier@iro.umontreal.ca> 92012-05-02 Stefan Monnier <monnier@iro.umontreal.ca>
2 10
3 * subr.el (read-passwd): Better clean after ourselves (bug#11392). 11 * subr.el (read-passwd): Better clean after ourselves (bug#11392).
diff --git a/lisp/custom.el b/lisp/custom.el
index 611d5688f30..d0eadcc23ff 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -335,7 +335,7 @@ for more information."
335 ;; expression is checked by the byte-compiler, and that 335 ;; expression is checked by the byte-compiler, and that
336 ;; lexical-binding is obeyed, so quote the expression with 336 ;; lexical-binding is obeyed, so quote the expression with
337 ;; `lambda' rather than with `quote'. 337 ;; `lambda' rather than with `quote'.
338 `(list (lambda () ,standard)) 338 ``(funcall #',(lambda () ,standard))
339 `',standard) 339 `',standard)
340 ,doc 340 ,doc
341 ,@args)) 341 ,@args))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 93c6518d215..9cb0a376e36 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2267,19 +2267,7 @@ list that represents a doc string reference.
2267 (when (byte-compile-warning-enabled-p 'callargs) 2267 (when (byte-compile-warning-enabled-p 'callargs)
2268 (byte-compile-nogroup-warn form)) 2268 (byte-compile-nogroup-warn form))
2269 (push (nth 1 (nth 1 form)) byte-compile-bound-variables) 2269 (push (nth 1 (nth 1 form)) byte-compile-bound-variables)
2270 ;; Don't compile the expression because it may be displayed to the user. 2270 (byte-compile-keep-pending form))
2271 ;; (when (eq (car-safe (nth 2 form)) 'quote)
2272 ;; ;; (nth 2 form) is meant to evaluate to an expression, so if we have the
2273 ;; ;; final value already, we can byte-compile it.
2274 ;; (setcar (cdr (nth 2 form))
2275 ;; (byte-compile-top-level (cadr (nth 2 form)) nil 'file)))
2276 (let ((tail (nthcdr 4 form)))
2277 (while tail
2278 (unless (keywordp (car tail)) ;No point optimizing keywords.
2279 ;; Compile the keyword arguments.
2280 (setcar tail (byte-compile-top-level (car tail) nil 'file)))
2281 (setq tail (cdr tail))))
2282 form)
2283 2271
2284(put 'require 'byte-hunk-handler 'byte-compile-file-form-require) 2272(put 'require 'byte-hunk-handler 'byte-compile-file-form-require)
2285(defun byte-compile-file-form-require (form) 2273(defun byte-compile-file-form-require (form)