November 20, 2006
The macro stepper is a new DrScheme tool for debugging macros. It shows macro expansion as a sequence of rewriting steps, where a step is either a single macro transformation or an operation performed by a primitive syntactic form. The graphical display lets the programmer investigate binding and source properties of the syntax involved in expansion.
The macro stepper is built around three pillars:
stepping navigation
The macro stepper presents macro expansion as a sequence of rewriting steps. It offers the usual navigation capabilities for stepping debuggers.
syntax display
Program fragments are represented as syntax objects. Syntax objects represent a rich array of information about programs, including apparent binding structure, source location information. The stepper’s syntax browser displays basic binding information using colors and organizes other syntax information into a side-panel.
macro hiding
Programmers rarely want to see the expansion of all the macros in a program. They usually just want to see their macros. The macro stepper’s macro hiding facility hides the expansion of language macros and library macros by default.
This manual is organized around those three topics.
1 Getting started
1.1 Starting the macro stepper
1.2 Navigation
2 The syntax display
2.1 Mark colors
2.2 Selection
2.3 Properties
2.4 Identifier relationships
2.5 A word about “apparent bindings”
3 Macro hiding
3.1 Customizing macro hiding
3.2 Limitations
4 Bugs, feature requests, and success stories