Open nikomatsakis opened 1 month ago
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 rustc
into the shared library to enable their reuse, all major ones have already been moved by now.
Since the last update, we've landed the new caching optimization in https://github.com/rust-lang/rust/pull/128828 and hope to land the -Znext-solver=coherence
stabilization PR this week.
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.
Summary
In the next 6 months we plan to extend the next-generation trait solver as follows:
Tasks and status