Tracking Issue: List of Nightly features
The following is rough list of nightly features used in Redox OS relibc
crate.
-
alloc_error_handler
- possible stable workaround
-
allocator_api
- no stable workaround
-
array_chunks
- closed as "not planned"
- easily refactored
-
asm_const
- stabilized with rustc upgrade
- tracking issue closed: https://github.com/rust-lang/rust/issues/93332
-
c_variadic
- no stable workaround
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/44930
-
core_intrinsics
- only used for the low-level
core::intrinsics::abort
function to abort without unwinding - might be possible workarounds using platform-specific
asm
- only used for the low-level
-
int_roundings
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/88581
- can be removed (not used in the
relibc
codebase)
-
maybe_uninit_slice
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/63569
- only one use of
MaybeUninit::assume_init_ref
: <src/header/unistd/mod.rs:1164>
-
lang_items
- only needed for
eh_personality
- can potentially be refactored into a separate crate to provide the
rust_eh_personality
function
- only needed for
-
let_chains
- finalized stabilization work: https://github.com/rust-lang/rust/issues/53667
- can be removed with upgrade to Rust v1.88.0 + edition 2024
-
linkage
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/29603
- used to provide weak linkage for a number of functions
- potentially refactorable using global asm
-
naked_functions
- finalized stabilization work: https://github.com/rust-lang/rust/issues/32408
- can be removed with Rust MSRV bump + edition 2024
- appears to be unused?
-
pointer_is_aligned_to
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/96284
- can likely be refactored to replace the sanity check on the array length: <src/header/string/mod.rs:149-150>
-
ptr_as_uninit
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/75402
- potentially refactorable
-
slice_as_chunks
- tracking issue closed as not planned
- refactorable using iterators
-
stmt_expr_attributes
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/15701
- only used in a single location in
redox
builds - potentially refactorable
-
str_internals
- not intended for general use
- should be refactored if possible
- appears to be unused?
-
strict_provenance
- finalized stabilization work: https://github.com/rust-lang/rust/issues/95228
- can be removed with Rust MSRV bump + edition 2024
-
sync_unsafe_cell
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/95439
- unlikely to be refactored without a lot of work
-
thread_local
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/29594
- unlikely to be refactored without a lot of work
-
vec_into_raw_parts
- ongoing stabilization work: https://github.com/rust-lang/rust/issues/65816
- unlikely to be refactored without a lot of work
Edited by Elle Rhumsaa