i just applied a patch which adds "repl commands" to slime.
the syntax is #, command-name &rest args. I used the comma instead of #: since, afaict, #, will never appear at the start of a valid lisp form (unless you're messing with the read table in which case you can just deal with it).
the following commands have been implemented:
cd namestring - change *default-pathname-defaults*
pwd - return the namestring of *default-pathname-defaults*
sayoonara - quits the lisp and kills all slime related buffers (this has a weild bug whereby the next connection attempt after a sayoonara will fail).
cload file &optional force - loads file. if the source is newer than the compiled, or the compilied doesn't exist, or force is T then the file is compilied before being loaded.
pack &optional new-package - sets or returns the current package. the utility of this is debatable.
+ - resend the top of slime-repl-input-history, don't change slime-repl-input-history.
I have tried to make defining commands easy, see the bottom of swank.lisp for the defs of the current commands. I may very well have broken the repl, comments welcome. These should probably be re-organived into an explicit elisp side stuff and lisp side stuff. we'll see if future commands need it enough to do that.
-- Marco Ring the bells that still can ring. Forget the perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen