Riker: Always-Correct and Fast Incremental Builds from Simple Specifications
Charlie Curtsinger, Daniel W. Barowy
Abstract
Build systems are responsible for building software correctly and quickly. Unfortunately, traditional build tools like make are correct and fast only when developers precisely enumerate dependencies for every incremental build step. Forward build systems improve correctness over traditional build tools by discovering dependencies automatically, but existing forward build tools have two fundamental flaws. First, they are incorrect; existing forward build tools miss dependencies because their models of system state are incomplete. Second, they rely on users to manually specify incremental build steps, increasing the programmer burden for fast builds.
This paper introduces RIKER, a forward build system that guarantees fast, correct builds. RIKER builds are easy to specify; in many cases a single command such as gcc *.c suffices. From these simple specifications, RIKER automatically discovers fast incremental rebuild opportunities. RIKER models the entire POSIX filesystem-not just files, but directories, pipes, and so on. This model guarantees that every dependency is checked on every build so every output is correct.
We use RIKER to build 14 open source packages including LLVM and memcached. RIKER incurs a median overhead of 8.8% on the initial full build. On average, RIKER's incremental builds realize 94% of make's incremental speedup with no manual effort and no risk of errors.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext fb94728f-0b91-4a0c-8bff-14418d2b8795Cited by top-tier papers7
- OCOLOS: Online COde Layout OptimizationSYuxuan Zhang, Tanvir Ahmed Khan, Gilles Pokam, Baris Kasikci et al.MICRO 2022 · 14 citations
- The Koala Benchmarks for the Shell: Characterization and ImplicationsEvangelos Lamprou, Ethan Williams, Georgios Kaoukis, Zhuoxuan Zhang et al.USENIX ATC 2025 · 12 citations
- DiSh: Dynamic Shell-Script DistributionTammam Mustafa, Konstantinos Kallas, Pratyush Das, Nikos VasilakisNSDI 2023 · 11 citations
- Controlling Opaque-Component Effects with Semisolates and TryEvangelos Lamprou, Tianyu (Ezri) Zhu, Di Jin, Grigoris Ntousakis et al.OSDI 2026 · 4 citations
- Incr: Faster Re-Execution via Bolt-On IncrementalizationYizheng Xie, Evangelos Lamprou, Jerry Xia, Nikos VasilakisOSDI 2026 · 4 citations
Builds on2
Related papers
- Efficient Build Dependency Verification Using eBPF and Incremental AnalysisYuta Saito, Kazunori Sakamoto, Hironori WashizakiICSE 2026
- Detecting Build Dependency Errors in Incremental BuildsJun Lyu, Shanshan Li, He Zhang, Yang Zhang et al.ISSTA 2024 · 3 citations
- Automatic Fixing of Missing Dependency ErrorsJun Lyu, He Zhang, Lanxin Yang, Yue Li et al.ASE 2025
- Escaping dependency hell: finding build dependency errors with the unified dependency graphGang Fan, Chengpeng Wang, Rongxin Wu, Xiao Xiao et al.ISSTA 2020 · 37 citations
- Accelerating Build Dependency Error Detection via Virtual BuildRongxin Wu, Minglei Chen, Chengpeng Wang, Gang Fan et al.ASE 2022 · 6 citations
