7 papers
Accurate Residues for Floating-Point Debugging
Yumeng He, Pavel Panchekha
Floating-point arithmetic is error-prone and unintuitive. Floating-point debuggers instrument programs to monitor floating-point arithmetic at run time and flag numerical issues. T…
Numerical Superoptimization for Library Learning
Jonas Regehr, Mitch Briles, Zachary Tatlock +1
Numerical software depends on fast, accurate implementations of mathematical primitives like sin, exp, and log. Modern superoptimizers can optimize floating-point kernels against a…
Semantics for 2D Rasterization
Bhargav Kulkarni, Henry Whiting, Pavel Panchekha
Rasterization is the process of determining the color of every pixel drawn by an application. Powerful rasterization libraries like Skia, CoreGraphics, and Direct2D put exceptional…
Incremental Live Programming via Shortcut Memoization
Marisa Kirisame, Thomas J. Porter, Ruqing Yang +5
Live programming systems aim to quickly show programmers the dynamic impacts of program edits. To do so, they re-execute the program whenever it is edited, which poses a computatio…
Spineless Traversal for Layout Invalidation
Marisa Kirisame, Tiezhi Wang, Pavel Panchekha
Latency is a major concern for web rendering engines like those in Chrome, Safari, and Firefox. These engines reduce latency by using an incremental layout algorithm to redraw the…
Incremental Bidirectional Typing via Order Maintenance
Thomas J. Porter, Marisa Kirisame, Ivan Wei +2
Live programming environments provide various semantic services, including type checking and evaluation, continuously as the user is editing the program. The live paradigm promises…