Re: Integrating slime with a new lisp implementation

Helmut Eller <[email protected]>
Newsgroups gmane.lisp.slime.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.