`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 https://github.com/rust-lang/rust/issues/94970 for the language features.) These are the library features we currently use in `std`: - Not yet stable core features: - [ ] duration_constants - https://github.com/rust-lang/rust/issues/57391 - [ ] exact_size_is_empty - https://github.com/rust-lang/rust/issues/35428 - [ ] extend_one - https://github.com/rust-lang/rust/issues/72631 - [ ] maybe_uninit_slice - https://github.com/rust-lang/rust/issues/63569 - [ ] maybe_uninit_write_slice - https://github.com/rust-lang/rust/issues/79995 - [x] mixed_integer_ops - https://github.com/rust-lang/rust/issues/87840 - [x] nonnull_slice_from_raw_parts - https://github.com/rust-lang/rust/issues/71941 - [ ] portable_simd - https://github.com/rust-lang/rust/issues/86656 - [ ] ptr_as_uninit - https://github.com/rust-lang/rust/issues/86656 - [x] raw_os_nonzero - https://github.com/rust-lang/rust/issues/82363 - [ ] slice_ptr_get - https://github.com/rust-lang/rust/issues/74265 - Not yet stable alloc features: - [ ] alloc_layout_extra - https://github.com/rust-lang/rust/issues/55724 - [ ] allocator_api - https://github.com/rust-lang/rust/issues/32838 - [ ] get_mut_unchecked - https://github.com/rust-lang/rust/issues/63292 - [x] new_uninit - https://github.com/rust-lang/rust/issues/63291 - [ ] toowned_clone_into - [ ] try_reserve_kind - https://github.com/rust-lang/rust/issues/48043 - [ ] vec_into_raw_parts - https://github.com/rust-lang/rust/issues/65816 - core::panic: - [x] panic_info_message - https://github.com/rust-lang/rust/issues/66745 - [ ] panic_internals - [ ] panic_can_unwind - https://github.com/rust-lang/rust/issues/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 - [x] duration_checked_float - https://github.com/rust-lang/rust/issues/83400 - [ ] map_try_insert - https://github.com/rust-lang/rust/issues/82766