So you want to help with incremental compilation!


#1

I’m going to try to keep this thread around for throwing out incremental compilation tasks. In general, each of these tasks has mentoring instructions. Also, I’m trying to keep the roadmap issue page up to date as well, but I figure having more sources of information can’t hurt!


#2

First up: https://github.com/rust-lang/rust/issues/39280 – refactoring the LLVM processing to be pipelined, and hence reducing memory usage. There are mentoring instructions at the end. This will require some non-trivial restructuring of the compiler flow, so it’s a good task for someone with a bit of time to invest who wants to do something “meaty”.


#3

Next: https://github.com/rust-lang/rust/issues/42384 – refactor the used_mut_nodes field in the tcx out of existence. It represents untracked mutable state, which we can’t have. Some rough directions found in the issue.


#4

Next: https://github.com/rust-lang/rust/issues/42511 – refactor how the lint system is implemented.


#5

Next: https://github.com/rust-lang/rust/issues/42513 – integrate diagnostics into the query system.


#6

Next: https://github.com/rust-lang/rust/issues/42535 – figure out why the perf infrastructure is not measuring incremental time correctly. This does not require deep rustc hacking, instead it involves running the timing infrastructure that @Mark_Simulacrum and @arielb1 put together.