Background: I'm just starting out with SLIME, and it's been just a little
bit rough because of my environment, but more promising than ILisp. The
complications are: I'm running on WinXP, I've generally used a native
version of XEmacs (21.4.13 as of today), I use some Cygwin tools, and since
I'm just getting reacquainted with Lisp, I've been trying out various
implementations.
I tried out Cygwin XEmacs over the last week, but found it less stable
overall than the native version, so I've reverted. I did get SLIME going
with Cygwin XEmacs and Cygwin CLisp (latest version), no problem. When I
switched back to native XEmacs, I had problems with SLIME initialization.
XEmacs is sending native file namestrings to CLisp, and the latter chokes
on the backslashes.
After only a little searching, I found
slime-translate-to-lisp-filename-function, and now I define it as follows
during XEmacs initialization:
(defvar slime-translate-to-lisp-filename-function
(function (lambda (s) (replace-in-string s "\\\\" "/"))))
However, I have found and fixed two places in slime.el that weren't calling
this function. These two changes allow me to get to REPL. The functions
that I changed are slime-maybe-start-lisp and slime-start-swank-server.
Here's output from cvs diff:
diff -r1.228 slime.el
968c968
< (concat slime-path slime-backend)))
---
> (slime-to-lisp-filename (concat
slime-path sli
me-backend))))
980c980
< (slime-swank-port-file))))
---
> (slime-to-lisp-filename
(slime-swank-port-file))
)))
(If there's a better format I can use for showing changes, please tell me
how to get it.)
Nice code, by the way, it only took a little guesswork to find the hook for
translating file names. Very different from my ILisp experience.