[slime-devel] Find Definitions
Terje Norderhaug
terje at in-progress.com
Wed Dec 23 23:00:55 UTC 2009
On Dec 19, 2009, at 12:59 AM, Helmut Eller wrote:
> * Terje Norderhaug [2009-12-18 20:32+0100] writes:
> [...]
>> Of particular concern is the DSPEC, which Clozure returns as
>> "#'SWANK-
>> BACKEND:FIND-DEFINITIONS" and LispWorks returns as "(DEFUN SWANK-
>> BACKEND:FIND-DEFINITIONS)". It would be helpful if the DSPEC
>> standardized on the same symbol to denote that the definition is for
>> a function, as in (FUNCTION SWANK-BACKEND:FIND-DEFINITIONS).
>>
>> To facilitate client side use and flexibility in presentation, I also
>> suggest that the DSPEC is returned as a list instead of as a string,
>> with the type as a symbol and the function name encoded as a string,
>> as in (FUNCTION "SWANK-BACKEND:FIND-DEFINITIONS").
>
> Assigning a standard meaning would be pretty difficult as
> implementations differ considerably in this area. E.g Allegro has
> fspecs while Lispworks has dspecs. Fspecs are for functions only but
> dspecs are indented for all kinds of definitions and new dspecs can be
> added by users. It's much simpler to treat dspecs as strings and just
> display them as label.
It is unfortunate that the current definition specs are made to be
human readable strings rather than easily digested by lisp code. This
simplicity comes with a trade-off in that it limits client-side
processing.
Swank should better aid clients like MCLIDE and SLIME in making sense
of the definitions from the various lisp implementations. Two
potential solutions have been brought up:
1) Swank uses a unified representation of dspecs shared between all
lisp implementations.
2) Swank provides clients with lisp implementation specific
information to make sense out of different dspecs.
You mention that implementations differ considerably and that it
would be hard to standardize the dspecs. What would be concrete cases
of dspecs that are prohibitively hard to unify?
-- Terje Norderhaug
terje at in-progress.com
More information about the slime-devel
mailing list