[slime-devel] Re: M-. => "Wrong type argument: stringp, nil" after cvs update to SLIME 2007-09-14

Frank Goenninger frgo at mac.com
Sat Sep 15 12:41:56 UTC 2007


Am 15.09.2007 um 14:10 schrieb Tobias C. Rittweiler:

> Frank Goenninger <frgo at mac.com> writes:
>
>> Anybody seeing this also?
>>
>> (I'm using ACL 8.1 Express Edition with GNU Emacs 22.1.1 on Mac OS X
>> 10.4.10 Intel)
>
> Could please provide the backtrace? (And if you don't get on, do an
> `M-x toggle-debug-on-error' before you do whatever causes the error.)

In my code fragment:

(defmd gnc-window ( cello::cello-window
                     cello::sound-manager )
   :md-name (gensym "gnc-window-")
   :on-key-down (c-in 'gnc-key-down-handler)
   :sound `((:open .
                   ,(lambda (self)
                      (declare (ignorable self))
                      (make-sound :paths '("open-window")   ;;; ----  
POINT /CURSOR IS AT "m" of make-sound
                                  :source (al-source-gen 1)
                                  :callback (lambda (dur sources)
                                              (loop for source in  
sources
                                                    for gain =
                                                         (max 0 (- 1  
(/ dur 3)))
                                                 do
                                                   (al-sourcef source
                                                               al_gain
                                                               gain)
                                                   (al-chk "openal  
test GAIN set"))))))
             (:keydown . "key-down")
             (:close . "close-window"))
     :ll (c-in 0)
     :lt (c-in 0)
     :lr (c-in (upts 600))
     :lb (c-in (upts (downs 800))))


Backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
   file-name-directory(nil)
   (slime-highlight-differences-in-dirname (file-name-directory  
target-filename) (file-name-directory guessed-target))
   (concat (slime-highlight-differences-in-dirname (file-name- 
directory target-filename) (file-name-directory guessed-target))  
(file-name-nondirectory target-filename))
   (slime-message "Attention: This is `%s'." (concat (slime-highlight- 
differences-in-dirname ... ...) (file-name-nondirectory target- 
filename)))
   (progn (slime-message "Attention: This is `%s'." (concat ... ...)))
   (if (and (not ...) (or t ...)) (progn (slime-message "Attention:  
This is `%s'." ...)))
   (when (and (not ...) (or t ...)) (slime-message "Attention: This  
is `%s'." (concat ... ...)))
   (let ((guessed-target ...)) (when (and ... ...) (slime-message  
"Attention: This is `%s'." ...)))
   (progn (let (...) (when ... ...)))
   (if slime-warn-when-possibly-tricked-by-M-\. (progn (let ... ...)))
   (when slime-warn-when-possibly-tricked-by-M-\. (let (...)  
(when ... ...)))
   slime-maybe-warn-for-different-source-root("/opt/common-lisp/cello/ 
cello-openal.lisp" "/private/var/data/projects/gt/app/cello-widgets/ 
gnc-window.lisp")
   (progn (slime-maybe-warn-for-different-source-root target-filename  
buffer-filename))
   (if buffer-filename (progn (slime-maybe-warn-for-different-source- 
root target-filename buffer-filename)))
   (when buffer-filename (slime-maybe-warn-for-different-source-root  
target-filename buffer-filename))
   (let ((target-filename ...) (buffer-filename ...)) (when buffer- 
filename (slime-maybe-warn-for-different-source-root target-filename  
buffer-filename)) (unless (and buffer-filename ...) (set-buffer ...)))
   (let* ((--cl-rest-- rand-51997) (filename ...)) (let (... ...)  
(when buffer-filename ...) (unless ... ...)) (goto-char (point-min)))
   (progn (let* (... ...) (let ... ... ...) (goto-char ...)))
   (destructuring-bind (filename) rand-51997 (let (... ...) (when  
buffer-filename ...) (unless ... ...)) (goto-char (point-min)))
   (cond ((eql op-51996 ...) (destructuring-bind ...  
rand-51997 ... ...)) ((eql op-51996 ...) (destructuring-bind ...  
rand-51997 ... ... ...)) ((eql op-51996 ...) (destructuring-bind ...  
rand-51997 ... ... ... ... ...)) ((eql op-51996 ...) (destructuring- 
bind ... rand-51997 ... ... ... ... ...)) (t (error "Elisp  
destructure-case failed: %S" tmp-51998)))
   (case op-51996 (:file (destructuring-bind ... rand-51997 ... ...))  
(:buffer (destructuring-bind ... rand-51997 ... ... ...)) (:source- 
form (destructuring-bind ... rand-51997 ... ... ... ... ...)) (:zip  
(destructuring-bind ... rand-51997 ... ... ... ... ...)) (t (error  
"Elisp destructure-case failed: %S" tmp-51998)))
   (let* ((tmp-51998 buffer) (op-51996 ...) (rand-51997 ...)) (case  
op-51996 (:file ...) (:buffer ...) (:source-form ...) (:zip ...)  
(t ...)))
   (destructure-case buffer ((:file filename) (let ... ... ...) (goto- 
char ...)) ((:buffer buffer-name) (let ... ...) (set-buffer buffer- 
name) (goto-char ...)) ((:source-form string) (set-buffer ...) (erase- 
buffer) (lisp-mode) (insert string) (goto-char ...)) ((:zip file  
entry) (require ...) (set-buffer ...) (goto-char ...) (re-search- 
forward ...) (let ... ... ...)))
   (progn (fset (quote file-truename-safe) (function* ...))  
(destructure-case buffer (... ... ...) (... ... ... ...)  
(... ... ... ... ... ...) (... ... ... ... ... ...)))
   (unwind-protect (progn (fset ... ...) (destructure-case  
buffer ... ... ... ...)) (if --cl-letf-bound-- (fset ... --cl-letf- 
save--) (fmakunbound ...)))
   (let* ((--cl-letf-bound-- ...) (--cl-letf-save-- ...)) (unwind- 
protect (progn ... ...) (if --cl-letf-bound-- ... ...)))
   (letf ((... ...)) (destructure-case buffer (... ... ...)  
(... ... ... ...) (... ... ... ... ... ...) (... ... ... ... ... ...)))
   (letf* ((... ...)) (destructure-case buffer (... ... ...)  
(... ... ... ...) (... ... ... ... ... ...) (... ... ... ... ... ...)))
   (flet ((file-truename-safe ... ...)) (destructure-case buffer  
(... ... ...) (... ... ... ...) (... ... ... ... ... ...)  
(... ... ... ... ... ...)))
   slime-goto-location-buffer((:file "/opt/common-lisp/cello/cello- 
openal.lisp"))
   (let* ((--cl-rest-- rand-51994) (buffer ...) (position ...)  
(hints ...)) (slime-goto-location-buffer buffer) (slime-goto-location- 
position position) (when-let (snippet ...) (slime-isearch snippet))  
(when-let (fname ...) (slime-search-call-site fname)))
   (progn (let* (... ... ... ...) (slime-goto-location-buffer buffer)  
(slime-goto-location-position position) (when-let ... ...) (when- 
let ... ...)))
   (destructuring-bind (buffer position hints) rand-51994 (slime-goto- 
location-buffer buffer) (slime-goto-location-position position) (when- 
let (snippet ...) (slime-isearch snippet)) (when-let (fname ...)  
(slime-search-call-site fname)))
   (cond ((eql op-51993 ...) (destructuring-bind ...  
rand-51994 ... ... ... ...)) ((eql op-51993 ...) (destructuring- 
bind ... rand-51994 ...)) (t (error "Elisp destructure-case failed: % 
S" tmp-51995)))
   (case op-51993 (:location (destructuring-bind ...  
rand-51994 ... ... ... ...)) (:error (destructuring-bind ...  
rand-51994 ...)) (t (error "Elisp destructure-case failed: %S"  
tmp-51995)))
   (let* ((tmp-51995 location) (op-51993 ...) (rand-51994 ...)) (case  
op-51993 (:location ...) (:error ...) (t ...)))
   (destructure-case location ((:location buffer position hints)  
(slime-goto-location-buffer buffer) (slime-goto-location-position  
position) (when-let ... ...) (when-let ... ...)) ((:error message)  
(if noerror ... ...)))
   slime-goto-source-location((:location (:file "/opt/common-lisp/ 
cello/cello-openal.lisp") (:position 532) nil))
   (cond ((equal where ...) (slime-goto-definition-other-window ...))  
((equal where ...) (let ... ...)) (t (slime-goto-source-location ...)  
(switch-to-buffer ...)))
   (cond ((eql op-51990 ...) (destructuring-bind ... rand-51991 ...))  
(t (cond ... ... ...)))
   (case op-51990 (:error (destructuring-bind ... rand-51991 ...)) (t  
(cond ... ... ...)))
   (let* ((tmp-51992 ...) (op-51990 ...) (rand-51991 ...)) (case  
op-51990 (:error ...) (t ...)))
   (destructure-case (slime-definition\.location def) ((:error  
message) (error "%s" message)) (t (cond ... ... ...)))
   (let ((def ...)) (destructure-case (slime-definition\.location  
def) (... ...) (t ...)))
   (if (and (slime-length> definitions 1) (not all-locations-equal))  
(slime-show-definitions name definitions) (let (...) (destructure- 
case ... ... ...)))
   (let ((all-locations-equal ...)) (if (and ... ...) (slime-show- 
definitions name definitions) (let ... ...)))
   slime-goto-definition("make-sound" (("(:OPERATOR MAKE- 
SOUND)" (:location ... ... nil))) nil)
   (cond ((null definitions) (if slime-edit-definition-fallback- 
function ... ...)) ((and ... ...) (if slime-edit-definition-fallback- 
function ... ...)) (t (slime-goto-definition name definitions where)))
   (let ((definitions ...)) (cond (... ...) (... ...) (t ...)))
   slime-edit-definition("make-sound")
   call-interactively(slime-edit-definition)

>
>> (How should I revert the cvs update to the previous version ? -  
>> Thx...)
>
> I very much presume that the error will not happen when you do an
>
>   M-: (setq slime-warn-when-possibly-tricked-by-M-. nil)

That is actually true, yes - when setting this to NIL I don't get the  
error.

>
> I'm interested in seeing the backtrace, though. Thanks.
>
>   -T.

Thanks, Tobias!!!

Frank

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20070915/a610317a/attachment.sig>


More information about the slime-devel mailing list