I'm using SLIME and common LISP (SBCL) for some weekend hacking. I've just upgraded to emacs 26.1 on Mac OS X 10.13.5. Now I've run into a problem with the setup where I'm suddenly getting:
error in process filter: progn: Wrong number of arguments: (0 . 1), 2
I've turned on debug-on-error which provided me with
Debugger entered--Lisp error: (wrong-number-of-arguments (0 . 1) 2)
* eldoc-message("%s" #("(defun name lambda-list &body body)" 1 6 (face font-lock-keyword-face) 7 11 (face font-lock-function-name-face) 24 29 (face font-lock-type-face) 30 34 (face eldoc-highlight-function-argument)))
(progn (eldoc-message "%s" (slime-autodoc--format doc multilinep)))
(if (eldoc-display-message-p) (progn (eldoc-message "%s" (slime-autodoc--format doc multilinep))))
(if (eq doc :not-available) nil (if cache-p (progn (slime-autodoc--cache-put context doc))) (if (eldoc-display-message-p) (progn (eldoc-message "%s" (slime-autodoc--format doc multilinep)))))
(let* ((--cl-rest-- doc) (doc (if (= (length --cl-rest--) 2) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (cache-p (car --cl-rest--))) (if (eq doc :not-available) nil (if cache-p (progn (slime-autodoc--cache-put context doc))) (if (eldoc-display-message-p) (progn (eldoc-message "%s" (slime-autodoc--format doc multilinep))))))
slime-autodoc--async%(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit ("(defun name lambda-list &body ===> body <===)" t))
apply(slime-autodoc--async% (("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit ("(defun name lambda-list &body ===> body <===)" t)))
(lambda (&rest more) (apply 'slime-autodoc--async% (append '(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit) more)))(("(defun name lambda-list &body ===> body <===)" t))
funcall((lambda (&rest more) (apply 'slime-autodoc--async% (append '(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit) more))) ("(defun name lambda-list &body ===> body <===)" t))
(progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))
(if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result)))
(let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))
(cond ((eql op-12 ':ok) (let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))) ((eql op-12 ':abort) (let* ((--cl-rest-- rand-13) (condition (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (message "Evaluation aborted on %s." condition))) (t (error "slime-dcase failed: %S" tmp-14)))
(let* ((tmp-14 G11) (op-12 (car tmp-14)) (rand-13 (cdr tmp-14))) (cond ((eql op-12 ':ok) (let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))) ((eql op-12 ':abort) (let* ((--cl-rest-- rand-13) (condition (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (message "Evaluation aborted on %s." condition))) (t (error "slime-dcase failed: %S" tmp-14))))
(closure ((--cl-buffer-- . --buffer--) (--cl-cont-- . --cont--) (package) (cont lambda (&rest more) (apply 'slime-autodoc--async% (append '(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit) more))) (sexp swank:autodoc '("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) :print-right-margin 200) slime-default-connection slime-net-processes slime-buffer-connection slime-buffer-package slime-current-thread slime-dispatching-connection slime-buffer-connection t) (G15 G16 G11) (let* ((tmp-14 G11) (op-12 (car tmp-14)) (rand-13 (cdr tmp-14))) (cond ((eql op-12 ':ok) (let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))) ((eql op-12 ':abort) (let* ((--cl-rest-- rand-13) (condition (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (message "Evaluation aborted on %s." condition))) (t (error "slime-dcase failed: %S" tmp-14)))))(--buffer-- --cont-- (:ok ("(defun name lambda-list &body ===> body <===)" t)))
apply((closure ((--cl-buffer-- . --buffer--) (--cl-cont-- . --cont--) (package) (cont lambda (&rest more) (apply 'slime-autodoc--async% (append '(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit) more))) (sexp swank:autodoc '("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) :print-right-margin 200) slime-default-connection slime-net-processes slime-buffer-connection slime-buffer-package slime-current-thread slime-dispatching-connection slime-buffer-connection t) (G15 G16 G11) (let* ((tmp-14 G11) (op-12 (car tmp-14)) (rand-13 (cdr tmp-14))) (cond ((eql op-12 ':ok) (let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))) ((eql op-12 ':abort) (let* ((--cl-rest-- rand-13) (condition (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (message "Evaluation aborted on %s." condition))) (t (error "slime-dcase failed: %S" tmp-14))))) --buffer-- --cont-- (:ok ("(defun name lambda-list &body ===> body <===)" t)))
(lambda (&rest --cl-rest--) (apply (function (closure ((--cl-buffer-- . --buffer--) (--cl-cont-- . --cont--) (package) (cont lambda (&rest more) (apply 'slime-autodoc--async% (append '(("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) truncate-sym-name-if-fit) more))) (sexp swank:autodoc '("defun" "equilateral-p" ("a" "b" "c") ("setq" "candidates" ("list" "a" "b" "c")) swank::%cursor-marker%) :print-right-margin 200) slime-default-connection slime-net-processes slime-buffer-connection slime-buffer-package slime-current-thread slime-dispatching-connection slime-buffer-connection t) (G15 G16 G11) (let* ((tmp-14 G11) (op-12 (car tmp-14)) (rand-13 (cdr tmp-14))) (cond ((eql op-12 ':ok) (let* ((--cl-rest-- rand-13) (result (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (if (symbol-value G16) (progn (set-buffer (symbol-value G15)) (funcall (symbol-value G16) result))))) ((eql op-12 ':abort) (let* ((--cl-rest-- rand-13) (condition (if (= (length --cl-rest--) 1) (car --cl-rest--) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--)))))) (message "Evaluation aborted on %s." condition))) (t (error "slime-dcase failed: %S" tmp-14)))))) '--buffer-- '--cont-- --cl-rest--))((:ok ("(defun name lambda-list &body ===> body <===)" t)))
slime-dispatch-event((:return (:ok ("(defun name lambda-list &body ===> body <===)" t)) 6) #<process SLIME Lisp>)
slime-process-available-input(#<process SLIME Lisp>)
slime-net-filter(#<process SLIME Lisp> "000045(:return (:ok (\"(defun name lambda-list &body ===> body <===)\" t)) 6)")
So my current belief is that eldoc is choking on the interpolated string being passed to the function eldoc-message.
What I'm not clear on is:
- Am I barking up the wrong tree here? I'm concerned that the function isn't explicitly mentioning progn
- Am I correct in thinking the # should be followed by a single quote mark to make it a lambda?
eldoc-message
used to take any number of arguments, since Emacs 26, it takes 0 or 1 argument, however, you are supplying 2 arguments.