emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108110: * lisp/emacs-lisp/bytecom


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108110: * lisp/emacs-lisp/bytecomp.el
Date: Fri, 02 Nov 2012 02:20:47 -0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108110
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11391
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2012-05-02 22:39:23 -0400
message:
  * 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 ((λ ..) ..).
modified:
  lisp/ChangeLog
  lisp/custom.el
  lisp/emacs-lisp/bytecomp.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-05-02 21:34:57 +0000
+++ b/lisp/ChangeLog    2012-05-03 02:39:23 +0000
@@ -1,3 +1,11 @@
+2012-05-03  Stefan Monnier  <address@hidden>
+
+       * 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 (bug#11391).
+       * custom.el (defcustom): Avoid ((λ ..) ..).
+
 2012-05-02  Stefan Monnier  <address@hidden>
 
        * subr.el (read-passwd): Better clean after ourselves (bug#11392).

=== modified file 'lisp/custom.el'
--- a/lisp/custom.el    2012-04-14 01:46:06 +0000
+++ b/lisp/custom.el    2012-05-03 02:39:23 +0000
@@ -335,7 +335,7 @@
          ;; expression is checked by the byte-compiler, and that
          ;; lexical-binding is obeyed, so quote the expression with
          ;; `lambda' rather than with `quote'.
-         `(list (lambda () ,standard))
+         ``(funcall #',(lambda () ,standard))
        `',standard)
     ,doc
     ,@args))

=== modified file 'lisp/emacs-lisp/bytecomp.el'
--- a/lisp/emacs-lisp/bytecomp.el       2012-03-26 19:10:00 +0000
+++ b/lisp/emacs-lisp/bytecomp.el       2012-05-03 02:39:23 +0000
@@ -2267,19 +2267,7 @@
   (when (byte-compile-warning-enabled-p 'callargs)
     (byte-compile-nogroup-warn form))
   (push (nth 1 (nth 1 form)) byte-compile-bound-variables)
-  ;; Don't compile the expression because it may be displayed to the user.
-  ;; (when (eq (car-safe (nth 2 form)) 'quote)
-  ;;   ;; (nth 2 form) is meant to evaluate to an expression, so if we have the
-  ;;   ;; final value already, we can byte-compile it.
-  ;;   (setcar (cdr (nth 2 form))
-  ;;           (byte-compile-top-level (cadr (nth 2 form)) nil 'file)))
-  (let ((tail (nthcdr 4 form)))
-    (while tail
-      (unless (keywordp (car tail))      ;No point optimizing keywords.
-        ;; Compile the keyword arguments.
-        (setcar tail (byte-compile-top-level (car tail) nil 'file)))
-      (setq tail (cdr tail))))
-  form)
+  (byte-compile-keep-pending form))
 
 (put 'require 'byte-hunk-handler 'byte-compile-file-form-require)
 (defun byte-compile-file-form-require (form)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]