I experimented some time ago with getting Cusp working with Allegro,
and everything went fine, but that was rather early on. I expect that
it would not be too hard to get up and running again, thanks to
Swank's universality.
If it didn't complain, that's promising.
This makes the REPL's "Load Installed Packages" button work.
Basically, Cusp tells your lisp implementation about all of the
libraries in its library folder, and will also provide you with a list
of them. Sometimes, we even tell you what they do! It makes it so you
don't have to worry about linking to asd files, which is especially
good on windows where that's impossible, and enables us to more easily
distribute a wide range of lisp libraries.
> FYI I found some small problems or some features which would be nice
> to have (note that they do not look specific to ACL as far as I
> understand the process):
>
> 1) "Find definition" works most of the time but it is sometime wrong
> regarding the line number. It always goes to the good file but the
> line position may be wrong (which can point to some commented part of
> the code).
Technically, this is more a Slime bug, but in truth, keeping track of
where a thing is defined is delegated to the lisp implementation. It
is, unfortunately, an inexact science, since in the lisp world there's
no real guarantee that your source lines up with what's actually in
the image. One could wish for a more intelligent editor, but macros
get in the way here, because how do we know what defmyspecialthing is
really doing?
As it is, a lot of guesswork is involved. Slime tells us the file and
line it thinks stuff is at, and gives us a snippet of the code as it
remembers it. We try to match that, but usually end up jumping to the
closest instance of the symbol being searched for. It's not perfect,
and if anyone has a better system, I'm all ears.
> 2) When I Reconnect (using the dedicated button) the previous lisp
> process is not killed. I kill them manually from a shell. Actually,
> even if I use a single image (no reconnection), the lisp process is
> still alive after exiting Eclipse. This is maybe done on purpose but
> it would be nice to have some control on it (exit the Lisp process or
> not).
This is a long-standing bug that has plagued me from the beginning.
Sometimes, I am able to consistently kill the process on one platform,
but it continues to hang around on a different one. I wish I had a
solution. Java's process.kill() doesn't do the trick, I know that
much.
> 3) There is no option to easily start a specific Lisp image. I rarely
> start Lisp with the default image. To do that I use an external sh
> script which I select as my "Lisp Executable", it looks like:
> alisp -I /somewhere/image-01
> # alisp -I /somewhere/image-02
> # alisp -I /somewhere/image-03
> And I comment/uncomment lines to start the wanted image (ACL option "-
> I" is the equivalent SBCL "--core" I think).
If command line options don't currently work for the custom lisp
executable, that would certainly be a good thing to add. Although if
your problem is that you often use different command line options, I'm
not sure what the best solution is. Perhaps we can store multiple
possible lisp implementations to start, instead of just one at a time?
> 4) There's a minor bug when the REPL view is maximized and the command
> text field is resized, the latter may disappear when the REPL view is
> back to its normal size.
Yes, this is annoying and needs to be fixed.
... and it looks like Sergey just did. Huzzah!
> 5) The indentation rules I am used in Emacs is slightly different
> (especially for the "if"). I am not saying to change it but if there's
> a way to tune it let me know.
In the case of if, it seems match up with the behavior of my copy of
Emacs, inasmuch as they both indent 4 spaces for me. How were you
expecting it to behave?
As a general rule, though, I'd say any point where we don't match up
to emacs indentation should be considered a bug and fixed. That's the
de facto standard.
> Again, this plugin is really great so thank you for all the efforts!
> I'll be pleased to help if you need specific testing for ACL.
Indeed, I don't use Allegro, so it's pretty much up to users like you
to keep it in sync. Happily, most of the heavy lifting is done by the
Slime folks.