I've been seeing this problem the last few days when using M-. to follow a symbol's definition:
Debugger entered--Lisp error: (wrong-type-argument stringp nil) set-buffer(nil) (save-current-buffer (set-buffer standard-output) (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t) (slime-init-popup-buffer vars%))) (with-current-buffer standard-output (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t) (slime-init-popup-buffer vars%))) (let* ((vars% ...) (standard-output ...)) (with-current-buffer standard-output (prog1 ... ... ... ...))) (slime-with-popup-buffer (xref-buffer-name% package t emacs-snapshot) (slime-xref-mode) (slime-set-truncate-lines) (setq slime-popup-buffer-quit-function (quote slime-xref-quit)) (erase-buffer) (prog1 (progn ... ... ... ...) (assert ...) (shrink-window-if-larger-than-buffer))) (let ((xref-buffer-name% ...)) (slime-with-popup-buffer (xref-buffer-name% package t emacs-snapshot) (slime-xref-mode) (slime-set-truncate-lines) (setq slime-popup-buffer-quit-function ...) (erase-buffer) (prog1 ... ... ...))) (slime-with-xref-buffer (type symbol package emacs-snapshot) (slime-insert-xrefs xrefs) (goto-char (point-min)) (forward-line) (skip-chars-forward " ")) (if (null xrefs) (message "No references found for %s." symbol) (setq slime-next-location-function (quote slime-goto-next-xref)) (slime-with-xref-buffer (type symbol package emacs-snapshot) (slime-insert-xrefs xrefs) (goto-char ...) (forward-line) (skip-chars-forward " "))) slime-show-xrefs((("/home/ckonstanski/IandC/dev/svn/iclisp/araneida/web/graph/tracker-graph.lisp" ("(DEFGENERIC PLOT-GRAPHS (TRACKER-GRAPH ROOT-DIR))" ...) ("(DEFMETHOD PLOT-GRAPHS TRACKER-GRAPH T)" ...))) definition "plot-graphs" "#:iclisp") (cond ((null xrefs) (error "No known definition for: %s (in %s)" name ...)) (1loc (slime-push-definition-stack) (slime-pop-to-location ... where)) ((slime-length= xrefs 1) (error "%s" ...)) (t (slime-show-xrefs file-alist ... name ...))) (let* ((--cl-rest-- ...) (1loc ...) (file-alist ...)) (cond (... ...) (1loc ... ...) (... ...) (t ...))) (progn (let* (... ... ...) (cond ... ... ... ...))) (destructuring-bind (1loc file-alist) (slime-analyze-xrefs xrefs) (cond (... ...) (1loc ... ...) (... ...) (t ...))) slime-edit-definition-cont((("(DEFGENERIC PLOT-GRAPHS (TRACKER-GRAPH ROOT-DIR))" (:location ... ... ...)) ("(DEFMETHOD PLOT-GRAPHS TRACKER-GRAPH T)" (:location ... ... ...))) "plot-graphs" nil) (or (run-hook-with-args-until-success (quote slime-edit-definition-hooks) name where) (slime-edit-definition-cont (slime-find-definitions name) name where)) slime-edit-definition("plot-graphs") call-interactively(slime-edit-definition)
The only thing that has changed on my side is slime, which I have been updating from CVS. My emacs is 22.2-r2 (gentoo ebuild).
Carlos Konstanski
On Thu, 14 Aug 2008, Carlos Konstanski wrote:
Date: Thu, 14 Aug 2008 10:08:24 -0600 (MDT) From: Carlos Konstanski ckonstanski@pippiandcarlos.com To: slime-devel@common-lisp.net Subject: [slime-devel] xref issue
I've been seeing this problem the last few days when using M-. to follow a symbol's definition:
Debugger entered--Lisp error: (wrong-type-argument stringp nil) set-buffer(nil) (save-current-buffer (set-buffer standard-output) (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t) (slime-init-popup-buffer vars%))) (with-current-buffer standard-output (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t) (slime-init-popup-buffer vars%))) (let* ((vars% ...) (standard-output ...)) (with-current-buffer standard-output (prog1 ... ... ... ...))) (slime-with-popup-buffer (xref-buffer-name% package t emacs-snapshot) (slime-xref-mode) (slime-set-truncate-lines) (setq slime-popup-buffer-quit-function (quote slime-xref-quit)) (erase-buffer) (prog1 (progn ... ... ... ...) (assert ...) (shrink-window-if-larger-than-buffer))) (let ((xref-buffer-name% ...)) (slime-with-popup-buffer (xref-buffer-name% package t emacs-snapshot) (slime-xref-mode) (slime-set-truncate-lines) (setq slime-popup-buffer-quit-function ...) (erase-buffer) (prog1 ... ... ...))) (slime-with-xref-buffer (type symbol package emacs-snapshot) (slime-insert-xrefs xrefs) (goto-char (point-min)) (forward-line) (skip-chars-forward " ")) (if (null xrefs) (message "No references found for %s." symbol) (setq slime-next-location-function (quote slime-goto-next-xref)) (slime-with-xref-buffer (type symbol package emacs-snapshot) (slime-insert-xrefs xrefs) (goto-char ...) (forward-line) (skip-chars-forward " "))) slime-show-xrefs((("/home/ckonstanski/IandC/dev/svn/iclisp/araneida/web/graph/tracker-graph.lisp" ("(DEFGENERIC PLOT-GRAPHS (TRACKER-GRAPH ROOT-DIR))" ...) ("(DEFMETHOD PLOT-GRAPHS TRACKER-GRAPH T)" ...))) definition "plot-graphs" "#:iclisp") (cond ((null xrefs) (error "No known definition for: %s (in %s)" name ...)) (1loc (slime-push-definition-stack) (slime-pop-to-location ... where)) ((slime-length= xrefs 1) (error "%s" ...)) (t (slime-show-xrefs file-alist ... name ...))) (let* ((--cl-rest-- ...) (1loc ...) (file-alist ...)) (cond (... ...) (1loc ... ...) (... ...) (t ...))) (progn (let* (... ... ...) (cond ... ... ... ...))) (destructuring-bind (1loc file-alist) (slime-analyze-xrefs xrefs) (cond (... ...) (1loc ... ...) (... ...) (t ...))) slime-edit-definition-cont((("(DEFGENERIC PLOT-GRAPHS (TRACKER-GRAPH ROOT-DIR))" (:location ... ... ...)) ("(DEFMETHOD PLOT-GRAPHS TRACKER-GRAPH T)" (:location ... ... ...))) "plot-graphs" nil) (or (run-hook-with-args-until-success (quote slime-edit-definition-hooks) name where) (slime-edit-definition-cont (slime-find-definitions name) name where)) slime-edit-definition("plot-graphs") call-interactively(slime-edit-definition)
The only thing that has changed on my side is slime, which I have been updating from CVS. My emacs is 22.2-r2 (gentoo ebuild).
Carlos Konstanski
I should add that this only happens when the symbol is a method name. Normal functions are found just fine.
Carlos Konstanski
Carlos Konstanski ckonstanski@pippiandcarlos.com writes:
I should add that this only happens when the symbol is a method name. Normal functions are found just fine.
It works for me just fine in Emacs 23.x, 22.1.1, and 21.x with SBCL, for functions, generic-functions, and macros.
-T.
On Thu, 14 Aug 2008, Tobias C. Rittweiler wrote:
Date: Thu, 14 Aug 2008 18:34:33 +0200 From: Tobias C. Rittweiler tcr@freebits.de To: slime-devel@common-lisp.net Subject: [slime-devel] Re: xref issue
Carlos Konstanski ckonstanski@pippiandcarlos.com writes:
I should add that this only happens when the symbol is a method name. Normal functions are found just fine.
It works for me just fine in Emacs 23.x, 22.1.1, and 21.x with SBCL, for functions, generic-functions, and macros.
-T.
I cannot look into it more right now because I am at work. But later I will dig into this deeper, starting with the easy thing: CVS updates by date to find when it changed. I will also try with emacs 23. I want to use the gentoo ebuild, but I cannot do CVS checkouts from work because of firewall rules (emacs-23 is a CVS ebuild).
I did also notice that M-. now DOES work for finding labels. This is great!
Carlos Konstanski
Carlos Konstanski writes:
On Thu, 14 Aug 2008, Tobias C. Rittweiler wrote:
Date: Thu, 14 Aug 2008 18:34:33 +0200 From: Tobias C. Rittweiler tcr@freebits.de To: slime-devel@common-lisp.net Subject: [slime-devel] Re: xref issue
Carlos Konstanski ckonstanski@pippiandcarlos.com writes:
I should add that this only happens when the symbol is a method name. Normal functions are found just fine.
It works for me just fine in Emacs 23.x, 22.1.1, and 21.x with SBCL, for functions, generic-functions, and macros.
-T.
I cannot look into it more right now because I am at work. But later I will dig into this deeper, starting with the easy thing: CVS updates by date to find when it changed. I will also try with emacs 23. I want to use the gentoo ebuild, but I cannot do CVS checkouts from work because of firewall rules (emacs-23 is a CVS ebuild).
I did also notice that M-. now DOES work for finding labels. This is great!
Carlos Konstanski _______________________________________________ slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
OK, I found that a 2008-08-08 checkout works, while a 2008-08-09 one does not. This is true of both emacs 22.2 and 23 CVS. I also tested on three separate computers: two amd64 boxes and one x86 box. I think the problem occurs when an XREF buffer is involved; finding flets works fine in the 2008-08-08 version.
Next step: I will look at the code, and try to find out what is going wrong when the following occurs (I suspect `standard-output' does not contain a valid buffer name):
Debugger entered--Lisp error: (wrong-type-argument stringp nil) set-buffer(nil) (save-current-buffer (set-buffer standard-output) (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t)
It is always possible that an external variable is affecting the functionality. Remember my last issue, which turned out to be wholly araneida's fault? Here are my slime settings in .emacs. Could any of these have an effect?
'(slime-autodoc-mode t) '(slime-autodoc-use-multiline-p t) '(slime-compilation-finished-hook (quote (slime-maybe-list-compiler-notes slime-maybe-show-xrefs-for-notes))) '(slime-complete-symbol-function (quote slime-fuzzy-complete-symbol)) '(slime-kill-without-query-p t) '(slime-multiprocessing t) '(slime-repl-history-size 9999) '(slime-repl-return-behaviour :send-only-if-after-complete) '(slime-startup-animation nil) '(slime-truncate-lines nil)
Carlos Konstanski writes:
Next step: I will look at the code, and try to find out what is going wrong when the following occurs (I suspect `standard-output' does not contain a valid buffer name):
Debugger entered--Lisp error: (wrong-type-argument stringp nil) set-buffer(nil) (save-current-buffer (set-buffer standard-output) (prog1 (progn ... ... ... ... ...) (assert ...) (setq buffer-read-only t)
It is always possible that an external variable is affecting the functionality. Remember my last issue, which turned out to be wholly araneida's fault? Here are my slime settings in .emacs. Could any of these have an effect?
'(slime-autodoc-mode t) '(slime-autodoc-use-multiline-p t) '(slime-compilation-finished-hook (quote (slime-maybe-list-compiler-notes slime-maybe-show-xrefs-for-notes))) '(slime-complete-symbol-function (quote slime-fuzzy-complete-symbol)) '(slime-kill-without-query-p t) '(slime-multiprocessing t) '(slime-repl-history-size 9999) '(slime-repl-return-behaviour :send-only-if-after-complete) '(slime-startup-animation nil) '(slime-truncate-lines nil) -- Carlos
I figured it out. (slime-edit-definition) can no longer pop up an XREF buffer if ECB is running.