On Tue, 14 Sep 2004 11:33:34 +0200, "Marco Baringer" mb@bese.it said:
Marco> the problem:
Marco> slime currently loads things in the following order:
Marco> 1) the backend
Marco> 2) the lisp system's implementation of the backen
Marco> 3) swank.lisp
Marco> initially i've defined everything in swank.lisp, which means that the Marco> swank-XYZ.lisp files can add methods but can't redefine the default Marco> methods :( (in particular it'd be nice to use the implementation's Marco> (inspected-parts T) method). however i can't just define the inspector Marco> directly in swank-backend because 1) the inspector uses the Marco> swank-mop package which each implementation must define, and 2) that'd Marco> be ugly.
Marco> suggestions? the only thing i can think of is a refactoring of the Marco> inspector part of swank.lisp into a general inspector file, one file Marco> defining the swank-mop package for each lisp and one file redefining Marco> inspector methods for each lisp, but this just feels wrong.
Two possible things:
1) The overridable INSPECTED-PARTS methods such as T probably don't depend on the mop, so they could be placed in swank-backend.lisp.
2) The INSPECTED-PARTS generic function could be changed to specialize on an implementation object, allowing the default methods to be shadowed by the backend implementation. Actually, this could be done for the whole of the DEFINTERFACE/DEFIMPLEMENTATION mechanism.
__Martin