SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Thu 8 Dec 2022 16:00 - 16:30 at Lecture Theatre 2 - Compile Chair(s): Stefan Marr

Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-checking can provide that in a scalable fashion. However, existing techniques are not reusable between languages. Moreover, mutual and dynamic dependencies preclude traditional approaches to incrementality. This makes finding automatic approaches to incremental type-checking a challenging but important open question.

In this paper, we present a technique that automatically derives incremental type-checkers from type system specifications written in the Statix meta-DSL. We use name resolution queries in scope graphs (a generic model of name binding embedded in Statix) to derive dependencies between compilation units. A novel query confirmation algorithm finds queries for which the answer changed due to an edit in the program. Only units with such queries require reanalysis. The effectiveness of this algorithm is improved by
(1) splitting the type-checking task into a context-free and a context-sensitive part, and
(2) reusing a generic mechanism to resolve mutual dependencies.
This automatically yields incremental type-checkers for any Statix specification.

Compared to non-incremental parallel execution, we achieve speedups up to 147x on synthetic benchmarks, and up to 21x on real-world projects, with initial overheads below 10%. This suggests that our framework can provide efficient incremental type-checking to the wide range of languages supported by Statix.

Thu 8 Dec

Displayed time zone: Auckland, Wellington change

15:30 - 17:00
CompileOOPSLA at Lecture Theatre 2
Chair(s): Stefan Marr University of Kent
15:30
30m
Talk
Compilation of Dynamic Sparse Tensor Algebra
OOPSLA
Stephen Chou Massachusetts Institute of Technology, Saman Amarasinghe Massachusetts Institute of Technology
DOI
16:00
30m
Talk
Incremental Type-Checking for Free: Using Scope Graphs to Derive Incremental Type-Checkers
OOPSLA
Aron Zwaan Delft University of Technology, Hendrik van Antwerpen Delft University of Technology, Eelco Visser Delft University of Technology
DOI
16:30
30m
Talk
UniRec: A Unimodular-Like Framework for Nested Recursions and Loops
OOPSLA
Kirshanthan Sundararajah Purdue University, Charitha Saumya Purdue University, Milind Kulkarni Purdue University
DOI