Subject: Re: wrong-type-argument error in vc-bzr operations

From: Stefan Monnier <[email-masked]>
Date: Wed, 02 May 2012 22:42:48 -0400

>   Debugger entered--Lisp error: (wrong-type-argument sequencep lambda)
>   #[(s) "..." [s 20 0 2 "..."] 3](lambda)
>   (etc)

Good catch, thank you.
I've installed the patch below which should fix it,

        Stefan

=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2012-04-29 01:48:23 +0000
+++ lisp/ChangeLog	2012-05-03 02:37:04 +0000
@@ -1,3 +1,11 @@
+2012-05-03  Stefan Monnier  <[email-masked]>
+
+	* 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-04-29  Chong Yidong  <[email-masked]>
 
 	* follow.el (follow-calc-win-end): Rewrite to handle partial

=== modified file 'lisp/custom.el'
--- lisp/custom.el	2012-04-14 01:46:06 +0000
+++ lisp/custom.el	2012-05-03 02:12:56 +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'
--- lisp/emacs-lisp/bytecomp.el	2012-03-26 19:10:00 +0000
+++ lisp/emacs-lisp/bytecomp.el	2012-05-03 02:28:14 +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)