Factor/GSoC/2010/Improve walker tool


Slava Pestov


Factor has a debugger tool called the "walker" that allows developers to step through their code interactively. Currently, it is limited to walking through only the lowest-level representation of Factor code. Walking through code that uses language features that go through transformation passes, such as local variables and macros, is currently difficult because the user has to step through the generated output rather than through the high-level representation they wrote originally. While the high level of metaprogramming possible in Factor makes it impossible to support every potential abstraction, the walker should at least be made aware of the most common ones, such as the aforementioned macros and locals.

Walking into combinator-heavy code can be awkward with the current implementation as well. The walker allows the user to insert breakpoints into a quotation by using the "step into" operation, but the user needs to know to "continue" into the combinator that consumes the quotation. The walker could do some analysis to pair quotations with combinators and streamline the user interface for stepping through them.

The walker also allows you to step into words that depend on being compiled by the optimizing compiler (most notably, FFI calls). By its nature, the walker steps through words using the non-optimizing compiler. It should detect words that require optimization and simply step over, rather than into, them when asked to.

The code

The source code for the walker is located in three vocabularies:

  • tools.continuations
  • tools.walker
  • ui.tools.walker


This revision created on Sun, 28 Feb 2010 04:59:20 by slava