Hi,
I'd like to suggest a reorganization of the Slime sources. Some not-so-long time ago, there has been some vague consensus of factoring some parts of Slime out into a contrib/ directory. The intention of this mail is to straighten out the vagueness while building upon the consensus.
I propose:
a) to introduce a new file `swank-utils.lisp' (and perhaps also `slime-utils.el') and collect common utility functions there in.
Gripe: `swank.lisp' is currently almost 6000 lines long. As a result, it's very hard to get an overview of what's there already, and consequently what could be reused in other (or new!) parts.
Also there's some stuff that can be very useful for foreign projects that perhaps would like to take advantage, but don't want all of SWANK (the arglist stuff comes to mind.)
b) to introduce a new directory `modules/' that contain self-contained subsystems. For instance:
modules/ inspector/
fuzzy-compl/
These subdirectories contain both Common Lisp and Elisp code. It's subject to further discussion what's the best way of loading these subsystems. Are there special requirements?
The purpose is to reduce the line count of `swank.lisp' while aiding understanding by explicitely decoupling of independent subsystems. Also to establish the ground work for a plugin architecture if this deems useful.
c) to introduce a new directory `backends/' and place all the `swank-sbcl.lisp', `swank-clisp.lisp' &c files there. This is merely for aesthetical reasons (less clutter in the main source directory) and hence rather optionally.
-T.