Skip to content

Commit 78bf086

Browse files
author
Aaron Power
committed
Added missing features to state-of-rust
1 parent e32b744 commit 78bf086

File tree

1 file changed

+91
-10
lines changed

1 file changed

+91
-10
lines changed

state-of-rust.md

Lines changed: 91 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ be completed.
99

1010
| Team | Feature | Status | What's next |
1111
| ---- | ------- | ------ | ----------- |
12+
| compiler + lang | [repr(packed) allows invalid unaligned loads][27060] | Implemented | Blocked on `safe_packed_borrows` |
13+
| compiler | [Implement likely/unlikely intrinsic (tracking issue for RFC 1131)][26179] | Implemented | Blocked on decision to deprecate or redesign |
1214
| compiler | [RFC amendment #1384][30450] | Implemented | Blocked on promotion to error |
1315
| compiler | [Specialization and lifetime dispatch][40582] | Unimplemented | Blocked on specialisation |
1416
| compiler | [The "ptx-kernel" ABI][38788] | Implemented | Blocked on decision to stabilise |
@@ -27,15 +29,19 @@ be completed.
2729
| compiler | [`underscore_literal_suffix` future-compatibility warnings][42326] | Implemented | Blocked on making the lint a hard error |
2830
| compiler | [`where_clauses_object_safety` future compatibility lint][51443] | Implemented | Blocked on making the lint deny by default |
2931
| compiler | [🔬 generic associated types (GAT)][44265] | Unimplemented | Blocked on implementation |
30-
| dev-tools + T-rustdoc | [`rustdoc --display-warnings`][41574] | Implemented | Blocked on decision to stabilise |
32+
| dev-tools + rustdoc | [`rustdoc --display-warnings`][41574] | Implemented | Blocked on decision to stabilise |
3133
| dev-tools | [Sanitizer support][39699] | Implemented | Blocked on decision to stabilise |
3234
| dev-tools | [Stabilise `-Zsave-analysis`][43606] | Unimplemented | Blocked on whether a new approach supersedes this |
3335
| dev-tools | [`#[link(kind)]` connecting libraries on Windows][37403] | Implemented | Blocked on name decision and stabilisation |
3436
| dev-tools | [`--print target-spec-json`][38338] | Implemented | Blocked on decision to stabilise |
3537
| dev-tools | [`-Z profile` ][42524] | Implemented | Blocked on decision to stabilise |
3638
| dev-tools | [libtest JSON output][49359] | Implemented | Blocked on decision to stabilise |
37-
| lang + T-libs | ["macro naming and modularisation" (RFC #1561)][35896] | Implementation in progress | Blocked on unresolved design decisions |
38-
| lang + T-libs | [RFC 1566: Procedural macros][38356] | Implementation in progress | Blocked on macros 1.2 stabilisation |
39+
| lang + libs | ["macro naming and modularisation" (RFC #1561)][35896] | Implementation in progress | Blocked on unresolved design decisions |
40+
| lang + libs | [RFC 1566: Procedural macros][38356] | Implementation in progress | Blocked on macros 1.2 stabilisation |
41+
| lang + libs | [DST coercions (coerce_unsized, unsize)][27732] | Unimplemented | Blocked on creation of custom DST RFC |
42+
| lang + libs | [Fn traits (`unboxed_closures` feature)][29625] | Implemented | Blocked on unresolved design decisions |
43+
| lang + libs | [`concat_idents`][29599] | Implemented | Blocked on macro improvements |
44+
| lang + libs | [`std::raw`][27751] | Unimplemented | Blocked on deprecation implementation |
3945
| lang | ['Allow `Self` to appear in the where clause of trait impls'][38864] | Implemented | Blocked on [#35237] |
4046
| lang | [128-bit integer support (RFC 1504)][35118] | Implementation in progress | Blocked on enums with 128 discriminant |
4147
| lang | [Allocator traits and std::heap][32838] | Implementation in progress | Blocked on audit and design decisions |
@@ -44,21 +50,26 @@ be completed.
4450
| lang | [Exclusive range patterns][37854] | Implemented | Blocked on decision to stabilise |
4551
| lang | [Exhaustive integer patterns tracking issue][50907] | Implementation in progress | Blocked implementation being merged |
4652
| lang | [Naked fns (RFC #1201)][32408] | Implemented | Blocked on design feedback and the inline assembly feature. |
53+
| lang | [Nonparametric dropck (tracking issue for RFC 1238)][28498] | Implemented | Blocked on `#[may_dangle]` and `dropck_parametricity` |
54+
| lang | [Opt-in built-in bounds traits RFC tracker (optin_builtin_traits)][13231] | Implementation in progress | Blocked on conditional negative implements implementation |
4755
| lang | [Option::xor][50512] | Implemented | Blocked on decision to stable |
4856
| lang | [Patterns in functions without body][35203] | Implemented | Blocked on making lint deny by default |
4957
| lang | [Promoting `!` to a type (RFC 1216)][35121] | Implementation in progress | Blocked on decision around coercion |
58+
| lang | [RFC #495 (features `slice_patterns` and `advanced_slice_patterns`)][23121] | Implemented | Blocked on NLL |
5059
| lang | [RFC 1872: `exhaustive_patterns`][51085] | Implemented | Blocked on the never type |
5160
| lang | [RFC 554: `pattern_parentheses` ][51087] | Implemented | Blocked on stabilisation PR |
5261
| lang | [The `#[used]` attribute][40289] | Implemented | Blocked on decision to stabilise |
5362
| lang | [The `lifetime` specifier for `macro_rules!`][34303] | Implemented | Waiting on 1.28.0 stable release |
54-
| lang | [Tracking issue for `fundamental` feature][29635] | Unimplemented | Blocked on further dicussion |
55-
| lang | [Tracking issue for `no_core` stabilization][29639] | Implemented | Blocked on lang items |
63+
| lang | [Tracking Issue for RFC 213: Default Type Parameter Fallback][27336] | Implemented | Blocked on unresolved design decisions |
5664
| lang | [Tracking issue: declarative macros 2.0][39412] | Implementation in progress | Blocked on macro 2.0 hygiene RFC |
5765
| lang | [Trait aliases][41517] | Unimplemented | Blocked on implementation |
5866
| lang | [Tweaks to object safety (RFC 2027)][43561] | Unimplemented | Blocked on implementation |
67+
| lang | [Type ascription (tracking issue for RFC 803)][23416] | Implementation in progress | Blocked on decision to deprecate or redesign |
5968
| lang | [Unsized tuple coercion][42877] | Implemented | Blocked on decision to stabilise |
6069
| lang | [Untagged unions (RFC 1444)][32836] | Unimplemented | Blocked on unresolved questions. |
70+
| lang | [`#[link_args]`][29596] | Implemented | Blocked on decision to stabilise |
6171
| lang | [`#[repr(packed = "N")]` (RFC 1399)][33158] | Unimplemented | Blocked on unresolved questions |
72+
| lang | [`#[thread_local]`][29594] | Implemented | Blocked on Unsoundness with generators |
6273
| lang | [`:vis` macro matcher][41022] | Implemented | Blocked on `crate` becoming a keyword |
6374
| lang | [`?` macro repetition][48075] | Implemented | Blocked on decision around edition dependent behaviour |
6475
| lang | [`?` operator and `catch` expressions (RFC 243, `question_mark`)][31436] | Implemented | Blocked on reservation of `try` operator. |
@@ -67,36 +78,55 @@ be completed.
6778
| lang | [`cfg_target_vendor`][29718] | Implemented | Blocked on decision for stabilisation |
6879
| lang | [`custom_attribute` & `rustc_attrs`][29642] | Unimplemented | Blocked on decision for deprecation or stabilisation |
6980
| lang | [`custom_derive`][29644] | Deprecated | Blocked on rocket for removal |
81+
| lang | [`fundamental` feature][29635] | Unimplemented | Blocked on further dicussion |
7082
| lang | [`illegal_floating_point_literal_pattern` compatibility lint][41620] | Implemented | Blocked on making the lint deny by default |
7183
| lang | [`impl Trait` (RFC 1522, RFC 1951, RFC 2071)][34511] | Implementation in progress | Blocked elision, error messages, and `abstract type` |
7284
| lang | [`invalid_type_param_default` compatibility lint][36887] | Implemented | Blocked on making the lint a hard error |
7385
| lang | [`legacy_constructor_visibility` compatibility lint][39207] | Implemented | Blocked on making the lint a hard error |
86+
| lang | [`link_llvm_intrinsics`][29602] | Implemented | Apparently permanently unstable |
7487
| lang | [`literal` fragment specifier (RFC 1576)][35625] | Implemented | Waiting on 1.28.0 stable release |
88+
| lang | [`log_syntax`, `trace_macros`][29598] | Implemented | Blocked on decision to stabilise |
89+
| lang | [`main` feature][29634] | Implemented | Blocked on unclear direction |
90+
| lang | [`no_core` stabilization][29639] | Implemented | Blocked on lang items |
91+
| lang | [`on_unimplemented` feature][29628] | Implemented | Blocked on decision to stabilise |
92+
| lang | [`plugin`, `plugin_registrar` features][29597] | Implemented | Blocked on macros 2.0 |
7593
| lang | [`private_in_public` compatibility lint.][34537] | Implemented | Blocked on PR to make lint deny by default |
94+
| lang | [`quote` feature][29601] | Implemented | Blocked on deprecation by macros 2.0 |
7695
| lang | [`resolve_trait_on_defaulted_unit` compatibility lint][39216] | Implemented | Blocked on making the lint a hard error |
7796
| lang | [`safe_extern_statics` compatibility lint][36247] | Implemented | Blocked on making the lint a hard error |
7897
| lang | [`use $crate;` compatibility warning][37390] | Implemented | Blocked on making the lint deny by default |
7998
| lang | [`{Range, RangeFrom, RangeTo}::contains`][32311] | Implemented | Blocked on [unresolved questions][range_questions] |
80-
| lang | [`associated_type_defaults`][29661] | Unimplemented | Blocked on decision on deprecation or semantic change |
99+
| lang | [const fn tracking issue (RFC 911)][24111] | Implemented | Blocked on unresolved design decisions |
100+
| lang | [constant prop not causing add'l errors (RFC #1229)][28238] | Unimplemented | Currently unclear on what is required next |
101+
| lang | [non-ASCII identifiers (feature "non_ascii_idents")][28979] | Implemented | Blocked on [allow non-ASCII RFC] decision |
102+
| lang | [stmt_expr_attributes: Add attributes to expressions, etc.][15701] | Implemented | Blocked on stabilisation of attributes on expressions and blocks |
103+
| lang | [the `linkage` feature][29603] | Implemented | Blocked on [#18804] |
104+
| lang | [the `start` feature][29633] | Implemented | Blocked on decision to stabilise |
105+
| lang | | [`associated_type_defaults`][29661] | Unimplemented | Blocked on decision on deprecation or semantic change |
81106
| libes | [Specialization (RFC 1210)][31844] | Implemented | Blocked on restrictions of lifetime dispatch |
82107
| libs | [API convention for blocking-, timeout-, and/or deadline-related functions][46316] | Unimplemented | Blocked on FCP |
83108
| libs | [Add `is_empty` function to `ExactSizeIterator`][35428] | Unimplemented | Blocked on unresolved design decisions |
84109
| libs | [Adding more atomic integer types][32976] | Implementation in progress | Blocked on atomic `128` bit integers. |
85110
| libs | [Allow a `HashMap` and `BTreeMap` entry to be replaced.][44286] | Implemented | Blocked on decision to stabilise |
86111
| libs | [Cell::update][50186] | Implemented | Blocked on unresolved questions |
87112
| libs | [Custom allocators in standard collections][42774] | Implementation in progress | Blocked on [#47043] and [#50882] |
113+
| libs | [FixedSizeArray trait][27778] | Implemented | Blocked on const generics |
114+
| libs | [FnBox()][28796] | Unimplemented | Blocked on issues with the borrow checker |
88115
| libs | [IP constructors][44582] | Implementation in progress | Blocked on moving the implementation to use associated consts |
89116
| libs | [Integer methods for Wrapping][32463] | Implementation in progress | Some methods are still missing implementations. |
117+
| libs | [Ipv{4,6}Addr convenience methods][27709] | Implementation in progress | Blocked on [#51832] |
90118
| libs | [Path/PathBuf normalization methods][47402] | Unimplemented | Blocked on implementation |
91119
| libs | [Pluggable panic implementations (RFC 1513)][32837] | Unimplemented | Blocked on unresolved design decisions |
92120
| libs | [RFC 2045: improving `#[target_feature]`][44839] | Implemented | Blocked on documentation and stabilisation |
93121
| libs | [Reversing the bit pattern in an integer][48763] | Implemented | Blocked on decision to stabilise |
122+
| libs | [SIMD support][27731] | Implementation in progress | Blocked on implementation |
94123
| libs | [Tracking Issue: Duration::{as_nanos, as_micros, as_millis}][50202] | Implemented | Blocked on decision to stable |
95124
| libs | [TrustedLen (`trusted_len`)][37572] | Implemented | Blocked on specialisation |
96125
| libs | [TryFrom/TryInto traits][33417] | Implemented | Blocked on the `!`/never type |
97126
| libs | [UnicodeVersion and UNICODE_VERSION][49726] | Implemented | Blocked on concerns on whether updating const values is a breaking change |
98127
| libs | [Vec::remove_item][40062] | Implemented | Blocked on unresolved concerns |
99128
| libs | [Vec::resize_default][41758] | Implemented | Blocked on decision to stabilise |
129+
| libs | [`#[bench]` and benchmarking support][29553] | Implemented | Blocked on [`black_box` RFC] |
100130
| libs | [`Box::into_raw_non_null`][47336] | Implemented | Blocked on decision to stabilise |
101131
| libs | [`Read::initializer`][42788] | Implemented | Blocked on design decisions |
102132
| libs | [`Result<Option>` and `Option<Result>` Conversion][47338] | Implemented | Blocked on unresolved questions |
@@ -105,12 +135,58 @@ be completed.
105135
| libs | [`exact_chunks,exact_chunks_mut`][47115] | Implemented | Blocked on unresolved questions |
106136
| libs | [`ops::Try`][42327] | Implemented? | Unclear on what is required next |
107137
| libs | [`ptr::offset_to`][41079] | Deprecated | Blocked on removal |
138+
| libs | [`slice_concat_ext`][27747] | Implemented | Blocked on documentation and decision to stabilise |
108139
| libs | [`std::io::{set_panic, set_print}`][31343] | Implemented | Blocked on decision to stabilise |
109140
| libs | [`step_trait` stabilization][42168] | Implementation in progress | Blocked on replacement methods and `TrustedLen` |
110141
| libs | [`sync::Once` poisoning][33577] | Implemented | Blocked on inactivity |
142+
| libs | [channel selection][27800] | Implemented | Blocked on decision to stabilise the `select!` macro |
143+
| libs | [crates that are compiler dependencies][27812] | Unimplemented | Blocked on unclear direction |
144+
| libs | [extra linked list methods][27794] | Implemented | Blocked on decision to stabilise |
145+
| libs | [location of facade crates][27783] | Implementation in progress | Blocked on [RFC 2480]
146+
| libs | [str escaping][27791] | Implemented | Blocked on stabilisation PR |
147+
| libs | [string patterns][27721] | Unimplemented | Blocked on [RFC 2295] |
148+
| libs | [type_id][27745] | Implemented | Blocked on FCP confusion |
111149
| libs | [write_all_at/read_exact_at convenience methods ][51984] | Implemented | Blocked on decision to stabilise |
112150

113-
151+
[13231]: https://github.com/rust-lang/rust/issues/13231
152+
[15701]: https://github.com/rust-lang/rust/issues/15701
153+
[23121]: https://github.com/rust-lang/rust/issues/23121
154+
[23416]: https://github.com/rust-lang/rust/issues/23416
155+
[24111]: https://github.com/rust-lang/rust/issues/24111
156+
[26179]: https://github.com/rust-lang/rust/issues/26179
157+
[27060]: https://github.com/rust-lang/rust/issues/27060
158+
[27336]: https://github.com/rust-lang/rust/issues/27336
159+
[27709]: https://github.com/rust-lang/rust/issues/27709
160+
[27721]: https://github.com/rust-lang/rust/issues/27721
161+
[27731]: https://github.com/rust-lang/rust/issues/27731
162+
[27732]: https://github.com/rust-lang/rust/issues/27732
163+
[27745]: https://github.com/rust-lang/rust/issues/27745
164+
[27747]: https://github.com/rust-lang/rust/issues/27747
165+
[27751]: https://github.com/rust-lang/rust/issues/27751
166+
[27778]: https://github.com/rust-lang/rust/issues/27778
167+
[27783]: https://github.com/rust-lang/rust/issues/27783
168+
[27791]: https://github.com/rust-lang/rust/issues/27791
169+
[27794]: https://github.com/rust-lang/rust/issues/27794
170+
[27800]: https://github.com/rust-lang/rust/issues/27800
171+
[27812]: https://github.com/rust-lang/rust/issues/27812
172+
[28238]: https://github.com/rust-lang/rust/issues/28238
173+
[28498]: https://github.com/rust-lang/rust/issues/28498
174+
[28796]: https://github.com/rust-lang/rust/issues/28796
175+
[28979]: https://github.com/rust-lang/rust/issues/28979
176+
[29553]: https://github.com/rust-lang/rust/issues/29553
177+
[29594]: https://github.com/rust-lang/rust/issues/29594
178+
[29596]: https://github.com/rust-lang/rust/issues/29596
179+
[29597]: https://github.com/rust-lang/rust/issues/29597
180+
[29598]: https://github.com/rust-lang/rust/issues/29598
181+
[29599]: https://github.com/rust-lang/rust/issues/29599
182+
[29601]: https://github.com/rust-lang/rust/issues/29601
183+
[29602]: https://github.com/rust-lang/rust/issues/29602
184+
[29603]: https://github.com/rust-lang/rust/issues/29603
185+
[29625]: https://github.com/rust-lang/rust/issues/29625
186+
[29628]: https://github.com/rust-lang/rust/issues/29628
187+
[29633]: https://github.com/rust-lang/rust/issues/29633
188+
[29634]: https://github.com/rust-lang/rust/issues/29634
189+
[29635]: https://github.com/rust-lang/rust/issues/29635
114190
[29639]: https://github.com/rust-lang/rust/issues/29639
115191
[29635]: https://github.com/rust-lang/rust/issues/29635
116192
[29641]: https://github.com/rust-lang/rust/issues/29641
@@ -211,9 +287,14 @@ be completed.
211287
[51443]: https://github.com/rust-lang/rust/issues/51443
212288
[51984]: https://github.com/rust-lang/rust/issues/51984
213289
[52090]: https://github.com/rust-lang/rust/issues/52090
214-
[range_questions]: https://github.com/rust-lang/rust/issues/32311#issuecomment-312388435
290+
291+
[#18804]: https://github.com/rust-lang/rust/issues/18804
215292
[#35237]: https://github.com/rust-lang/rust/issues/35237
216293
[#47043]: https://github.com/rust-lang/rust/issues/47043
217294
[#50882]: https://github.com/rust-lang/rust/issues/50882
218-
219-
295+
[#51832]: https://github.com/rust-lang/rust/pull/51832
296+
[RFC 2295]: https://github.com/rust-lang/rust/issues/49802
297+
[RFC 2480]: https://github.com/rust-lang/rfcs/pull/2480
298+
[`black_box` RFC]: https://github.com/rust-lang/rfcs/pull/2360
299+
[allow non-ASCII RFC]: https://github.com/rust-lang/rfcs/pull/2457
300+
[range_questions]: https://github.com/rust-lang/rust/issues/32311#issuecomment-312388435

0 commit comments

Comments
 (0)