[slime-devel] Different lisps, different coding systems

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
participants (2)
-
Harald Hanche-Olsen
-
Helmut Eller