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.