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