initial draft for 2026 project goals#3935
initial draft for 2026 project goals#3935nikomatsakis wants to merge 4 commits intorust-lang:masterfrom
Conversation
FCP ProcessPer our usual process, to be accepted, we require checkboxes from the leads of every team with a "team ask". Checkboxes from other members are encouraged but not required. book
bootstrap
cargo
clippy
compiler
crate-maintainers
crates-io
edition
fls
infra
lang
lang-docs
leadership-council
libs
libs-api
opsem
project-exploit-mitigations
rustdoc
rustfmt
rustup
spec
style
testing-devex
types
wg-mir-opt
wg-parallel-rustc
|
| | | | [lang][] | [Tyler Mandry][] | | ||
| | | | [compiler][] | *n/a* | | ||
| | | | [libs][] | *n/a* | | ||
| | | | [opsem][] | *n/a* | |
There was a problem hiding this comment.
It's still unclear to us what the opsem ask even is here. This doesn't sound like a goal that has opsem aspects.
| | [Continue resolving `cargo-semver-checks` blockers for merging into cargo](https://rust-lang.github.io/rust-project-goals/2026/cargo-semver-checks.html) | [Predrag Gruevski][] | [cargo][] | *n/a* | | ||
| | | | [rustdoc][] | *n/a* | | ||
| | [Improving Unsafe Code Documentation in the Rust Standard Library](https://rust-lang.github.io/rust-project-goals/2026/improve-std-unsafe.html) | @hxuhack | [libs][] | *n/a* | | ||
| | | | [opsem][] | *n/a* | |
There was a problem hiding this comment.
The opsem ask was unclear to us here, this seems to be mostly about library documentation. Without a libs champion, is this goal even happening?
There was a problem hiding this comment.
The asks are all Small, so the goal doesn't need champions
| | [C++/Rust Interop Problem Space Mapping](https://rust-lang.github.io/rust-project-goals/2026/interop-problem-map.html) | [teor][] | [compiler][] | *n/a* | | ||
| | | | [lang][] | *n/a* | | ||
| | | | [libs-api][] | *n/a* | | ||
| | | | [opsem][] | *n/a* | |
There was a problem hiding this comment.
We haven't found someone who's able to dedicate substantial amounts of time for this. The usual kind of opsem questions/feedback we handle on Zulip are fine of course.
There was a problem hiding this comment.
That's alright because the ask is Small.
|
|
||
| ## How these goals were selected | ||
|
|
||
| Goal proposals were accepted during the month of January. Many of the goals are continuing goals that are carried over from the previous year, but others goal are new. |
There was a problem hiding this comment.
| Goal proposals were accepted during the month of January. Many of the goals are continuing goals that are carried over from the previous year, but others goal are new. | |
| Goal proposals were collected during the month of January. Many of the goals are continuing goals that are carried over from the previous year, but others goal are new. |
Accepting a proposal sounds ambiguos, did we accept the fact that as a proposal or did we accept the proposal as something we should do.
|
|
||
| Polonius Alpha is part of a larger roadmap called [the Borrow-Checker Within](https://rust-lang.github.io/rust-project-goals/2026/roadmap-borrow-checker-within.html) that we expect to be driving over the next few years. This year, another part of that work is including Polonius Alpha in [a-mir-formality](https://github.com/rust-lang/a-mir-formality/), the [types team's](https://rust-lang.org/governance/teams/compiler/#team-types) (in-progress) specification for how the Rust type system works. As part of another goal, we are planning to [integrate a-mir-formality into the Rust reference](https://rust-lang.github.io/rust-project-goals/2026/a-mir-formality.html). This would make Polonius the first version of the borrow checker whose behavior is specified outside of the Rust compiler. | ||
|
|
||
| ## Extending const evaluation to *structs/enums*, *traits*, and *reflection* |
There was a problem hiding this comment.
| ## Extending const evaluation to *structs/enums*, *traits*, and *reflection* | |
| ## Change const evaluation to support *traits*, and *reflection*, allow *structs/enums* as const parameter types |
I have no idea what "Extending const evaluation to structs/enums" should mean
| This year, the Rust types team plans to stabilize the [next-generation trait solver](https://rust-lang.github.io/rust-project-goals/2026/next-solver.html). This solver is a ground-up rewrite of the core engine that decides whether types satisfy trait bounds, normalizes associated types, and more. The types team has been working on it since late 2022, and it already powers coherence checking as of Rust 1.84. The goal for this year is to stabilize it for use across all of Rust and remove the old implementation. | ||
|
|
||
| This goal may not *sound* like it's going to impact your life, but finishing the new solver unblocks a *lot* of stuff. To start, it allows us to make progress on the [Project Zero](https://rust-lang.github.io/rust-project-goals/2026/roadmap-project-zero.html) roadmap, which aims to fix every known type system soundness bug. It also unblocks long-desired features like implied bounds, cyclic trait matching, and features needed by the [Just add async](https://rust-lang.github.io/rust-project-goals/2026/roadmap-just-add-async.html) roadmap. | ||
| Roadmaps offer a "zoomed out" view of the Rust project direction. Each roadmap collects a set of related project goals into a coherent theme. A typical roadmap takes several years to drive to completion, so when you look at the roadmap, you'll see not only the work we expect to do this year, but a preview of the work we expect in future years (to the extent we know that). |
There was a problem hiding this comment.
This line feels odd as part of the "## Closing soundness bugs and supporting new lang features with a new trait solver" header
maybe start with either another --- or add a Roadmaps header
| | [Arbitrary Self Types](https://rust-lang.github.io/rust-project-goals/2026/arbitrary-self-types.html) | Large | [Jack Huey][] | \*3 | | ||
| | [Full Const Generics](https://rust-lang.github.io/rust-project-goals/2026/const-generics.html) | Large | [Boxy][] | \*4 | | ||
| | [Stabilize and model Polonius Alpha](https://rust-lang.github.io/rust-project-goals/2026/polonius.html) | Large | [Jack Huey][] | \*5 | | ||
| | [Stabilize concrete type specialization](https://rust-lang.github.io/rust-project-goals/2026/specialization.html) | Large | [Jack Huey][] | \*6 | |
There was a problem hiding this comment.
@rustbot concern specialization-goal
The types team does not accept this goal as is. We've talked about adjusting it, but until then, I consider this blocking.
Establish the initial round of Rust Project Goals for 2026 along with a set of current roadmaps, which describe multi-year development arcs.
New Rust Project Goals may be added over the course of the year but only if all required resources (champions, funding, etc) are already known.
Important
When responding to RFCs, try to use inline review comments (it is possible to leave an inline review comment for the entire file at the top) instead of direct comments for normal comments and keep normal comments for procedural matters like starting FCPs.
This keeps the discussion more organized.
Rendered
Caution
Concerns (1 active)
Managed by
@rustbot—see help for details.