[slime-devel] SLIME48: a Swank back end in Scheme48
Helmut Eller
heller at common-lisp.net
Fri Sep 16 20:22:42 UTC 2005
* Brian Mastenbrook [2005-09-16 13:55+0200] writes:
> On Sep 16, 2005, at 6:14 AM, Helmut Eller wrote:
>
>> Sadly, the goals shifted a bit since then.
>
> I don't think very many people would agree that this is "sadly". If
> this is the way you feel, however, I'm sure that there are enough
> people who prefer using SLIME on other Common Lisps to sustain a fork
> Sadly, the goals shifted a bit since then.
> of the project.
Sure. That's why Taylor Campbell should at least consider making a
fork.
>> I'm not that excited about supporting every Frankenstein Lisp on the
>> planet, just because we can. And frankly, who wants to use a Lisp
>> which doesn't even have docstrings?
>
> Taylor's goal in this project was to make a good Emacs IDE for
> Scheme48, not to make SLIME support "every Frankenstein Lisp". SLIME
> was just the tool he chose to make this happen.
Scheme48 is a Frankenstein Lisp by my definition. If SLIME doesn't
need to support Scheme48, why does he even bother us/me then?
>> If you want to add your code to our CVS repo, it should be clear that
>> Scheme is only a second class citizen here, and that we have limited
>> motivation to make/keep the protocol working with the Scheme server.
>
> Why does that need to be? Why can't Taylor just maintain the Scheme48
> support to the best level possible, just as is done with the other
> backends?
Because he wrote his own server (swank) not only the implementation
specific part (swank-backend). His server also uses a rather
different approach to threading than we do.
>> On the technical side, Scheme has continuations but SLIME assumes that
>> the Lisp is stack oriented. I haven't thought too much about it, but
>> there will likely be problems if somebody calls a continuation
>> multiple times. Also, interrupting doesn't seem to work with your
>> backend, or not in the way I expected it.
>
> I'm not sure what those problems would be. Can you clarify?
Try
(define k (call-with-current-continuation (lambda (c) c)))
(k 1)
and type C-x C-e at the end of each line.
More information about the slime-devel
mailing list