Open SparrowLii opened 1 year ago
The core
crate might be a good benchmark for this. You can immediately build it after rustc and it spends about 10% of its walltime in tokenization/parsing/macro-expansion and ~80% in the query parts. The fraction of codegen is small in comparison.
It's been a long time since there was any update. Has all work been paused?
Them main work now is to fix deadlock and ice bugs in the issue list
I recently submitted a PR for an enhanced compiler test to reproduce the issue and successfully located three deadlock bugs. Unfortunately, it takes timeto figure out the cause of these bugs, which is what is making the updates slow.
I expect it will take another 1 to 2 months to fix the remaining bugs, after which the stabilization will begin.
This is a tracking issue for Parallel Rustc Front-end
This feature will improve compilation speed by parallelizing the process of rustc front end (before the codegen which has been parallelized).
The feature was previously called parallel queries (and its tracking issue can be found here), developed by the former parallel rustc working group. Thanks to their work, developers can currently use parallel rustc by setting
parallel_compiler=true
inconfig.toml
when building the compiler.The parallel rustc working group has rebooted (here's the associated MCP), which will make parallel front-end the default option in rustc. Here's the (draft) landing strategy for this feature.
Below is the task list.
Solve the problem of single-thread performance reduction
Optimize multi-threading performance
Enable parallel compilation by default in nightly rustc
Bugs or test failures of parallel rustc
Testing
Documentation
About tracking issues
Tracking issues are used to record the overall progress of implementation. They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions. A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature. Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.