Debugging Trait Errors as Logic Programs
Rust uses traits to define units of shared behavior. Trait constraints build up an implicit set of first-order hereditary Harrop clauses which is executed by a powerful logic programming engine in the trait system. But that power comes at a cost: the number of traits in Rust libraries is increasing, which puts a growing burden on the trait system to help programmers diagnose errors. Beyond a certain size of trait constraints, compiler diagnostics fall off the edge of a complexity cliff, leading to useless error messages. Crate maintainers have created ad-hoc solutions to diagnose common domain-specific errors, but the problem of diagnosing trait errors in general is still open. We propose a trait debugger as a means of getting developers the information necessary to diagnose trait errors in any domain and at any scale. Our proposed tool will extract proof trees from the trait solver, and it will interactively visualize these proof trees to facilitate debugging of trait errors.
Sun 22 OctDisplayed time zone: Lisbon change
14:00 - 15:30 | Interactivity and Visualization for ProgrammersHATRA at Room VI Chair(s): Jonathan Aldrich Carnegie Mellon University | ||
14:00 30mTalk | Debugging Trait Errors as Logic Programs HATRA Link to publication | ||
14:30 30mTalk | Totally Live Programming with Hazel (Progress Report) HATRA Cyrus Omar University of Michigan, Andrew Blinn University of Michigan, David Moon University of Michigan Link to publication | ||
15:00 30mTalk | REVIS: An Error Visualization Tool for RustRemote HATRA Ruochen Wang University of California, San Diego, Molly MacLaren University of California, San Diego, Michael Coblenz University of California, San Diego Link to publication |