Promoting Parallel Front End - Rust Project Goals (original) (raw)

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rust Project Goals

| compiler champion | @SparrowLi | [channel]: https://rust-lang.zulipchat.com/#narrow/channel/187679-t-compiler.2Fwg-parallel-rustc/

Summary

Continue with stabilization and performance improvements to parallel front-end, continuing from the 2025h1 goal.

Motivation

Verify and resolve the few remaining deadlock and other issues, stabilize the feature, and try to further improve parallel compilation performance through various means.

The status quo

Parallel front end progressed well in the first half of the year. We resolved the deadlock issue caused by the deadlock handler, added the rustc-rayon dependency of the parallel front end to the rustc working tree, and changed the work-stealing scheduling algorithm to avoid deadlocks in parallel execution of rustc queries.

Next we need to resolve and verify the remaining issue list, improve the parallel front end test suite, and include all known issues into the ui tests to ensure stability of the feature.

Then we will start the feature stabilization process to push parallel front end into the stable version.

In addition, there are already contributors working on improving the performance of the parallel front end, such as trying to parallelize the macro expansion process, analysing data contention in query calls, etc. (thank you very much). We will conduct more detailed analysis and implementation of these directions in the second half of the year.

In addition, we need to document and enhance the support of surrounding tools for the parallel frontend, such as bootstrap, rustc-perf, and Cargo.

The next 6 months

The "shiny future" we are working towards

We will ensure robustness of the parallel front end and push it to stabilization.

The current parallelization front end can already reduce the overall compilation time by 20~30+ percent, but we will continue to optimize it so that this number continues to grow.

Design axioms

The parallel front end should be:

Ownership and team asks

Owner: Sparrow Li and Parallel Rustc WG own this goal

Frequently asked questions