Towards Parallelizing Scala Compilations by Eugene Burmako
Looking to learn how outlining works? How well it works in practice?
Eugene Burmako at Scale by the Bay talked about Rsc which is an experimental Scala compiler focused on compilation speed. They have recently been experimenting with outlining. So learn more all about it and what it represents.
Towards Parallelizing Scala Compilations
Rsc is an experimental Scala compiler focused on compilation speed. Our research goal is to achieve dramatic compilation speedups for typical Scala codebases.
Recently, we've been experimenting with outlining, i.e. computing type signatures of public and protected definitions in the program. Outlines represent dependencies between different elements of the program, so if we compute outlines, we can compile all files and perhaps even all methods of the program in parallel.
With a few language restrictions, Rsc can compute outlines very quickly. On Twitter Util, a foundational library of the Twitter monorepo, Rsc performs outlining roughly 10x faster than Scalac performs compilation. Having obtained the outlines, we can then partition the sources and launch multiple Scala compiler instances in parallel.
Join our talk to learn how outlining works, how well it performs in practice and what we have planned for the future.