The Rust project is currently working towards a slate of 16 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
| Progress | |
| Point of contact | |
| Champions |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
bootstrap (Jakub Beránek), lang (Niko Matsakis), spec (Pete LeVasseur) |
| Task owners |
Pete LeVasseur, Contributors from Ferrous Systems and others TBD, |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Taylor Cramer, Taylor Cramer & others |
1 detailed update available.
Current status: there is an RFC for auto impl supertraits that has received some discussion and updates (thank you, Ding Xiang Fei!).
The major open questions currently are:
Syntax
The current RFC proposes:
#![allow(unused)]
fn main() {
trait Subtrait: Supertrait {
auto impl Supertrait {
// Supertrait items defined in terms of Subtrait items, if any
}
}
}
Additionally, there is an open question around the syntax of auto impl for unsafe supertraits. The current proposal is to require unsafe auto impl Supertrait.
Whether to require impls to opt-out of auto impls
The current RFC proposes that
#![allow(unused)]
fn main() {
impl Supertrait for MyType {}
impl Subtrait for MyType {
// Required in order to manually write `Supertrait` for MyType.
extern impl Supertrait;
}
}
This makes it explicit via opt-out whether an auto impl is being applied. However, this is in conflict with the goal of allowing auto impls to be added to existing trait hierarchies. The RFC proposes to resolve this via a temporary attribute which triggers a warning. See my comment here.
Note that properly resolving whether or not to apply an auto impl requires coherence-like analysis.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Amanieu d'Antras, Guillaume Gomez, Jack Huey, Josh Triplett, lcnr, Mara Bos, Vadim Petrochenkov, Jane Lusby |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
compiler (Manuel Drehwald), lang (TC) |
| Task owners |
Manuel Drehwald, LLVM offload/GPU contributors |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
lang (Josh Triplett), lang-docs (TC) |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
bjorn3, Folkert de Vries, [Trifecta Tech Foundation] |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
@dropbear32, @osiewicz |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Task owners |
vision team |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
1 detailed update available.
It is possible to now run the system with two different machines on two different architectures however there is work to be done to make this more robust.
We have worked on ironing out the last bits and pieces for dequeuing benchmarks as well as creating a new user interface to reflect multiple collectors doing work. Presently work is mostly on polishing the UI and handing edge cases through manual testing.
Queue Work:
- https://github.com/rust-lang/rustc-perf/pull/2212
- https://github.com/rust-lang/rustc-perf/pull/2214
- https://github.com/rust-lang/rustc-perf/pull/2216
- https://github.com/rust-lang/rustc-perf/pull/2221
- https://github.com/rust-lang/rustc-perf/pull/2226
- https://github.com/rust-lang/rustc-perf/pull/2230
- https://github.com/rust-lang/rustc-perf/pull/2231
Ui:
- https://github.com/rust-lang/rustc-perf/pull/2217
- https://github.com/rust-lang/rustc-perf/pull/2220
- https://github.com/rust-lang/rustc-perf/pull/2224
- https://github.com/rust-lang/rustc-perf/pull/2227
- https://github.com/rust-lang/rustc-perf/pull/2232
- https://github.com/rust-lang/rustc-perf/pull/2233
- https://github.com/rust-lang/rustc-perf/pull/2236
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |