[slime-devel] Re: SWANK-BACKEND:FIND-DEFINITIONS -- return value specification.

Tobias C. Rittweiler tcr at freebits.de
Sun Feb 24 20:06:42 UTC 2008


Helmut Eller <heller at common-lisp.net> writes:

> Yes, that's a useful application.  I don't quite understand how
> FIND-DEFINITIONS can be used here because FIND-DEFINITIONS expects a
> (generalized) name as argument.  One possibility would be to use a
> (yet-to-be-invented) function, say FUNCTION-NAME, which returns the name
> of a function object and passing that name to FIND-DEFINITIONS.  But if
> we invent a FUNCTION-NAME function, we could just as well invent
> FUNCTION-SOURCE-LOCATION and CLASS-SOURCE-LOCATION, which would easier
> to use than FIND-DEFINITIONS.

I decided to do this way, because SWANK-BACKEND:FUNCTION-NAME does in
fact already exist. And you can retrieve the name of structures and
classes via TYPE-OF.


> If you want to stay with FIND-DEFINITIONS: instead of filtering out
> results manually, it could be be easier to narrow the specification for
> the argument instead of the return value.  E.g. and you could say that
> for an argument like '(:function (setf foo)) the setf-expanders
> shouldn't be returned.

This is a possibility. Another possibility would be to specify the
return value as outlined in my original posting, with the following
addition:

  FIND-DEFINITIONS returns a list of 

    (DSPEC LOCATION &optionally impl-dependent-p)

  If IMPL-DEPENDENT-P is non-NIL (it's supposed to be EQ to
  :IMPLEMENTATION-DEPENDENT in this case, but not mandatorily so.), the
  DSPEC is of implementation dependent nature, and can anything.

How does this sound?

(In the end, I don't care all /that/ much, but specifying the return
value at least for a subset seems to be the more general solution to me,
and validating by DESTRUCTURE-CASE is nice for documentation purposes,
too.)

  -T.





More information about the slime-devel mailing list