I finally got around to trying SLIME, by downloading the tarfile at: http://www.common-lisp.net/project/slime/slime-1.0alpha.tar.gz
I must say, I am very impressed. It looks like Slime aims to fix almost all of my minor annoyances when using cmucl/ilisp. In particular, I like the way that it opens a different buffer to deal with errors/breaks/etc, rather than dumping a screen full of stuff into the repl buffer.
But a few things that I noticed:
I like to put testing sexprs in the files that I am working on (I put them in all in a #| |# commented region so that I can evaluate them when I want, but they don't evaluate when I compile/load the file). In ilisp I evaluate them with C-z e, and I gather that the slime equivalent is C-x C-e.
The problem is, slime puts the output in the minibuffer. (Ok, ilisp can be set up to do this as well, but I have it disabled.) Often I am printing out a representation of a large enough data structure that the output doesn't even fit in the available space. Also, the way that it disappears as soon as a key is pressed prevents me from refering to it later after I have checked/tested something else. The obvious workaround is to copy/paste the sexpr into the repl buffer, but I do this so often (at least on my current project) that this would be a serious pain.
For me, the ideal way for this to work would be for there to be a variable that controls whether or not evaluation output goes to the minibuffer or the repl (Or is there one already? I put a bit of effort into looking and couldn't find anything...). A different evaluation command (maybe: slime-eval-last-expression-in-repl) would also work.
I also noticed a couple of indentation issues: (ok, I admit it; I went out of my way to see how slime would indent different things ;-) )
CL> (defmacro test (a &body b) (list* '+ a b)) TEST CL> (test 1 2) 3
Which - as advertised - actually does the right thing (ilisp most certainly doesn't). But,
CL> (with-accessors ((a b)) c ...)
and
CL> (defgeneric test2 (a) (:method-combination progn)) #<Standard-Generic-Function TEST2 (0) {48B3C389}> CL> (defmethod test2 progn ((object a)) ...)
still arn't right. (But no loss there; ilisp does exactly the same thing...)
The only other thing is that the &body indentation doesn't work in the lisp buffers created by opening a file. But I suspect that is because I still have ilisp installed, and it is clobbering whatever slime does. (Is there a workaround?)
Anyway, I hope this helps. Slime has impressed me enough that I'm quite certain that I'll switch to it sometime in the future; the only thing stopping me at the moment is the minibuffer issue. (If nothing else, I'll come up with a fix myself when I have more time; my honours project is all-consuming at the moment.)
Regards,
Iain