-
Notifications
You must be signed in to change notification settings - Fork 19
/
roadmap.toml
152 lines (138 loc) · 6.77 KB
/
roadmap.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
[[group]]
name = "rustc-universe-transition"
label = "rustc universe transition"
href = "https://github.com/rust-lang/rust/issues/56105"
items = [
{ label = "introduce universe system into rustc", status="Complete", href="https://github.com/rust-lang/rust/pull/65232" },
{ label = "extend NLL solver with new universes", status="Complete", href="https://github.com/rust-lang/rust/pull/70950" },
{ label = "resolve wasm-bindgen interaction", status="Assigned" },
]
[[group]]
name = "align-rustc-predicate"
label = "Align rustc predicates with chalk predicates"
requires = ["rustc-universe-transition"]
href = "https://github.com/rust-lang/compiler-team/issues/285"
items = [
{ label = "isolate Binder into a Forall goal" },
{ label = "introduce Implication" },
{ label = "introduce Forall goals with types" },
]
[[group]]
name = "recursive-solver"
label = "Experiment with a recursive chalk solver"
items = [
{ label = "Write-up the idea that Niko had", status="Complete", href="https://gist.github.com/nikomatsakis/bfbdbe588d6fc61ecb09e3b51847fb7c" },
{ label = "Build prototype", status="Complete", href="https://github.com/rust-lang/chalk/issues/351" },
{ label = "Resolve coinductive semantics", status="Assigned", href="https://github.com/rust-lang/chalk/issues/399" },
]
[[group]]
name = "impl-trait"
label = "Model `impl Trait`"
items = [
{ label = "Preliminary model for opaque types where hidden types are known", status="Assigned", ref = "https://github.com/rust-lang/chalk/issues/335" },
]
[[group]]
name = "chalk-outlives"
label = "Extend chalk with outlives goals"
href = "https://github.com/rust-lang/chalk/issues/435"
items = [
{ label = "add region outlives goals", status = "Complete" },
{ label = "add type outlives goals", status = "Complete" },
{ label = "add type outlives constraints", status = "Complete" },
]
[[group]]
name = "rust-analyzer-integration"
label = "Integrate with rust-analyzer"
requires = ["impl-trait"]
items = [
{ label = "Ensure that we never need to ask for impls of unknown types", port = "askfor", requires = ["syntactic-semantic-equality"] },
{ label = "Deal with performance problems", status = "Blocked" },
{ label = "Deal with memory usage", status = "Blocked" },
]
[[group]]
name = "syntactic-semantic-equality"
label = "Separate syntactic equality from semantic equality"
href = "https://github.com/rust-lang/chalk/issues/364"
requires = [
"map-chalk-types-to-rustc-types:debruijn",
"map-chalk-types-to-rustc-types:visit"
]
status = "Assigned"
items = [
{ label = "Implementation" }
]
[[group]]
name = "map-chalk-types-to-rustc-types"
label = "Map chalk types to rustc types"
href = "https://github.com/rust-lang/types-team/issues/16"
items = [
{ label = "Rename Projection to Alias", status="Complete" },
{ label = "Make ty intern method take &self", href="https://github.com/rust-lang-nursery/chalk/issues/328", status="Complete" },
{ label = "Make ty data methods take &self", href="https://github.com/rust-lang/chalk/issues/339", status="Complete" },
{ label = "Make other intern method take &self", href="https://github.com/rust-lang-nursery/chalk/issues/340", status="Complete" },
{ label = "Make other data methods take &self", href="https://github.com/rust-lang/chalk/issues/341", status="Complete" },
{ label = "Align placeholders and ty::Param", status="Blocked" },
{ label = "Move Identifier to TypeFamily", status="Complete" },
{ label = "Adapt rustc's debruijn index model", port="debruijn", status="Complete", href="https://github.com/rust-lang/chalk/issues/334" },
{ label = "Adapt rustc's representation of late-bound items", status="Blocked" },
{ label = "Remove all vectors, boxes", href="https://github.com/rust-lang/chalk/issues/369", status="Complete" },
{ label = "Introduce a `Visit` trait", href="https://github.com/rust-lang/chalk/issues/333", status="Complete", port="visit" },
{ label = "Add and integrate flags into types and elsewhere" },
]
[[group]]
name = "chalk-builtin"
label = "Extend chalk-solve with knowledge of builtin traits and types"
href = "https://github.com/rust-lang/chalk/issues/363"
items = [
{ label="create concept of well-known traits", status="Complete", href="https://github.com/rust-lang/chalk/issues/356" },
{ label="support the `Sized` trait", status="Complete", href="https://github.com/rust-lang/chalk/issues/261" },
{ label="support the `Clone` trait", status="Complete", href="https://github.com/rust-lang/chalk/issues/363" },
{ label="support the `Copy` trait", status="Complete", href="https://github.com/rust-lang/chalk/issues/363" },
{ label="model `ObjectSafe` goals", status="Complete", href="https://github.com/rust-lang/chalk/pull/434" },
{ label="support the `Unsized` trait", status="Complete", href="https://github.com/rust-lang/chalk/pull/427" },
{ label="extend `TypeName` with builtin types", href="https://github.com/rust-lang/chalk/issues/368" },
{ label="support the `Fn` traits", status="Complete" },
]
[[group]]
name = "chalk-const"
label = "Extend chalk to support constants"
items = [
{ label="introduce constant 'kind', alongside types and lifetimes", status="Complete", href="https://github.com/rust-lang/chalk/pull/393" },
]
[[group]]
name = "rustc-integration-mvp"
label = "Integrate chalk-solve into rustc"
href = "https://github.com/rust-lang/types-team/issues/18"
requires = [ "map-chalk-types-to-rustc-types", "chalk-const", "chalk-builtin", "chalk-outlives" ]
items = [
{ label="remove old chalk support", status="Complete", href="https://github.com/rust-lang/rust/pull/69247" },
{ label="exploratory integration to better uncover requirements", href="https://github.com/rust-lang/rust/pull/69406", status="Complete" },
{ label="map rustc types to chalk types", status="Complete" },
{ label="map rustc predicates to chalk goals, clauses", status="Complete" },
{ label="implement RustIrDatabase in trait", status="Complete" },
]
[[group]]
name = "features"
label = "Explore proposed language features"
requires = [ "rustc-integration-mvp", "rust-analyzer-integration" ]
status = "Blocked"
items = [
{ label="Implied bounds" },
{ label="Specialization", href="https://github.com/rust-lang/chalk/issues/9" },
]
[[group]]
name = "chalk-debugging"
label = "Improve ability to debug chalk from within rustc or rust-analyzer"
requires = [ ]
items = [
{ label="Integrate tracing library", href="https://github.com/rust-lang/chalk/issues/337", status="Complete" },
{ label="Extract standalone examples automatically", href="https://github.com/rust-lang/chalk/issues/365", status="Assigned" },
]
[[goal]]
name = "library"
label = "Chalk usable as a standalone library for traits solving"
requires = [ "rustc-integration-mvp", "rust-analyzer-integration", "chalk-debugging" ]
[[goal]]
name = "gats"
label = "Deploy GATs in Rust nightly"
requires = [ "align-rustc-predicate" ]