Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

Niko Matsakis

Champions

types (Niko Matsakis)

Task owners

Niko Matsakis, tiif

No detailed updates available.
Evolving trait hierarchies (rust-lang/rust-project-goals#393)
Progress
Point of contact

Taylor Cramer

Champions

lang (Taylor Cramer), types (Oliver Scherer)

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

lcnr

Champions

types (lcnr)

Task owners

Boxy, Michael Goulet, lcnr

1 detailed update available.

Comment by [lcnr][] posted on 2026-01-19:

There hasn't been too much progress over the last few weeks and I've been mostly taking a Christmas break. Nicholas Nethercote has been looking into the performance of the new trait solver, cleaning up canonicalization and slightly improving its performance: https://github.com/rust-lang/rust/pull/150748 https://github.com/rust-lang/rust/pull/150859.

Shoyu Vanilla looked into https://github.com/rust-lang/trait-system-refactor-initiative/issues/251 and uncovered the underlying bug there. While this issue also affects the old solver and the proper fix for it requires where-bounds on binders, we can work around this bug in the trait solver for now and intend to do so.

We've started another crater run with all our recent changes and adwin has started to triage it, uncovering one new issue up until now. Intend to continue going through that over the next few weeks.

There's also a lot in-progress work going on. I am collaborating with Niko Matsakis to specify and later RFC the cycle semantics of Rust. León Orell Valerian Liehr is working on a replacement for the rustdoc's auto trait impl synthesis: https://github.com/rust-lang/rust/pull/149019. @tiff is working on a fix a MIR borrowck unsoundness: https://github.com/rust-lang/trait-system-refactor-initiative/issues/159. Shoyu Vanilla and I are improving the way we propagate inference constraints from the expected return type to function arguments, fixing https://github.com/rust-lang/trait-system-refactor-initiative/issues/259.

Stabilizable Polonius support on nightly (rust-lang/rust-project-goals#118)
Progress
Point of contact

Rémy Rakic

Champions

types (Jack Huey)

Task owners

Amanda Stjerna, Rémy Rakic, Niko Matsakis

3 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-formality work 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 🤞
Comment by [Rémy Rakic][] posted on 2025-12-31:
  • I should be able to open a PR in the next couple days

done in https://github.com/rust-lang/rust/pull/150551

Type System Documentation (rust-lang/rust-project-goals#405)
Progress
Point of contact

Boxy

Champions

types (Boxy)

Task owners

Boxy, lcnr

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 :)