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