I have this in my .emacs:
(setf slime-lisp-implementations '((sbcl ("sbcl") :coding-system utf-8-unix) (cmucl ("cmucl") :coding-system iso-latin-1-unix))) (setf slime-default-lisp 'sbcl)
This works mostly, but not if I first run a slime with sbcl and then run another with cmucl in the same emacs. (It doesn't matter if I quit the slime one or not.)
Before I tell you what happens, let me lay the blame at the feet of the global variable slime-net-coding-system.
It is set iso-latin-1-unix after I start a cmucl slime. It becomes utf-8-unix after I run an sbcl slime, and is not reset to iso-latin-1-unix when I run a cmucl slime. But if I reset it manually, the problem does not occur.
So what IS the problem, then?
What I see in the *inferior-lisp* buffer is as follows:
;; Swank started at port: 54163. nil ;;; COMMON-LISP-USER:
Error in function lisp::assert-error: The assertion (eq swank-backend::ef ':iso-latin-1-unix) failed. [Condition of type simple-error]
Restarts: 0: [continue] Retry assertion. 1: [abort ] Return to Top-Level.
Debug (type H for help)
(lisp::assert-error (eq swank-backend::ef ':iso-latin-1-unix) nil nil) Source: Error finding source: File-error in function lisp::fd-open: Error opening #P"target:code/macros.lisp", Permission denied. 0] Error in function lisp::assert-error: The assertion (eq swank-backend::ef ':iso-latin-1-unix) failed. Error flushed ... 0] Error in function lisp::assert-error: The assertion (eq swank-backend::ef ':iso-latin-1-unix) failed. Error flushed ...
and this repeats forever until I kill the Lisp.
- Harald
+ Helmut Eller heller@common-lisp.net:
| * Harald Hanche-Olsen [2005-11-20 01:42+0100] writes: | | > So what IS the problem, then? | | I don't know exactly. In the CVS version slime-net-coding-system is | no longer modified. I hope that fixes the problem.
Uh, it now creates a new problem.
I start a slime running sbcl. I quit it. I start a slime running cmucl. No problem works fine. I start a slime running sbcl.
In the latest sbcl slime, I type in a string with a non-latin-1 character: "a→b". The result is this emacs message (in minibuffer and *Messages*):
cond: Coding system iso-latin-1-unix not suitable for "000050(:emacs-rex (swank:listener-eval "\"a→b\" ") "COMMON-LISP-USER" :repl-thread 2) "
I should add that typing "a→b" in the first of the sbcl slimes does not cause this problem.
- Harald
* Harald Hanche-Olsen [2005-11-21 23:16+0100] writes:
Uh, it now creates a new problem.
I start a slime running sbcl. I quit it. I start a slime running cmucl. No problem works fine. I start a slime running sbcl.
I can't reproduce it and I'm now tired of fuzzing around with character encoding issues. Sorry.
Helmut.
+ Helmut Eller heller@common-lisp.net:
| I can't reproduce it and I'm now tired of fuzzing around with | character encoding issues. Sorry.
Okay, thanks for trying. I'll try to figure it out myself when I find some spare time. That is possibly not until late December though, so don't let that stop anyone else from looking into it. I can probably live with this meanwhile.
- Harald