[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