On Sep 16, 2005, at 6:14 AM, Helmut Eller wrote:
- Taylor Campbell [2005-09-16 04:58+0200] writes:
I think my question might have been lost in the traffic of the mailing list, so I'll ask once more: several people, including Marco Baringer, have suggested that it might be a good idea to add the Scheme48 back end to the main SLIME CVS source repository. I could fork SLIME to support the small changes needed for SLIME48 myself, but that would really be a pain to maintain, and I'd like SLIME48 to work pretty much out of the box. What do the SLIME developers/maintainers think about this?
When Luke announced SLIME, the bit I liked most about it was this:
The goal is to make Emacs support CMU Common Lisp as well as it supports Emacs Lisp. The strategy is to take maximum advantage of all CMUCL features and hooks, portability be damned to hades.
Compatibility with other Common Lisps is not a goal.
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 of the project.
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.
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?
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?
SLDB works just fine: the current continuation can be presented as a "stack", and this is exactly how it's done in the Scheme48 REPL too.
If you still want to add your code to SLIME and nobody (hi Luke :-) has objections, I'll do the initial check-in and ask the cl.net admins to give CVS permissions.
I'll probably put it in a swank-scheme48 directory and I would also like to remove the -*- mode: scheme48; package: (exec) -*- lines because few people have a scheme48-mode and turning `package' into a buffer local variable isn't wise either.
-- Brian Mastenbrook brian@mastenbrook.net http://brian.mastenbrook.net/