Run Scalac, Run!
Are you plagued with unbearably slow compile times? Do you spend your day endlessly brewing tea, waiting for scalac to respond? Have you ever tried to speed up your build, but haven’t even known where to start? You’re in luck!In this talk, we will use recent advancements in scala tooling to look under the hood of the scala compiler and see what’s slowing it down. We’ll journey through build graphs, dive into compiler phases, and even learn how to use all those seemingly obscure compiler flags. By carefully benchmarking, profiling and tweaking our builds, we will turn our compiler into a well oiled machine.Note to the committee: This talk is inspired from my workshop held at the London Scala User Group earlier this month (https://lsug.github.io/workshop/scala/2019/07/21/workshop-run-scalac-run.html). I understand that there may be workshops in the conference, and if so I think this would work well as one. I would make several improvements to the LSUG version, notably a significant reduction in the tools and setup used (only one version of Scala and no Graal). I would also dedicate less time to benchmarking and more time to profiling the typer. This would be done by creating an example codebase with typer exercises (e.g uncached typelevel induction, implicit whitebox macros, failed implicit searches).