I am in the process of configuring slime for emacs. So far I have read about basic functionality for common lisp such as C-c C-q
which invokes the command slime-close-parens-at-point
which places the proper number of parens where your mouse is. Another command that seemed cool was invoked by C-c C-c
and it would pass the code you are editing in a buffer to the REPL, and "compile" it.
Why won't these commands work for me?
Anyway, I have downloaded slime
via M-x list-packages
and do not seem to have this functionality (C-h w
and then any of these commands tells me that these commands do note exist). So, I saw a bunch of other slime extensions such as slime-repl', 'slime-fuzzy' and 'hippie-expand-slime'. So I again used
M-x list-packages` and downloaded them.
Still I did not have these commands. Here is the content of my emacs file relevant to slime:
;;;Common Lisp and Slime
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-20130626.1151")
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-repl-201000404")
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/hippie-expand-slime-20130226.1656")
(add-to-list 'load-path "/home/s2s2/.emacs.d/elpa/slime-fuzzy-20100404")
(require 'slime)
(setq slime-lisp-implementations
`((sbcl ("/usr/bin/sbcl"))
(ecl ("/usr/bin/ecl"))
(clisp ("/usr/bin/clisp" "-q -I"))))
(require 'slime-repl)
(require 'slime-fuzzy)
(require 'hippie-expand-slime)
When I execute M-x slime
I get the following message in the inferior-lisp
buffer where I can execute common lisp code (however, shouldn't this be the slime-repl
since I required it?):
STYLE-WARNING: redefining EMACS-INSPECT (#<BUILT-IN-CLASS T>) in DEFMETHOD
STYLE-WARNING:
Implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P.
WARNING: These Swank interfaces are unimplemented:
(DISASSEMBLE-FRAME SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN)
;; Swank started at port: 46533.
Then a slime-error
buffer is created with the contents:
Invalid protocol message:
Symbol "CREATE-REPL" not found in the SWANK package.
Line: 1, Column: 28, File-Position: 28
Stream: #<SB-IMPL::STRING-INPUT-STREAM {10056B9C33}>
(:emacs-rex (swank:create-repl nil) "COMMON-LISP-USER" t 5)
Or if you have better ideas let me know! If you need more information let me know! All help is much appreciated!
Swank is the server in common lisp (in your case, it's SBCL) as the backend of SLIME. SLIME is the frontend in emacs lisp.
slime-repl won't work by itself, it needs the corresponding plugin at the server side. You should ensure that there is swank-repl.lisp in the directory of swank. It's swank-repl.lisp including the "CREATE-REPL" function.
Your slime-repl doesn't work. So you cannot see the *slime-repl* buffer in emacs.
I prefer to use SLIME from the its official GIT repo (https://github.com/slime/slime).