-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Next-generation trait solver #113
Comments
This issue is intended for status updates only. For general questions or comments, please contact the owner(s) directly. |
I am currently working on caching in the trait solver. The current implementation results in hangs when encountering complex auto-trait cycles. See https://rust-lang.zulipchat.com/#narrow/stream/364551-t-types.2Ftrait-system-refactor/topic/Fuchsia.20hanging.20on.20.60-Znext-solver.3Dcoherence.60 for the progress here. We now have an approach which fixes the performance regression. It'll still take at least multiple weeks until it's ready for merge however. The librarification of the trait solver is in a very good state thanks to a lot of work by @compiler-errors. We're currently discussing its use in r-a on zulip: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/New.20Trait.20Solver. While there are still components we intend to move from |
Since the last update, we've landed the new caching optimization in rust-lang/rust#128828 and hope to land the There has been one other bug fix in the last month, see https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+label%3AWG-trait-system-refactor+-label%3Arollup+closed%3A%3C2024-09-02+-closed%3A%3C2024-08-01 for the full list of PRs. |
We've tried to stabilize We mostly fixed this hang with rust-lang/rust#130617 and rust-lang/rust#130821. As nalgebra still ends up hitting the recursion limit with a quite wide search graph, the performance impact of enabling There haven't been any other significant changes to the new solver during the last month. |
We stabilized We're currently refactoring the way the current "typing mode" is tracked, cc rust-lang/types-team#128. This is necessary to fix rust-lang/trait-system-refactor-initiative#106. I also started an FCP to clean up the way we merge candidates when proving trait goals: rust-lang/rust#132325. I intend to pretty much exactly match this behavior in the new solver as well, so I expect all of our issues there to be resolved. |
Summary
In the next 6 months we plan to extend the next-generation trait solver as follows:
Tasks and status
The text was updated successfully, but these errors were encountered: