3
votes

I am trying to setup the slime mode in emacs for using common lisp. When I attemp to start slime with M-x slime I get an error message saying:

process inferior-lisp not running.

So, I checked the value of the variable inferior-lisp-program which turned out to be "/opt/sbcl/bin/sbcl". sbcl is an acronym for an implementation of common lisp known as steel bank common lisp. Note that this variable is defined in file slime.el. As I do not have sbcl (the previous directory does not even exist on my machine) installed on my machine (which runs os x 10.8.3) this will not work.

I have the clisp implementation which is located in the directory: /opt/local/bin/. I tried to change the value of the variable inferior-lisp-program by:

(setq inferior-lisp-program '/opt/local/bin/clisp/)

However, this did not work and I do not know what else to try.

  1. How can I get inferior-lisp to run and hence get slime to work?

EDIT: Here is some extra information I believe that could be helpful. If I try to just start common lisp in emacs by executing M-x run-lisp I get the following output from emacs:

(progn (load "/Users/s2s2/.emacs.d/slime/swank-loader.lisp" :verbose t) (funcall \
(read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-s\
erver") "/var/folders/wf/yjgymt8j14v2tqwjnny68wq00000gn/T/slime.28222"))          

Can't exec program: /opt/sbcl/bin/sbcl                                            

Process inferior-lisp exited abnormally with code 1                               
Can't exec program: /opt/sbcl/bin/sbcl                                            

Process inferior-lisp exited abnormally with code 1

Hope this helps! All help is greatly appreciated!

2
I don't use SLIME myself, so I'm sure someone else will have a better answer, but I would suggest using M-x apropos-value RET /opt/sbcl/bin/sbcl RET to try to find out where that value came from originally (and hence which variable needs configuring).phils
In fact you can probably give it the quoted value "/opt/sbcl/bin/sbcl" for a more precise match, should there be a lot of hits for the unquoted version.phils
@phils could you explain how to "give it the quoted value"? I am not entirely familiar with emacs yet. I have grasped a lot of basics necessary to become more efficient though :)CodeKingPlusPlus
I suspect the following will not work: (setq inferior-lisp-program '/opt/local/bin/clisp/) because you are setting the variable to a symbol when it should be a string. Try (setq inferior-lisp-program "/opt/local/bin/clisp/"), or do M-x customize-variable RET inferior-lisp-program RET.user725091
Oops, yes, good catch.user725091

2 Answers

5
votes

The variable slime-lisp-implementations has higher priority than inferior-lisp-program for slime if set; try this instead (adjust parameters accordingly):

(setq slime-lisp-implementations
      '((clisp ("/opt/local/bin/clisp" "-q -I"))
        (sbcl  ("/usr/local/bin/sbcl") :coding-system utf-8-unix)))
4
votes

The first thing to try is to run the command in a regular shell window - just type or copy and paste the executable path there and see what bash tells you:

$ sbcl < /dev/null
bash: sbcl: command not found
$ clisp < /dev/null
<<clisp splash screen>>
$ which clisp
/usr/bin/clisp

Once you find out what the correct executable is, you set inferior-lisp to it:

(setq inferior-lisp "/usr/bin/clisp")

Notes:

  1. It should be a string, not a symbol, so you need the quotes ".
  2. It should point to a file, not a directory, so your trailing slash / is wrong