[gambit-list] swank-gambit backend for SLIME

James Long longster at gmail.com
Sat Jan 16 16:54:01 EST 2010


Hey guys,

Marc and I have started work on adding support for Gambit to SLIME
(http://common-lisp.net/project/slime/).  We basically need to
implement a fully functioning server (called a "swank" server) in
Gambit to support all of the SLIME protocol.

Marc wrote the initial draft and I have fleshed it out.  Basic support
for a SLIME repl and debugging is available.  You can get the project
here:

http://github.com/jlongster/swank-gambit

I think it'd be great if everyone worked on this together.  There are
many more commands that need to be implemented (completions, better
debugging, etc.) and if we could get this fully implemented, it would
be a huge benefit for Gambit.  SLIME is really an incredible
development environment and I think a lot more people would choose
Gambit with SLIME support.

To use it, fire it up in a terminal like so:

$ gsi -:dar swank-gambit.scm

The "-:dar" option just makes sure that you see any errors that happen
in any threads.

Now connect to it in Emacs:

M-x slime-connect <ENT> <ENT> <ENT>

And you should see a SLIME REPL if you activated the slime-repl
library when you set it up.  You should have done something like this
when installing SLIME:

(slime-setup 'slime-repl)

SLDB is SLIME's debugger, and it will pop up if an error occurs, but
many of the debugging commands haven't been implemented yet.

You can embed the server wherever you like.  I'm debugging my Gambit
Scheme iPhone games using SLIME, which is neat.

*** QUESTION FOR SLIME USERS ***

I'm currently wrestling with what to do with program output from any
thread.  How do most SLIME backends handle it?  I've sketched out an
implementation which sends all output to the SLIME REPL.  It's a
little rough, but it seems to work.  What would be the SLIME
philosophy?

Please let me know if you want to start hacking on this with us!

- James



More information about the Gambit-list mailing list