[slime-devel] First Impressions
iain.little at gmail.com
iain.little at gmail.com
Fri Jul 16 04:48:03 UTC 2004
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
More information about the slime-devel
mailing list