SLIME's just got a new contrib called
slime-macrostep, courtesy of Jon Oddie who also wrote the underlying macrostep package.
And what is
slime-macrostep? It's an interactive inline macro-expander. Have a look:
In this quick demo, using a CFFI example, I start by expanding the top-level
WITH-FOREIGN-OBJECTform, then I expand the
WITH-ALIENform, but regret it and collapse it back. Then I proceed to expand everything else, including compiler macros!
A nice feature of
slime-macrostepis that the expansions are annotated to show which forms are further expandable and
macrostep-expandwill jump automatically to the next expandable form. That's what makes it a stepper: pressing e repeadly will step through the macroexpansion. Plus, it expands macrolets!
If you'd like to try it out, please grab SLIME's bleeding edge (via MELPA or Git). It's enabled by default if you use the
slime-fancymeta contrib. Feedback is most welcome.