Open
Description
std
uses a lot of unstable library features. While core
will most likely always have to use language features, we can strive for std
to eventually be free of both unstable language and unstable library features.
Some of these we'll need to stabilize, but some others we might be able to simply remove with some small changes to the code.
(See also #94970 for the language features.)
These are the library features we currently use in std
:
- Not yet stable core features:
- duration_constants - Tracking issue for duration_constants #57391
- exact_size_is_empty - Add
is_empty
function toExactSizeIterator
#35428 - extend_one - Tracking Issue for Extend::{extend_one,extend_reserve} #72631
- maybe_uninit_slice - Tracking issue for
#![feature(maybe_uninit_slice)]
#63569 - maybe_uninit_write_slice - Tracking Issue for maybe_uninit_write_slice #79995
- mixed_integer_ops - Tracking Issue for
#![feature(mixed_integer_ops)]
#87840 - nonnull_slice_from_raw_parts - Tracking Issue for
NonNull<[T]>::slice_from_raw_parts
#71941 - portable_simd - Tracking Issue for RFC 2948: Portable SIMD #86656
- ptr_as_uninit - Tracking Issue for RFC 2948: Portable SIMD #86656
- raw_os_nonzero - Tracking Issue for NonZero_c_* integers #82363
- slice_ptr_get - Tracking Issue for raw slice getters (slice_ptr_get) #74265
- Not yet stable alloc features:
- alloc_layout_extra - Tracking issue for alloc_layout_extra #55724
- allocator_api - Allocator traits and std::heap #32838
- get_mut_unchecked - Tracking issue for {Rc, Arc}::get_mut_unchecked #63292
- new_uninit - Tracking issue for uninitialized constructors for Box, Rc, Arc #63291
- toowned_clone_into
- try_reserve_kind - Tracking issue for
try_reserve
: RFC 2116 fallible collection allocation #48043 - vec_into_raw_parts - Tracking issue for
vec_into_raw_parts
#65816
- core::panic:
- panic_info_message - Tracking issue for PanicInfo::message #66745
- panic_internals
- panic_can_unwind - Tracking Issue for PanicInfo::can_unwind #92988
- Core's internals: (Should we make some of these public/stable?)
- char_internals
- core_intrinsics
- hashmap_internals
- std_internals
- str_internals
- The unwind crate:
- panic_unwind
- These become unnecessary if we move
trait Error
to core:- array_error_internals
- char_error_internals
- int_error_internals
- duration_checked_float - Tracking Issue for
Duration::try_from_secs_{f32, f64}
#83400 - map_try_insert - Tracking Issue for map_try_insert #82766