SLIME-HOWTO

This is a collection of information about using SLIME - a proto-manual.

Getting SLIME

SLIME is currently available only from CVS. It works with GNU Emacs version 20+ and XEmacs 21, and with CMUCL 18e+, recent SBCLs, OpenMCL 0.14, and recent LispWorks. The fundamental features work with all Lisp backends, though for overall featurefulness CMUCL > SBCL > OpenMCL ~= LispWorks at present.

A very nice draft of a manual for SLIME is available as a PDF file or gzipped PostScript file, courtesy of Luke Gorrie.

The commands to paste are:

cvs -d :pserver:anonymous@common-lisp.net:/project/slime/cvsroot login
# Password is "anonymous"
cvs -d :pserver:anonymous@common-lisp.net:/project/slime/cvsroot checkout slime

The current CVS sources are usually reasonably stable. During times of heavy hacking, the tag FAIRLY-STABLE is set to a reasonably up-to-date working copy. If you hit troubles, you may want to fall back to this version for a while. To get the FAIRLY-STABLE version, type:

cvs -d :pserver:anonymous@common-lisp.net:/project/slime/cvsroot checkout -r FAIRLY-STABLE slime

Installation

Installing SLIME just means putting it into your Emacs load-path and enabling it when you enter lisp-mode. Once the Emacs code is loaded, the Common Lisp code is compiled and loaded automatically and on-demand.

Here is the Elisp code. You can paste this into your ~/.emacs after changing the path on the first line to suit your installation.

(add-to-list 'load-path "/the/path/to/slime")
(require 'slime)
(add-hook 'lisp-mode-hook (lambda () (slime-mode t)))
(add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
;; Optionally, specify the lisp program you are using. Default is "lisp"
(setq inferior-lisp-program "yourlisp") 

Starting SLIME

The easiest way to start is M-x slime. This starts a Lisp process in *inferior-lisp* and has it compile and start the SLIME server ("Swank"). Emacs then automatically connects to Lisp with a TCP socket. If you give a prefix argument (C-u M-x slime) then SLIME will prompt for the command to start Lisp (otherwise it uses inferior-lisp-program).

Alternatively, it is possible to start Lisp however you like and then later start the server manually. First load swank-loader.lisp, which will automatically load the other files (and recompile them if necessary). Then you can start the server on (for example) port 4005 like this:

(swank:create-swank-server 4005)

If you need the swank server to stay running then use this command instead:

(swank:create-server :port 4005 :dont-close t)

The server will listen for one connection from Emacs. To make that connection, use M-x slime-connect.

Note: Although it is possible to connect to a Lisp on a remote machine, we haven't yet figured out what does and doesn't work without a shared filesystem.

Note: If you don't get *slime-repl* buffer and only *inferior-lisp* buffer after starting slime, probably you should check if localhost is set correctly. Also see http://article.gmane.org/gmane.lisp.slime.devel/8129

Using SLIME

One you're up and running, you can start exploring the SLIME Features.

SLIME Distributions

On Debian Linux you can install SLIME through apt-get install slime. Note that you will still have to apt-get install an emacs of your choice to make it work. On Gentoo GNU/Linux you can install SLIME via the command emerge slime-cvs. This will install a SLIME integrated nicely with the rest of the Emacs and Common Lisp infrastructure.

Other "Getting Started with SLIME" Guides

SLIME & OpenMCL & OS X by David Steuber.
SLIME & Allegro & Windows by Bill Clementson.
SLIME with 3 Windows CL Implementations by Bill Clementson.
SLIME with LispWorks Personal on Windows by Bill Clementson.
Reconnecting to a running Lisp with SLIME by Bill Clementson.
Reconnecting to a Lisp running in a remote FreeBSD jail with SLIME via ssh by Ng Pheng Siong.
Some undocumented SLIME features by Bill Clementson.
SLIME & SBCL & Windows Vista.
Installing CLISP, Emacs, and SLIME on Windows XP by Peter Christensen
Installing SBCL, Emacs, and SLIME on Windows XP by Peter Christensen


This page is linked from: SLIME  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively