-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking issue for 1.0.0 tracking issues #39954
Comments
@SimonSapin btw, you could also have run tidy. It outputs you a list of features and whether they are active or stable. |
Interesting, thanks. It looks like the it’s same list, but it doesn’t include tracking issue numbers. |
link_llvm_intrinsics is perma-unstable, and so is fundamental IIRC. |
@nagisa Ok, edited. Also edited to add library features. New total count: |
It'd be great to add this to each of their pages in the unstable book. I have some ideas... |
@steveklabnik “this” being which of all unstable features |
I'd like some kind of status like this for all of the flags, honestly. It's just these ones that you've done the work for :) |
Ah, so you mean tagging which features we are planning to deprecate vs which ones have some chance of eventual stabilization. |
Triage: is this obsolete? |
That would be ironic |
@ishitatsuyuki Depends what you mean. This issue is not yet at the point where it should be closed because every feature that existed 1.0.0 are now either stable or removed. I’ve just gone through checkboxes and made a couple updates, but there are still some that are unchecked. As to whether it’s useful, that’s a different question. When the stability mechanism was introduced some months before 1.0.0 we started out with everything in the standard library and a lot of language features being unstable "by default", then worked on stabilizing (or removing) them one by one. I think it’s mildly interesting to track the progress of that, and in particular to see what’s left and consider why each of those is still blocked. |
This issue mentions #[set_stdio] as being of uncertain stabilization future. I got curious and went looking. In #26868 (comment) it was recommended #[set_stdio] not be made stable. Ever. |
It looks (based on a quick CTRL-F) like https://rust-lang.github.io/rfcs/2318-custom-test-frameworks.html does not discuss capturing stdout/stderr in tests. I think it’s potentially interesting to discuss the needs for custom test frameworks and potential solutions, but perhaps not in this thread. |
visited for T-compiler backlog bonanza. Since all of the issues listed here are themselves tracking issues, and now both compiler and lang team are doing regular backlog bonanzas to work through backlog of features, we do not think this kind of meta-tracking issue is buying as much as it did back in 2017-2019. (We do think it was quite an awesome feat to gather all this info back then though!) closing |
In the months before Rust 1.0, the stability mechanism was introduced. At first all of the standard library was marked as unstable, then features were stabilized one by one.
I was curious what remains from that time that is still unstable today. I got some data by running:
grep 'active.*1\.0\.0", Some' src/libsyntax/feature_gate.rs
To get them out of the way, I expect these feature gates to be made obsolete (deprecated and eventually removed) by procedural macros 2.0 (#38356):
log_syntax
Tracking issue forlog_syntax
,trace_macros
#29598trace_macros
Tracking issue forlog_syntax
,trace_macros
#29598macro_reexport
Tracking issue formacro_reexport
feature #29638plugin
Tracking issue for plugin stabilization (plugin
,plugin_registrar
features) #29597 (removed)plugin_registrar
Tracking issue for plugin stabilization (plugin
,plugin_registrar
features) #29597 (removed)custom_attribute
Tracking issue forcustom_attribute
features #29642custom_derive
Tracking issue forcustom_derive
feature #29644rustc_attrs
Tracking issue forcustom_attribute
features #29642quote
Tracking issue forquote
feature #29601These have also been proposed for deprecation:
main
Tracking issue formain
feature #29634placement_in_syntax
Tracking issue for placement new #27779 (feature removed)box_syntax
Tracking issue for placement new #27779Tracking issue for box_syntax #49733 (removed)box_patterns
Tracking issue forbox_patterns
feature #29641These are "permanently unstable":
link_llvm_intrinsics
Tracking issue forlink_llvm_intrinsics
#29602fundamental
Tracking issue forfundamental
feature #29635Which leaves feature flags dating from 1.0.0, that are still unstable
todayas of 2017-02-19, and that have some likelihood of being stabilized in the future:start
Tracking issue for thestart
feature #29633link_args
Tracking issue forlink_args
stabilization #29596linkage
Tracking issue for thelinkage
feature #29603asm
Tracking issue forasm
(inline assembly) #29722simd
Tracking issue for SIMD support #27731simd_ffi
Tracking issue for SIMD support #27731allocator
Tracking issue for changing the global, default allocator (RFC 1974) #27389thread_local
Tracking issue forthread_local
stabilization #29594unboxed_closures
Tracking issue for Fn traits (unboxed_closures
&fn_traits
feature) #29625concat_idents
Tracking issue forconcat_idents
#29599non_ascii_idents
Tracking issue for non-ASCII identifiers (feature "non_ascii_idents") #28979Tracking issue for RFC 2457, "Allow non-ASCII identifiers" #55467optin_builtin_traits
Tracking Issue for auto traits (auto_traits) -- formerly called opt-in built-in traits (optin_builtin_traits) #13231on_unimplemented
Tracking issue foron_unimplemented
feature #29628associated_consts
Tracking issue forassociated_consts
feature #29646slice_patterns
Tracking issue for RFC #495 (featuresslice_patterns
andadvanced_slice_patterns
) #23121advanced_slice_patterns
Tracking issue for RFC #495 (featuresslice_patterns
andadvanced_slice_patterns
) #23121(Individual features should be discussed in their respective tracking issues.)
Edit: I realized that
feature_gate.rs
does not include library features, so I got more data:And in a checkout of the
1.0.0
git tag:Got the intersection (
com -12 /tmp/now /tmp/1.0.0
), and looked manually to remove deprecated features and implementation details, and add tracking issue numbers. This leaves these feature flags:alloc
Tracking issue for location of facade crates #27783collections
Tracking issue for location of facade crates #27783 (reexported stable inMerged intostd
, but could still be useful with#![no_std]
)alloc
.unicode
Tracking issue for location of facade crates #27783 (mostly reexported stable instd
)io
Tracking issue for Read::chars #27802lookup_host
Tracking issue for DNS in std::net #27705(gone)set_stdio
(No tracking issue! Despite being useful for example to external test harnesses)step_by
Tracking issue forstep_by
stabilization #27741step_trait
Tracking issue forTracking issue forstep_by
stabilization #27741step_trait
stabilization #42168nonzero
Tracking issue forNonZero
/Unique
/Shared
stabilization #27730The text was updated successfully, but these errors were encountered: