1
1
# Rust RFCs
2
+ [ Rust RFCs ] : #rust-rfcs
3
+
4
+ (jump forward to: [ Table of Contents] , [ Active RFC List] )
2
5
3
6
Many changes, including bug fixes and documentation improvements can be
4
7
implemented and reviewed via the normal GitHub pull request workflow.
@@ -12,7 +15,54 @@ consistent and controlled path for new features to enter the language
12
15
and standard libraries, so that all stakeholders can be confident about
13
16
the direction the language is evolving in.
14
17
18
+ ## Active RFC List
19
+ [ Active RFC List ] : #active-rfc-list
20
+
21
+ * [ 0002-rfc-process.md] ( text/0002-rfc-process.md )
22
+ * [ 0008-new-intrinsics.md] ( text/0008-new-intrinsics.md )
23
+ * [ 0016-more-attributes.md] ( text/0016-more-attributes.md )
24
+ * [ 0019-opt-in-builtin-traits.md] ( text/0019-opt-in-builtin-traits.md )
25
+ * [ 0048-traits.md] ( text/0048-traits.md )
26
+ * [ 0066-better-temporary-lifetimes.md] ( text/0066-better-temporary-lifetimes.md )
27
+ * [ 0090-lexical-syntax-simplification.md] ( text/0090-lexical-syntax-simplification.md )
28
+ * [ 0107-pattern-guards-with-bind-by-move.md] ( text/0107-pattern-guards-with-bind-by-move.md )
29
+ * [ 0114-closures.md] ( text/0114-closures.md )
30
+ * [ 0131-target-specification.md] ( text/0131-target-specification.md )
31
+ * [ 0132-ufcs.md] ( text/0132-ufcs.md )
32
+ * [ 0135-where.md] ( text/0135-where.md )
33
+ * [ 0141-lifetime-elision.md] ( text/0141-lifetime-elision.md )
34
+ * [ 0151-capture-by-value.md] ( text/0151-capture-by-value.md )
35
+ * [ 0195-associated-items.md] ( text/0195-associated-items.md )
36
+ * [ 0198-slice-notation.md] ( text/0198-slice-notation.md )
37
+ * [ 0199-ownership-variants.md] ( text/0199-ownership-variants.md )
38
+ * [ 0201-error-chaining.md] ( text/0201-error-chaining.md )
39
+ * [ 0212-restore-int-fallback.md] ( text/0212-restore-int-fallback.md )
40
+ * [ 0214-while-let.md] ( text/0214-while-let.md )
41
+ * [ 0216-collection-views.md] ( text/0216-collection-views.md )
42
+ * [ 0221-panic.md] ( text/0221-panic.md )
43
+ * [ 0230-remove-runtime.md] ( text/0230-remove-runtime.md )
44
+ * [ 0231-upvar-capture-inference.md] ( text/0231-upvar-capture-inference.md )
45
+ * [ 0240-unsafe-api-location.md] ( text/0240-unsafe-api-location.md )
46
+ * [ 0246-const-vs-static.md] ( text/0246-const-vs-static.md )
47
+ * [ 0341-remove-virtual-structs.md] ( text/0341-remove-virtual-structs.md )
48
+ * [ 0342-keywords.md] ( text/0342-keywords.md )
49
+
50
+ ## Table of Contents
51
+ [ Table of Contents ] : #table-of-contents
52
+ * [ Opening] ( #rust-rfcs )
53
+ * [ Active RFC List]
54
+ * [ Table of Contents]
55
+ * [ When you need to follow this process]
56
+ * [ What the process is]
57
+ * [ The role of the shepherd]
58
+ * [ The RFC life-cycle]
59
+ * [ Implementing an RFC]
60
+ * [ Reviewing RFC's]
61
+ * [ RFC Postponement]
62
+ * [ Help this is all too informal!]
63
+
15
64
## When you need to follow this process
65
+ [ When you need to follow this process ] : #when-you-need-to-follow-this-process
16
66
17
67
You need to follow this process if you intend to make "substantial"
18
68
changes to the Rust distribution. What constitutes a "substantial"
@@ -39,7 +89,7 @@ through the RFC process, it may be closed with a polite request to
39
89
submit an RFC first.
40
90
41
91
## What the process is
42
-
92
+ [ What the process is ] : #what-the-process-is
43
93
In short, to get a major feature added to Rust, one must first get the
44
94
RFC merged into the RFC repo as a markdown file. At that point the RFC
45
95
is 'active' and may be implemented with the goal of eventual inclusion
@@ -62,6 +112,7 @@ merging the pull request and assigning the RFC a number, at which point
62
112
the RFC is 'active', or reject it by closing the pull request.
63
113
64
114
## The role of the shepherd
115
+ [ The role of the shepherd ] : the-role-of-the-shepherd
65
116
66
117
During triage, every RFC will either be closed or assigned a shepherd.
67
118
The role of the shepherd is to move the RFC through the process. This
@@ -74,6 +125,7 @@ here is to "front-load" as much of the feedback as possible before the
74
125
point where we actually reach a decision.
75
126
76
127
## The RFC life-cycle
128
+ [ The RFC life-cycle ] : #the-rfc-life-cycle
77
129
78
130
Once an RFC becomes active then authors may implement it and submit the
79
131
feature as a pull request to the Rust repo. An 'active' is not a rubber
@@ -100,6 +152,7 @@ that fails after becoming active is 'inactive' and moves to the
100
152
'inactive' folder.
101
153
102
154
## Implementing an RFC
155
+ [ Implementing an RFC ] : #implementing-an-rfc
103
156
104
157
Some accepted RFC's represent vital features that need to be
105
158
implemented right away. Other accepted RFC's can represent features
@@ -118,6 +171,7 @@ RFC, but cannot determine if someone else is already working on it,
118
171
feel free to ask (e.g. by leaving a comment on the associated issue).
119
172
120
173
## Reviewing RFC's
174
+ [ Reviewing RFC's ] : #reviewing-rfcs
121
175
122
176
Each week the [ core team] will attempt to review some set of open RFC
123
177
pull requests. The choice of pull requests to review is largely
@@ -144,6 +198,7 @@ should act as a "shepherd" for the feature. The shepherd need not
144
198
its virtues and the community’s desire for it.
145
199
146
200
## RFC Postponement
201
+ [ RFC Postponement ] : #rfc-postponement
147
202
148
203
Some RFC pull requests are tagged with the 'postponed' label when they
149
204
are closed (as part of the rejection process). An RFC closed with
@@ -161,6 +216,7 @@ response is to close the RFC, not postpone it.)
161
216
162
217
163
218
### Help this is all too informal!
219
+ [ Help this is all too informal! ] : #help-this-is-all-too-informal
164
220
165
221
The process is intended to be as lightweight as reasonable for the
166
222
present circumstances. As usual, we are trying to let the process be
0 commit comments