[slime-devel] modifying the inspector with implementation specific methods.

Martin Simmons martin at xanalys.com
Tue Sep 14 10:32:52 UTC 2004


>>>>> On Tue, 14 Sep 2004 11:33:34 +0200, "Marco Baringer" <mb at 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




More information about the slime-devel mailing list