Design Challenges of Bloop
summary
Bloop is a background build server that compiles, tests, runs and provides diagnostics over BSP and a custom RPC, powering Metals and IDEs while integrating with SBT by reading JSON target files. It enforces compiler isolation via immutable inputs and per-client output dirs, implements nonblocking transactional compilation to let concurrent clients share work, shows 200–500 ms incremental compile times on medium projects, uses a randomized test suite of ~11,000 lines and a ~40,000 LOC repo, and reports 2x to 15s speedups on real Scala benchmarks.
AI-written summary · about
chapters (14)
- 0:00Bloop introduction
- 4:26Project credits
- 7:18Bloop architecture
- 11:56Concurrent clients
- 14:01Compiler isolation
- 24:08Shared compilation
- 28:47Testing strategies
- 30:12Performance benchmarks
- 34:09Performance gains
- 37:40Caching policies
- 38:24Centralized build server
- 41:16Pipelining optimizations
- 43:46Summary
- 44:28Future work
related talks
44mMeet bloop and get more productive with Scala
39mMeet Bloop and Get More Productive with Scala
29mExploring Scala Tooling ecosystem
19mExploring Scala Tooling ecosystem
43mIntegrating Developer Experiences - Build Server Protocol
28mIntegrating Developer Experiences - Build Server Protocol and beyond
30mINTEGRATING DEVELOPER EXPERIENCES - BUILD SERVER PROTOCOL AND BEYOND
49mHow to Get Started with Scala?
