[armedbear-cvs] r12548 - trunk/abcl/doc
Mark Evenson
mevenson at common-lisp.net
Tue Mar 16 08:32:26 UTC 2010
Author: mevenson
Date: Tue Mar 16 04:32:25 2010
New Revision: 12548
Log:
Documentation for using SLIME in ABCL.
Added:
trunk/abcl/doc/slime.markdown
Added: trunk/abcl/doc/slime.markdown
==============================================================================
--- (empty file)
+++ trunk/abcl/doc/slime.markdown Tue Mar 16 04:32:25 2010
@@ -0,0 +1,85 @@
+SLIME
+=====
+
+ Author: Mark Evenson
+ Created: 16-MAR-2010
+ Modified: 16-MAR-2010
+
+SLIME is divided conceptually in two parts: the "swank" server process
+which runs in the native Lisp and the "slime" client process running
+in Emacs Lisp. These instructions were were written to accompany
+ABCL, but there is nothing ABCL specific in the instructions
+
+## Obtaining SLIME
+
+SLIME does not follow a release process in the standard, so you are
+best off with obtaining the [latest version from CVS][1]. [Daily
+snapshots as gzipped tarballs are also available][2]. Your local OS
+packaging system (i.e. MacPorts on OSX) may have a version as well.
+
+[1]: http://common-lisp.net/project/slime/#downloading
+[2]: http://common-lisp.net/project/slime/snapshots/slime-current.tgz
+
+## Starting SLIME
+
+One first locates the SLIME directory on the filesystem. In the code
+that follows, the SLIME top level directory is assumed to be
+"~/work/slime", so adjust this value to your local value as you see
+fit.
+
+Then one configures Emacs with the proper initialization hooks by
+adding code something like the following to "~/.emacs":
+
+ (add-to-list 'load-path "~/work/slime")
+ (setq slime-lisp-implementations
+ '((abcl ("~/work/abcl/abcl"))
+ (abcl.svn ("~/work/abcl.svn/abcl"))
+ (sbcl ("/opt/local/bin/sbcl"))))
+ (require 'slime)
+ (slime-setup '(slime-fancy slime-asdf slime-banner))
+
+One further need to customize the setting of
+SLIME-LISP-IMPLEMENTATIONS to the location(s) of the Lisp(s) you wish to
+invoke via SLIME. The value is list of lists of the form
+
+ (SYMBOL ("/path/to/lisp"))
+
+where SYMBOL is a mnemonic for the Lisp implementation, and the string
+"/path/to/lisp" is the absolute path of the Lisp implementation that
+SLIME will associate with this symbol. In the example above, I have
+defined three implementations, the main abcl implementation, a version
+that corresponds to the latest version from SVN invoked by
+"~/work/abcl.svn/abcl", and a version of SBCL.
+
+To start SLIME one simply issues M-x slime from Emacs. This will
+start the first entry in the SLIME-LISP-IMPLEMENTATIONS list. If you
+wish to start a subsequent Lisp, prefix the invocation via M-u
+(i.e. M-u M-x slime). This will present an interactive chooser over
+all symbols contained in SLIME-LISP-IMPLEMENTATIONS.
+
+After you invoke SLIME, you'll see a buffer open up named
+*inferior-lisp* where the Lisp image is started up, the required swank
+code is complied and then loaded, finally, you'll see the "flying
+letters" resolving itself to a "CL-USER>" prompt with an inspiration
+message in the minibuffer. Your initiation to SLIME has begun...
+
+
+## Starting swank on its own
+
+In debugging, one may wish to start the swank server by itself without
+connection to Emacs. The following code will both load and start the swank server
+from a Lisp image. One merely needs to change *SLIME-DIRECTORY* to
+point to the top directory of the server process.
+
+ (defvar *slime-directory* #p"~/work/slime/") ;; Don't forget trailing slash
+ (load (merge-pathnames "swank-loader.lisp" *slime-directory*) :verbose t)
+ (swank-loader:init)
+ (swank:start-server "/tmp/swank.port") ;; remove if you don't want
+ ;; swank to start listening for connections.
+
+When this code finishes executing, an integer representing the port on
+which the server starts will be written to '/tmp/swank.port' and also
+returned as the result of evaluating SWANK:START-SERVER. One may
+connect to this port via issuing M-x slime-connect in Emacs.
+
+
More information about the armedbear-cvs
mailing list