[Slime-devel] Integrating slime with a new lisp implementation

Helmut Eller eller.helmut at gmail.com
Tue Oct 7 06:29:27 UTC 2014


On Mon, Oct 06 2014, Charlie Andrews wrote:

> I am working on the recently released lisp implementation clasp
> (https://github.com/drmeister/clasp), and I would like to get it
> working in slime. I am wondering if there is a general purpose
> document for adding support for slime to a new implementation out
> there some where? If not, where is a good place to begin?

Basically you need to implement the functions that are described in
swank/backend.lisp.  Not all are needed.  To begin, create a file like
swank/clasp.lisp and add it to swank-loader.lisp.  Start it with "make
run-swank" or something similar in an a shell outside of Emacs.  Then
use M-x slime-connect from Emacs.  You will then run into undefined
functions that you need to implement.

(Set swank::*log-events* to T for debugging.  It's probably sensible NOT
to bind *debugger-hook* in swank/backend:call-with-debugger-hook at the
beginning, so that you can use the normal debugger.  It might save some
compilation time if you set *contribs* in swank-loader.lisp to nil.)

Look at existing backends for inspiration, I believe swank/allegro.lisp
is the shortest and relatively clean.  You need to decide what
"communication style" you want to use; that's basically threads or no
threads.  I think less code is needed if you don't use threads, but then
you need to implement swank/backend:wait-for-input, which can be tricky.

Helmut




More information about the slime-devel mailing list