Skip to content

Commit 1604aaf

Browse files
nikomatsakisibraheemdevbstrie
authored
Apply suggestions from code review
Co-authored-by: Ibraheem Ahmed <[email protected]> Co-authored-by: bstrie <[email protected]>
1 parent a756065 commit 1604aaf

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

text/0000-edition-2021.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Summary
77
[summary]: #summary
88

9-
This RFC describes the plan for the 2021 Edition. It supercedes [RFC 2052]. The proposed 2021 Edition is intentionally more limited than the 2018 Edition. Rather than representing a major marketing push, the 2021 Edition represents a chance for us to introduce changes that would otherwise be backwards incompatible. It is meant to be marketed in many ways as something closer to "just another release".
9+
This RFC describes the plan for the 2021 Edition. It supersedes [RFC 2052]. The proposed 2021 Edition is intentionally more limited than the 2018 Edition. Rather than representing a major marketing push, the 2021 Edition represents a chance for us to introduce changes that would otherwise be backwards incompatible. It is meant to be marketed in many ways as something closer to "just another release".
1010

1111
Key points include:
1212

@@ -64,11 +64,11 @@ Our goal is to see all Rust users adopt the new edition, just as we would genera
6464

6565
## Rust should feel like "one language"
6666

67-
Editions introduce backwards incompatible changes to Rust, which in turn introduces the risk that Rust begins to feel like a language with many dialects. We want to avoid the experience that people come to a Rust project and feel unsure about what a given piece of code means or what kinds of features they can use. This is why we prefer year-based editions (e.g., Rust 2018, Rust 2021) that group together a number of changes, rather than fine-grained opt-in; year-based editions can be succintly described, and ensure that when you go to a codebase, it is relatively easy to determine what set of features is available.
67+
Editions introduce backwards incompatible changes to Rust, which in turn introduces the risk that Rust begins to feel like a language with many dialects. We want to avoid the experience that people come to a Rust project and feel unsure about what a given piece of code means or what kinds of features they can use. This is why we prefer year-based editions (e.g., Rust 2018, Rust 2021) that group together a number of changes, rather than fine-grained opt-in; year-based editions can be succinctly described, and ensure that when you go to a codebase, it is relatively easy to determine what set of features is available.
6868

6969
### Uniform behavior across editions
7070

71-
Persuant to the goal of having Rust feel like "one language", we generally prefer uniform behavior across all editions of Rust, so long as it can be achieved without compromising other design goals. This means for example that if we add a new feature that is backwards compatible, it should be made available in all editions. Similarly, if we deprecate a pattern that we think is problematic, it should be deprecated across all editions.
71+
Pursuant to the goal of having Rust feel like "one language", we generally prefer uniform behavior across all editions of Rust, so long as it can be achieved without compromising other design goals. This means for example that if we add a new feature that is backwards compatible, it should be made available in all editions. Similarly, if we deprecate a pattern that we think is problematic, it should be deprecated across all editions.
7272

7373
Having uniform behavior across editions has several benefits:
7474

@@ -104,7 +104,7 @@ The default edition for new projects will be 2021.
104104

105105
## RFCs that propose edition changes
106106

107-
RFCs that propose migrations should include details about how the migration between editions will work. This migration should be described in sufficient detail that the relevant teams can assess the feasibility of the migration. It will often make sense to consult the compiler team on this question specificially.
107+
RFCs that propose migrations should include details about how the migration between editions will work. This migration should be described in sufficient detail that the relevant teams can assess the feasibility of the migration. It will often make sense to consult the compiler team on this question specifically.
108108

109109
* To perform this evaluation, an RFC proposing a migration should enumerate the situations that will no longer compile with the change.
110110
* For each such situation, it should describe what suggestions will be made to modify the user's code such that it works on both the old and new edition. Optionally, the description may include "idiom lints" that run only in the new edition in order to make the code more idiomatic.
@@ -173,7 +173,7 @@ The following metrics are an attempt to quantify some of the goals we have for e
173173
* 90% of crater-seen crates migrate without manual intervention.
174174
* This can be measured automatically, subject to the limitations of crater (e.g., linux only).
175175
* 90% of crates that were migrated to the newer edition could be migrated in less than 1 hour
176-
* This includes both rustfix but also manual migraton.
176+
* This includes both rustfix but also manual migration.
177177
* This will require a survey or other forms of self-reporting.
178178

179179
### Adoption
@@ -217,7 +217,7 @@ This model works well for larger, sweeping changes, such as the changes to modul
217217
[prior-art]: #prior-art
218218

219219
- [RFC 2052] introduced Rust's editions.
220-
- Ember's notion of feature-driven editions were introduced in [Ember RFC 364](https://github.com/emberjs/rfcs/blob/master/text/0364-roadmap-2018.md).
220+
- Ember's notion of feature-driven editions was introduced in [Ember RFC 364](https://github.com/emberjs/rfcs/blob/master/text/0364-roadmap-2018.md).
221221
- As noted in [RFC 2052], C/C++ and Java compilers both have ways of specifying which version of the standard the code is expected to conform to.
222222
- The [XSLT programming language](https://www.w3.org/TR/xslt-30/) had explicit version information embedded in every program that was used to guide transitions. (Author's note: nikomatsakis used to work on an XSLT compiler and cannot resist citing this example. nikomatsakis also discovered that there is apparently an XSLT 3.0 now. 👀)
223223

@@ -235,4 +235,4 @@ The lang team is expected to decide the final policy on warnings and idiom lints
235235
# Future possibilities
236236
[future-possibilities]: #future-possibilities
237237

238-
None.
238+
None.

0 commit comments

Comments
 (0)