Factor/GSoC/2010/Improve error reporting

Mentors

Slava Pestov

Joe Groff

Skills required

  • Basic familiarity with Factor idioms
  • UI design

Technical outline

This is an open-ended project to evaluate and improve the shortcomings of the errors generated by the Factor compiler, parser, and libraries. Here are some well-known candidates for improvement to start with:

  • The "unbalanced branches" and "___ digs arbitrarily deep into the stack" errors, which are raised when the branches of an if statement or loop don't have balanced stack effects, currently report only the lowest-level blocks that don't balance, which are often buried deep inside a stack of standard library combinators and have little relevance to what's in the user's actual code that causes the imbalance. How to select and report the most helpful set of blocks responsible for the stack imbalance is an open question among the Factor developers and will require some experimentation.
  • Circular dependencies between source files can currently lead either to confusing "not defined" errors or infinite looping in the loader.

Ambitious students could research and improve other inadequate errors encountered by themselves or other Factor developers.

Benefit to student

The student gets to exercise UI design skills designing and implementing useful error messages.

Benefit to community

The user experience for Factor developers improves.

This revision created on Mon, 1 Mar 2010 18:20:25 by jckarter