A new development snapshot (j 0.20.2.20, ABCL 0.0.3.18) is available:
http://armedbear.org/j-jar.zip (just j.jar)
For the adventurous few who build j from source, this snapshot features
the bare beginnings of a port of slime to j. Slime is the "Superior
Lisp Interaction Mode for Emacs", developed by Eric Marsden, Luke
Gorrie, Helmut Eller and others. Those guys did all the hard work; I'm
Note that slime-for-j won't work at all with this snapshot if you just
download j-jar.zip and do "java -jar j.jar"; you must download j.zip
(or use anonymous CVS) and build j from source. (This is not by design;
I only discovered it myself after uploading the snapshot.)
To start slime, do Alt-X, "slime", and wait for the "Slime connected!"
message to appear in the status bar.
Currently slime-for-j implements three things that work more or less
Type, say, "(car " at the repl, and the signature of the function
will appear in the status bar: "(car list)".
This works by mapping the space key to (slime:slime-space) in Lisp
source buffers and Lisp shells.
For various reasons, not all functions come with arglist
information (for example, unresolved autoloads don't), so don't be
alarmed if nothing appears in the status bar.
2. Symbol completion.
Type "*d-p-d" (or "f--e") at the repl and hit Tab. Less exotic
completions work too: type "lam" and then keep hitting Tab to cycle
through the possibilities.
Unlike slime-for-emacs, the current incarnation of slime-for-j
does not provide a choosable list when there are multiple possible
completions; you need to keep hitting Tab to see them all.
Symbol completion is mapped to Tab in the repl; it's available in
Lisp source buffers too, but there it's mapped to Ctrl Alt I (since
Tab is reserved for indenting).
Slime maps Alt . to (slime:edit-definition) in the repl and in Lisp
source buffers. EDIT-DEFINITION queries the superior Lisp for the
source location of the function corresponding to the symbol at the
location of the caret and jumps there if possible. (If the superior
Lisp provides no useful information, EDIT-DEFINITION falls back to
Plus a couple of things that don't work quite right yet:
1. (slime:eval-region), mapped by default to Ctrl Alt R in Lisp
2. (slime:eval-last-expression), mapped by default to Ctrl Alt E in
Lisp source buffers.
These commands evaluate a Lisp expression and print the result in the
In their current state, these commands shouldn't cause any terrible
trouble, but output sent to the repl buffer as a side effect may end up
If you do simply Alt X, "slime", you'll get abcl (as a separate
instance) in a slime buffer.
If you have sbcl installed, and if you build j with the --enable-jpty
configure option, you can do Alt X, "slime sbcl", to run sbcl in a j
slime buffer (assuming sbcl is in your path). Currently sbcl is the
only other Lisp that's supported; it seemed like the easiest one to
start with since its threading model and socket support are very
similar to abcl's.
On another subject, I'd like to do a new official release of j by the
end of the month. The last official release was on October 23, 2003,
and it doesn't work well with Java 1.5 (which is also due to be
released at the end of the month).
Please remind me if there's anything that (realistically) should be
done for this release. On my own hook, I'm not planning on anything
much beyond further incremental improvements to slime and abcl, but if
there are any outstanding editor bugs I'd like to fix them.
Thanks for your support.