Incremental compiler taming scalac
summary
Explains how SBT’s Zinc incremental compiler drives scalac via a compiler plugin that records per-source API hashes and dependency names, then reenqueues affected files until stable (typically 1–3 cycles). Describes the current name hashing move from one hash per file to per-name hashes plus name-level dependencies, quantifies rare regressions versus full rebuilds, and lists practical fixes: add explicit return types and avoid multiple unrelated classes per file; code samples and tooling hooks live on the referenced GitHub.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:16Incremental compiler
- 1:12What is Incremental compiler
- 1:59How many Incremental compilers
- 2:52SBT
- 3:58Compiler
- 5:41Initial change sources
- 7:06Initial change compilation
- 7:33SBT compiler plugin
- 9:06More or less source
- 10:19traverser
- 11:38dependencies
- 13:35name hashing
- 15:09store dependencies
- 15:53file dependencies
- 16:57can we
- 17:35pull request
- 18:50precision
- 20:17speed up
- 20:29return types
- 21:30multiple classes
- 22:14questions








