Well, I don't know if you consider it a but, but it sure seems like it. If you have a Tramp translations set up via Slime, it matches the translation off of the value given by (machine-instance). All is fine and good except that if you try to start a new local connection with `M-x slime' and your computer doesn't have the same (machine-instance) as the remote Lisp, Tramp gets confused as it uses the current connection to evaluate (machine-instance), then uses that to calculate the translation and it uses that translation to change the value used in the Swank load form for the new local Lisp image:<br>
<br>(progn (load <<some-tramp-mangled-path>> :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") <<some-other-mangled-path>> :coding-system "utf-8-unix"))<br>
<br>This makes the slime startup die at:<br><br>debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread #<THREAD<br> "initial thread" RUNNING<br> {1002941271}>:<br>
Couldn't load <<mangled>>: file does not exist.<br><br>Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.<br><br>restarts (invokable by number or by possibly-abbreviated name):<br> 0: [ABORT] Exit debugger, returning to top level.<br>
<br>(LOAD<br> <<mangled>> :VERBOSE<br> T<br> :PRINT<br> NIL<br> :IF-DOES-NOT-EXIST<br> T<br> :EXTERNAL-FORMAT<br> :DEFAULT)<br>0] <br><br>It would be nice if Slime by-passed Tramp completely on startup when invoked via `M-x Slime' (and perhaps always?). I did this by wrapping the SLIME body with a binding setting SLIME-FILENAME-TRANSLATIONS to nil, and I think it works. Here is a patch (this is my first time doing this, but I generated with M-x diff-buffer-with-file from Emacs; It is diffed against the probably pretty dated Slime, sorry):<br>
<br>diff -c /home/smithzv/quicklisp/dists/quicklisp/software/slime-20110829-cvs/slime.el /tmp/buffer-content-14752oJk<br>*** /home/smithzv/quicklisp/dists/quicklisp/software/slime-20110829-cvs/slime.el 2011-09-02 13:42:13.982182004 -0600<br>
--- /tmp/buffer-content-14752oJk 2011-10-06 18:21:02.031020994 -0600<br>***************<br>*** 1076,1082 ****<br> (defun slime (&optional command coding-system)<br> "Start an inferior^_superior Lisp and connect to its Swank server."<br>
(interactive)<br>! (let ((inferior-lisp-program (or command inferior-lisp-program))<br> (slime-net-coding-system (or coding-system slime-net-coding-system)))<br> (slime-start* (cond ((and command (symbolp command))<br>
(slime-lisp-options command))<br>--- 1076,1083 ----<br> (defun slime (&optional command coding-system)<br> "Start an inferior^_superior Lisp and connect to its Swank server."<br>
(interactive)<br>! (let ((slime-filename-translations nil)<br>! (inferior-lisp-program (or command inferior-lisp-program))<br> (slime-net-coding-system (or coding-system slime-net-coding-system)))<br>
(slime-start* (cond ((and command (symbolp command))<br> (slime-lisp-options command))<br><br>Diff finished. Thu Oct 6 18:21:02 2011<br><br>