You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: text/3509-prelude-2024-future.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ mod rust_2024 {
55
55
# Tradeoffs
56
56
[tradeoffs]: #tradeoffs
57
57
58
-
Both the `Future` and `IntoFuture` definitions in the standard library are considered _canonical_: there exist no widespread alternative definitions in the Rust ecosystem. Simply having both traits in scope is unlikely to lead to any issues, and the only likely noticable outcome is that authoring async code will require slightly less effort.
58
+
Both the `Future` and `IntoFuture` definitions in the standard library are considered _canonical_: there exist no widespread alternative definitions in the Rust ecosystem. Simply having both traits in scope is unlikely to lead to any issues, and the only likely noticeable outcome is that authoring async code will require slightly less effort.
@@ -68,7 +68,7 @@ However, it's possible to use different criteria for what should be included in
68
68
69
69
Both of these perspectives can be applied to other scenarios too. Let's say we're finally able to stabilize the `Try` trait; should this be included in the following prelude? From a systems-based perspective, the answer would be "yes", since it's a fundamental operation which enables types to be named. From the merit-based perspective the answer would likely be "no", since it will be a new trait with limited usage. But it might be re-considered once it sees enough usage.
70
70
71
-
We believe that taking a merit-based perspective makes sense if the upsides of a choice also carry noteable downsides. But as covered in the "tradeoffs" section of this RFC, there don't appear to be any meaningful downsides. So instead it seems better to base our evalutation on how the traits relate to the language, rather than on how much usage they see.
71
+
We believe that taking a merit-based perspective makes sense if the upsides of a choice also carry notable downsides. But as covered in the "tradeoffs" section of this RFC, there don't appear to be any meaningful downsides. So instead it seems better to base our evaluation on how the traits relate to the language, rather than on how much usage they see.
72
72
73
73
# Prior art
74
74
[prior-art]: #prior-art
@@ -81,7 +81,7 @@ The Rust 2021 edition includes three new traits:
81
81
-`TryFrom` - fallible conversion
82
82
-`TryInto` - fallible conversion (inverted)
83
83
84
-
All three of these traits represent fundamental operations present in Rust. This is a natural supplement to other fundamental operations present in earlier editions such as `Try`, `Into`, and `IntoIterator`. I'd argue that `Future` and `IntoFuture` have an an equal, if not more fundamental relationship to the Rust language than `TryFrom` or `FromIterator` do.
84
+
All three of these traits represent fundamental operations present in Rust. This is a natural supplement to other fundamental operations present in earlier editions such as `Try`, `Into`, and `IntoIterator`. I'd argue that `Future` and `IntoFuture` have an equal, if not more fundamental relationship to the Rust language than `TryFrom` or `FromIterator` do.
Copy file name to clipboardExpand all lines: text/3543-patchable-function-entry.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -203,7 +203,7 @@ Possible actions we could take include:
203
203
204
204
Since we don't have a way to "reset" inlining to default, any plan involving suppression of inlining also needs to come with additional configuration to suppress the suppression.
205
205
206
-
### Inline suppresssion
206
+
### Inline suppression
207
207
If the function has nonzero `entry` padding, prevent inlining.
208
208
209
209
Add `-C allow-patchable-function-inlining` to disable this behavior.
@@ -214,7 +214,7 @@ The advantage of this approach is that any instrumentation will always trigger w
214
214
215
215
Disadvantages:
216
216
217
-
- When the flag is passed, we will disable inlining *nearly everywhere*. This would be disasterous for performance, given the number of functions Rust depends on inlining to optimize.
217
+
- When the flag is passed, we will disable inlining *nearly everywhere*. This would be disastrous for performance, given the number of functions Rust depends on inlining to optimize.
218
218
- This does not match C/C++ behavior, which means most existing use cases will be surprised.
219
219
- We need to add flag complexity to match existing use cases.
0 commit comments