On Thu, Nov 27, 2014 at 12:30 PM, Robert P. Goldman rpgoldman@sift.info wrote:
Any advice about the attached would be helpful...
- 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.
- 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"