Wed 7 Nov 2018 18:34 - 18:36 at Georgian - Poster & SRC
Imagine a project where you write in a dynamically typed programming language with backtracking. There is no interactive debugger for this language, and the build time is in the order of minutes. Whenever you make a type error, the exact location of the problem is not immediately apparent due to the program’s attempt to take other branches. Without an interactive debugger you are now resigned to adding some print statements to trace the program execution. This requires a re-build of several minutes. During that time, your challenge is to keep your mental model of the program clear in your short term memory.
This scenario is not fiction, it is the current state of the Spoofax Language Workbench. The slow-to-compile language is Stratego. And hunting bugs in a larger Spoofax project has become unpleasant.
We propose to add incremental compilation to the Stratego compiler. This will allow small changes to be compiled significantly faster. It also lends itself as a case study for incremental build systems with support for dynamic dependencies. Although not complete, our work has already resulted in interesting questions. This work may also serve as inspiration for others to implement incremental compilation with separate compilation in an incremental build system.