[Asdf-devel] Request for hints debugging ASDF: SLIME-FIND-DEFINITION

Faré fahree at gmail.com
Thu Nov 27 18:52:32 UTC 2014


On Thu, Nov 27, 2014 at 12:30 PM, Robert P. Goldman <rpgoldman at sift.info> wrote:
> Any advice about the attached would be helpful...
>
> 1. I thought I had figured out how to interactively get at the real
> definitions, instead of the ones dumped into build/asdf.lisp (which I
> don't want to edit -- that's like editing your binary).
>
> I have this function:
>
> (defun debug-asdf ()
>   (dolist (c (asdf::required-components :asdf/defsystem :keep-component
>                                         'asdf:cl-source-file))
>     (load (asdf:component-pathname c))))
>
This works for the non-UIOP part of ASDF.
For UIOP, (asdf:load-system :uiop :force t) should work.
See the README.md for the full recipe.

> and that does seem to load everything properly.
>
> However, use of SLIME-EDIT-DEFINITION after executing DEBUG-ASDF still
> dumps me into build/asdf.lisp instead of where I want to be.
>


> 2.  SLIME-EDIT-DEFINITION on SBCL is confused by the WITH-UPGRADABILITY
> macro.
>
> Anyone know of a way to clue SLIME in to the fact that what's really
> wanted is the enclosed DEFUN* form, not the WITH-UPGRADABILITY macro?
>
> Interestingly, ACL is *not* fooled by this macro, and drops me where I
> want to be (although still in asdf.lisp instead of the component file).
>
> So this seems to be a problem with SB-INTROSPECT:FIND-DEFINITION-SOURCE,
> not SLIME per se.
>
SBCL's debug information has "toplevel form" granularity.
For better source information on SBCL,
you could put every single definition in its own with-upgradability. Ouch.
Or you could debug with a different implementation.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
If you're a quiet, law-abiding citizen most of the time but occasionally cut
someone up and bury them in your backyard, you're a bad guy.
        — Paul Graham, "The Power of the Marginal"




More information about the asdf-devel mailing list