[slime-devel] SLIME+sbcl: list-callees, list-callers on macros

Tobias C Rittweiler tcr at freebits.de
Fri Aug 27 19:39:53 UTC 2010


In article <87aaoajsux.fsf at desktop-ng.home.sw4me.com>,
 Anton Kovalenko <anton at sw4me.com> wrote:

> Hello SLIME developers,
> 
> When slime-list-callees is attempted on symbol naming a macro,
> swank-sbcl implementation (based on SB-INTROSPECT) generates the
> following condition:
> 
>  The value of sb-introspect::code is #<unknown pointer object,
>  widetag=#x5D {1003543DFF}>, which is not of type
>  sb-kernel:code-component.

This sounds like a bug in SBCL. Please submit that to its
bug tracker.


> Though (FDEFINITION)'s value for macros in SBCL _is_ FUNCTIONP,
> it's apparently a wrong kind of function for SB-INTROSPECT.
> 
> After redefining LIST-CALLEES to use symbol's MACRO-FUNCTION in
> preference to FDEFINITION, I've got a desired behavior (listing callees
> of macrofunction seems to be a reasonable reaction, and that's what I
> want, anyway). Just in case someone finds it useful -- patch is
> attached.
> 
> One more thing that I found convenient is redirecting LIST-CALLERS for
> symbols with macro-functions to WHO-MACROEXPANDS (also included in the
> patch).

List-Callers and Who-Foo are seperate functions bound to
different keys because they're based on totally different
lookup mechanism (at least that's my post-hoc reckoning.)
I don't think it's a good idea starting to intermix their
functionality.

  -T.





More information about the slime-devel mailing list