source: trunk/abcl/doc/slime.markdown @ 12560

Last change on this file since 12560 was 12560, checked in by Mark Evenson, 15 years ago

More work on standalone documentation.

File size: 3.6 KB
RevLine 
[12548]1SLIME
2=====
3
[12560]4    Author:   Mark Evenson
5    Created:  16-MAR-2010
6    Modified: 18-MAR-2010
[12548]7
8SLIME is divided conceptually in two parts: the "swank" server process
9which runs in the native Lisp and the "slime" client process running
10in Emacs Lisp.  These instructions were were written to accompany
11ABCL, but there is nothing ABCL specific in the instructions
12
13## Obtaining SLIME
14
15SLIME does not follow a release process in the standard, so you are
16best off with obtaining the [latest version from CVS][1]. [Daily
17snapshots as gzipped tarballs are also available][2].  Your local OS
18packaging system (i.e. MacPorts on OSX) may have a version as well.
19
20[1]: http://common-lisp.net/project/slime/#downloading
21[2]: http://common-lisp.net/project/slime/snapshots/slime-current.tgz
22
23## Starting SLIME
24
25One first locates the SLIME directory on the filesystem.  In the code
26that follows, the SLIME top level directory is assumed to be
[12560]27`"~/work/slime"`, so adjust this value to your local value as you see
[12548]28fit.
29
30Then one configures Emacs with the proper initialization hooks by
31adding code something like the following to "~/.emacs":
32
[12560]33    :::common-lisp
[12556]34    (add-to-list 'load-path "~/work/slime")
35    (setq slime-lisp-implementations
36      '((abcl ("~/work/abcl/abcl"))
37        (abcl.svn ("~/work/abcl.svn/abcl"))
38        (sbcl ("/opt/local/bin/sbcl"))))
39    (require 'slime)
40    (slime-setup '(slime-fancy slime-asdf slime-banner))
[12548]41
42One further need to customize the setting of
[12560]43`SLIME-LISP-IMPLEMENTATIONS` to the location(s) of the Lisp(s) you wish to
[12548]44invoke via SLIME.  The value is list of lists of the form
45
46   (SYMBOL ("/path/to/lisp"))
47
48where SYMBOL is a mnemonic for the Lisp implementation, and the string
[12560]49`"/path/to/lisp"` is the absolute path of the Lisp implementation that
[12548]50SLIME will associate with this symbol.  In the example above, I have
51defined three implementations, the main abcl implementation, a version
52that corresponds to the latest version from SVN invoked by
[12560]53`"~/work/abcl.svn/abcl"`, and a version of SBCL.
[12548]54
[12560]55To start SLIME one simply issues `M-x slime` from Emacs.  This will
[12548]56start the first entry in the SLIME-LISP-IMPLEMENTATIONS list.  If you
[12560]57wish to start a subsequent Lisp, prefix the Emacs invocation with a
58negative argument (i.e. `C-- M-x slime`).  This will present an
59interactive chooser over all symbols contained in
60`SLIME-LISP-IMPLEMENTATIONS`.
[12548]61
62After you invoke SLIME, you'll see a buffer open up named
[12560]63`*inferior-lisp*` where the Lisp image is started up, the required swank
[12548]64code is complied and then loaded, finally, you'll see the "flying
[12560]65letters" resolving itself to a `"CL-USER>"` prompt with an inspiration
[12548]66message in the minibuffer.  Your initiation to SLIME has begun...
67
68
69## Starting swank on its own
70
71In debugging, one may wish to start the swank server by itself without
72connection to Emacs.  The following code will both load and start the swank server
73from a Lisp image.  One merely needs to change *SLIME-DIRECTORY* to
74point to the top directory of the server process.
75
[12560]76    :::commmon-lisp
[12556]77    (defvar *slime-directory* #p"~/work/slime/") ;; Don't forget trailing slash
78    (load (merge-pathnames "swank-loader.lisp" *slime-directory*) :verbose t)
79    (swank-loader:init)
80    (swank:start-server "/tmp/swank.port") ;; remove if you don't want
81                                          ;; swank to start listening for connections.
[12560]82
[12548]83When this code finishes executing, an integer representing the port on
[12560]84which the server starts will be written to `'/tmp/swank.port'` and also
85returned as the result of evaluating `SWANK:START-SERVER`.  One may
86connect to this port via issuing `M-x slime-connect` in Emacs.
[12548]87
88
Note: See TracBrowser for help on using the repository browser.