rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.22k stars 12.7k forks source link

Tracking Issue for `-Znext-solver` #107374

Open lcnr opened 1 year ago

lcnr commented 1 year ago

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: https://github.com/rust-lang/types-team/issues/58 Types Team Tracking Issue: https://github.com/rust-lang/types-team/issues/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 2024 Types Team Update Blog Post: https://blog.rust-lang.org/2024/06/26/types-team-update.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

alex commented 1 year ago

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)

lcnr commented 1 year ago

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.