[slime-devel] not-so-inferior-slime-mode, backhackattack-1

Luke Gorrie luke at bluetail.com
Mon Oct 27 04:29:19 UTC 2003


Did some improvements to the inferior-slime-mode based on helpful
feedback: now it's careful about preserving history with multi-line
input, and it also indents it as Lisp code. There's also a command on
C-RET that closes all your open parenthesis and sends the input to

More significantly, I started on The Great Backend Refactoring. This
is ultra-disruptive, so I (gag) made a branch: backhackattack-1. The
idea is to violently hack things into shape, initially only with the
CMUCL backend, and then, only when it's right, update the other
backends too. Meanwhile normal use/development can continue on the
trunk. The hope is to only be branched for less than a week.

So far all I've done is split swank.lisp and swank-cmucl.lisp into
separate packages, so that the interface is more explicit. It
currently gets through the test suite.

The code looks pretty much like a pair of Siamese twins separated by a
chainsaw -- lots of internal stuff shared all around the place with no
logical division, but with the connections laid bare for the eye to

The next step is to jumble things around so that the backend
implements a small and well-defined interface, and swank.lisp exports
as little as possible to support it. AFAICS the best general strategy
is moving code from the backend into swank.lisp. Anyone who wants to
get muddy is welcome to join in :-)

For the callbacks, I'm currently defining the symbols and
placeholder-functions in the SWANK package. Then swank-cmucl.lisp
contains a bunch of "(defun swank:foobar ..)" forms to properly define
the callbacks. May or may not be a good idea.


More information about the slime-devel mailing list