I'd like to be able to easily choose between several lisp implementations when starting slime (sbcl, cmucl, clisp). The most recent message I was able to find, on http://article.gmane.org/gmane.lisp.slime.devel/3932 suggested using slime-register-lisp-implementation, but I see that this function has been deleted. What's the current 'right' way to do this?
On 10/24/05, Cody Koeninger codykoeninger@gmail.com wrote:
I'd like to be able to easily choose between several lisp implementations when starting slime (sbcl, cmucl, clisp). The most recent message I was able to find, on http://article.gmane.org/gmane.lisp.slime.devel/3932 suggested using slime-register-lisp-implementation, but I see that this function has been deleted. What's the current 'right' way to do this?
This more recent message explains the current 'right' way: http://common-lisp.net/pipermail/slime-devel/2005-October/004148.html
- Bill Clementson
* Bill Clementson [2005-10-25 00:32+0200] writes:
This more recent message explains the current 'right' way: http://common-lisp.net/pipermail/slime-devel/2005-October/004148.html
It changed again a little since then. I renamed the variable to slime-lisp-implementations and if that variable is non-nil then the first entry is used for `M-x slime'. If slime-lisp-implementations is nil, inferior-lisp-program is used as default.
`M-- M-x slime' can be used to select another entry from slime-lisp-implementations. `C-u M-x slime' can still be used to interactively specify the command.
For example:
(setq slime-lisp-implementations '((cmucl ("/opt/cmucl/bin/lisp")) (acl-mule ("acl7") :coding-system emacs-mule-unix) (clisp ("clisp" "-q")) (xclisp ("clisp" "-q" "-M" "/tmp/x.mem") :init (lambda (file _) (format "(swank:start-server %S)\n\n" file)))))
and cmucl will be used as default.
Helmut Eller heller@common-lisp.net writes:
- Bill Clementson [2005-10-25 00:32+0200] writes:
This more recent message explains the current 'right' way: http://common-lisp.net/pipermail/slime-devel/2005-October/004148.html
It changed again a little since then. I renamed the variable to slime-lisp-implementations and if that variable is non-nil then the first entry is used for `M-x slime'. If slime-lisp-implementations is nil, inferior-lisp-program is used as default.
`M-- M-x slime' can be used to select another entry from slime-lisp-implementations. `C-u M-x slime' can still be used to interactively specify the command.
For example:
(setq slime-lisp-implementations '((cmucl ("/opt/cmucl/bin/lisp")) (acl-mule ("acl7") :coding-system emacs-mule-unix) (clisp ("clisp" "-q")) (xclisp ("clisp" "-q" "-M" "/tmp/x.mem") :init (lambda (file _) (format "(swank:start-server %S)\n\n" file)))))
and cmucl will be used as default.
So I just synced up to head and adapted by slime config to use this new mechanism. I'm sad to see that the slime buffer name is no longer based on the symbolic name of the lisp implementation choosen. That is, given this:
(setq slime-lisp-implementations '((acl8 ("/usr/local/acl80b/alisp")) (acl7 ("/usr/local/acl70.1/alisp")) (openmcl ("/usr/local/ccl/scripts/openmcl"))))
I'd hope that doing C-u - M-x slime acl8 would create a buffer named: *slime-repl acl8*. Instead it creates *slime-repl allegro*. And then if I create another connection using acl7 I get *slime-repl allegro<2>* which is not so helpful. I just spent a few minutes poking around trying to put back this feature but got lost--maybe someone who's been dealing with this code more recently can put it back.
-Peter
* Peter Seibel [2005-10-30 22:56+0100] writes:
I'd hope that doing C-u - M-x slime acl8 would create a buffer named: *slime-repl acl8*. Instead it creates *slime-repl allegro*. And then if I create another connection using acl7 I get *slime-repl allegro<2>* which is not so helpful. I just spent a few minutes poking around trying to put back this feature but got lost--maybe someone who's been dealing with this code more recently can put it back.
I will not put it back because I think the code was too ugly for such a minor feature.
Helmut.
Helmut Eller heller@common-lisp.net writes:
- Peter Seibel [2005-10-30 22:56+0100] writes:
I'd hope that doing C-u - M-x slime acl8 would create a buffer named: *slime-repl acl8*. Instead it creates *slime-repl allegro*. And then if I create another connection using acl7 I get *slime-repl allegro<2>* which is not so helpful. I just spent a few minutes poking around trying to put back this feature but got lost--maybe someone who's been dealing with this code more recently can put it back.
I will not put it back because I think the code was too ugly for such a minor feature.
Hmmm, it doesn't seem like such a minor feature to me--if I'm actually using multiple Lisp's simultaneously and I can't tell which is which, that makes the whole multiple connections feature far less useful. But if it's not your itch to scratch that's fine. I guess I'll have to find a way to hack it in myself without disturbing the essential purity of the SLIME code.
-Peter
* Peter Seibel [2005-10-30 23:20+0100] writes:
Hmmm, it doesn't seem like such a minor feature to me--if I'm actually using multiple Lisp's simultaneously and I can't tell which is which, that makes the whole multiple connections feature far less useful. But if it's not your itch to scratch that's fine. I guess I'll have to find a way to hack it in myself without disturbing the essential purity of the SLIME code.
OK. I put something in.
Helmut Eller heller@common-lisp.net writes:
- Peter Seibel [2005-10-30 23:20+0100] writes:
Hmmm, it doesn't seem like such a minor feature to me--if I'm actually using multiple Lisp's simultaneously and I can't tell which is which, that makes the whole multiple connections feature far less useful. But if it's not your itch to scratch that's fine. I guess I'll have to find a way to hack it in myself without disturbing the essential purity of the SLIME code.
OK. I put something in.
Cool, thanks. (Scared you with the idea of me checking in more code, eh. ;-))
-Peter
On Oct 30, 2005, at 4:13 PM, Helmut Eller wrote:
- Peter Seibel [2005-10-30 22:56+0100] writes:
I'd hope that doing C-u - M-x slime acl8 would create a buffer named: *slime-repl acl8*. Instead it creates *slime-repl allegro*. And then if I create another connection using acl7 I get *slime-repl allegro<2>* which is not so helpful. I just spent a few minutes poking around trying to put back this feature but got lost--maybe someone who's been dealing with this code more recently can put it back.
I will not put it back because I think the code was too ugly for such a minor feature.
Allow me to put another word of support in for this feature. It would be very helpful in situations where you're working with multiple images which each have different meanings - for instance, a basic SBCL core, and a SBCL core with McCLIM loaded. I do this sort of thing all the time, both at home and at work.
-- Brian Mastenbrook brian@mastenbrook.net http://brian.mastenbrook.net/