Tracking Issue for `-Znext-solver`
lcnr opened this issue · 2 comments
This is a tracking issue for the next-generation trait solver in rustc. It can be enabled on nightly by using the -Znext-solver flag. This work is lead by the @rust-lang/initiative-trait-system-refactor.
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.
Links
Original Types Team MCP: rust-lang/types-team#58
Types Team Tracking Issue: rust-lang/types-team#76
Types Team announcement and Roadmap: https://blog.rust-lang.org/2023/01/20/types-announcement.html
EOY 2023 Update Blog Post: https://blog.rust-lang.org/inside-rust/2023/12/22/trait-system-refactor-initiative.html
Tracking issue for -Znext-solver=coherence: #114862
Milestones and future work
For a complete list of changes, see the list of merged PRs. We also track the decisions we've made - and decisions we still have to make - in https://github.com/rust-lang/trait-system-refactor-initiative/issues. We mostly discuss these issues on zulip and in Types Team meetings.
Major milestones
- #105661 initial skeleton of the trait solver
- #113317 full independence of the old trait solver implementation
- #113991 initial crater run with
-Znext-solver=coherence - #112875 always use next-gen trait solver for
feature(with_negative_coherence), which is used while compiling the standard library - #122747 always use next-gen trait solver in the
non_local_definitionslint - #126614 uplift the next-generation trait solver into a separate library
- #121848 stabilize
-Znext-solver=coherence - bootstrap with
-Znext-solver=globally - initial perf run with
-Znext-solver=globally - initial crater run with
-Znext-solver=globally - stabilize
-Znext-solver=globally
Is it useful to file bugs with crates that don't compile under -Ztrait-solver=next? (Specifically with an error of not implemented: overflowed on pending obligations)
not yet as there are still a lot of failing crates with the new solver. will probably make an announcement blog post asking for testing once we're able to successfully compile our own tests and did the first crater run.