The Rust project is currently working towards a slate of 5 project goals, with 0 of them designated as Roadmap Goals. This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated tracking issue on the rust-project-goals repository.
Roadmap goals
Goals looking for help
Other goal updates
Borrow checking in a-mir-formality (rust-lang/rust-project-goals#122)
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
Evolving trait hierarchies (rust-lang/rust-project-goals#393)
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Taylor Cramer, Taylor Cramer & others |
No detailed updates available.
Next-generation trait solver (rust-lang/rust-project-goals#113)
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
Stabilizable Polonius support on nightly (rust-lang/rust-project-goals#118)
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
2 detailed updates available.
Comment by [Rémy Rakic][] posted on 2026-02-28:
We had a bit less time this month, the update will be shorter, but still meaningful I hope:
- https://github.com/rust-lang/rust/pull/150551 has landed, and it feels stabilizable. To me, this part of the goal is achieved.
- still, "stabilizable" is not stable, and there is more work to do. We plan to stabilize this year, and the project goal proposal for 2026 tracks how.
- Tiif is still deep in https://github.com/rust-lang/rust/pull/152051, and
a-mir-formalitywork with Niko and I. - Amanda has opened a few cleanup PRs (https://github.com/rust-lang/rust/pull/152438, and https://github.com/rust-lang/rust/pull/152579), and https://github.com/rust-lang/rust/pull/151863 has landed already. She also has started looking into Tage's old PR to see if we can fix it, benchmark it more accurately, and see the cool parts there that we could be using.
- Jack is possibly going to have some time to work with us this year! His help will be very welcome, especially as I will have less time available myself.
- we'll be tracking the opaque type region liveness soundness issue in https://github.com/rust-lang/rust/issues/153215, and I've added a couple tests, in case tiif's PR or anything that impacts them lands.
- some of the tiny cleanups I mentioned last time have also landed in https://github.com/rust-lang/rust/pull/152587.
Comment by [Rémy Rakic][] posted on 2026-01-30:
This month's update:
- tiif is making progress on https://github.com/rust-lang/trait-system-refactor-initiative/issues/159
- we discussed how to investigate and fix the remaining correctness issues in Tage's work, to be able to evaluate it more accurately: in particular around variance and bidirectional edges, and without the reliance on NLL (having computed region values / errors)
- we've tried to see if it'd be possible to remove the cfg region elements
- Amanda is still working on her two papers, one about the current borrow checker and one about the work on Polonius. Her major PR for the restructuring of placeholder handling during region inference is stalled due to a conflict with further trait solver developments and may have to be abandoned. Work with the larger types team is ongoing and smaller patches/refactorings/improvements are being landed in the meantime.
- https://github.com/rust-lang/rust/pull/149639 has now landed, and https://github.com/rust-lang/rust/pull/150551 is still in review
- I've also fixed more small inefficiencies (computing boring/relevant locals on-demand in diagnostics, removed conversions between locations and points, etc) building on top of the previous PRs (so they need to be reviewed first)
- I've looked at crates.io again with the alpha, to find functions that are slower than with NLLs. AFAICT the worst case there is 60% for a 5KLOC function with 42K loans, 255K statements, and 125K outlives constraints. I'll see what we can do with this. Small composable functions is still good advice.
- there seem to be optimization opportunities to 1. limit propagation to the smaller number of blocks that could be affected by bidirectional edges, 2. for unifying invariant lifetimes of live locals that are assigned at most once (à la use-def chains), 3. for invalidations that are just the activation of a reservation
- we discussed possible plans to gather actual statistics, using the infrastructure that was created for the Metrics project
- we're also preparing the new project goal for this year, where we'll want to stabilize the alpha 🤞
Type System Documentation (rust-lang/rust-project-goals#405)
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
3 detailed updates available.
Comment by [Boxy][] posted on 2026-02-28:
nothing this month, been busy again
Comment by [Boxy][] posted on 2026-01-30:
Nothing this month, been busy with other stuff :)