Mozilla ááá±á¬áá»ááºá០áááºáá±á¬ááºáá¬ážáá±á¬ Rust 1.67 á¡ááœá±ááœá±-áááºááœááºáá»áẠáááá¯ááááºážáááºážáá¬áá¬á áá¬ážááᯠáá¯ááºáá±áá²á·áá±á¬áºáááºáž ááá¯á¡áá« ááœááºáááºáá±á¬ á¡áá»áá¯ážá¡ááŒááºááá°áá±á¬ á¡ááœá²á·á¡á ááºáž Rust Foundation á áá¶á·ááá¯ážáá°áá®ááŸá¯ááŒáá·áº áá¯ááºáá±ááá¯ááºáá«áááºá áá¬áá¬á áá¬ážááẠááŸááºáá¬ááºáá±ážáááºážáá±ážááᯠá¡á¬áá¯á¶á áá¯ááºááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°ááŸáá·áº runtime ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááᯠááŸá±á¬ááºááŒááºáá±á ááºááœáẠááŒáá·áºáá¬ážáá±á¬á¡áá¯ááºá¡ááŒáá¯ááºáááŸáááẠáááºážáááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááẠ(runtime ááᯠá¡ááŒá±áá¶á¡á áá»áá¯ážááŒááºážááŸáá·áº á á¶á á¬ááŒáá·áºááá¯ááºááᯠááŒá¯ááŒááºááááºážááááºážááŸá¯ááá¯á· áá»áŸá±á¬á·áá»áá¬ážáááº)á
Rust á áááºááá¯áá® ááá¯ááºááœááºááŸá¯áááºážáááºážáá»á¬ážááẠááœáŸááºááŸááºáá»á¬ážááᯠá¡áá¯á¶ážáá»ááá·áºá¡áá« áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááᯠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážá០áááºáááºááŒá®áž á¡ááá·áºáááá·áºááŸááºáá¬áẠááá¯ááºááœááºááŸá¯ááœáẠááŒá áºáá±á«áºáá¬ááá·áº ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáááºá áááºážááᯠááœááºááŒá®ážááá·áºáá±á¬áẠáááºááá¯áá®á§áááá¬ááá¯á· áááºáá±á¬ááºááŒááºážá null pointers áá»á¬ážááᯠááá¯ááºážáá¶á·áá¬ážááŒááºážá ááŒá¬ážáá¶áá»á¬áž áá»á±á¬áºááœááºááŒááºážáá»á¬ážá áááºááŒáá·áº ááŒá áºáá±á«áºáá¬áá±á¬ ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáá±ážáá«áááºá á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠááŒáá·áºáá±áááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááŸá®ááá¯á¡á¬ážáá¬ážááŸá¯áá»á¬ážááᯠá á®áá¶áááºá ááá±á¬áá»ááºááẠCargo package manager ááᯠáá®ááœááºáááºá crates.io repository ááᯠhosting libraries áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá¬ážáá«áááºá
ááá¯ážáá¬ážá á áºáá±ážááŒááºážá á¡áá¬ááá¹áá¯ááá¯ááºááá¯ááºááŸá¯ááá¯ááŒá±áá¬áá¶ááŒááºážá á¡áá¬ááá¹áá¯áááºáááºážááá¯ááŒá±áá¬áá¶ááŒááºáž (scopes) ááá¯ááŒá±áá¬áá¶ááŒááºážááŸáá·áº áá¯ááºáá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž áááºááá¯áá®áááºáá±á¬ááºááŒááºážáááŸááºáááºááŸá¯ááᯠá¡áá²ááŒááºááŒááºážáá»á¬ážááŸáá áºááá·áº Memory safety ááᯠRust ááœáẠáá¶á·ááá¯ážáá±ážáá«áááºá Rust ááẠááááºážááŒáá·áºááŒáá·áºáá»áŸá¶ááŸá¯áá»á¬ážááᯠá¡áá¬á¡ááœááºáá±ážáááºá á¡áá¯á¶ážáááŒá¯áá® ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬áááºááá¯ážáá»á¬ážááᯠáááŒá áºááá±á áááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá á á¶áá áºáá»á áºááá¯ááºááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á¡ááŸá¬ážáá»á¬ážááᯠááá¯ááºááœááºáááºá áá¯á¶áá±á¡á¬ážááŒáá·áº áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááá¯ážáá¬ážáá»ááºáá»á¬ážááŸáá·áº ááááºážááŸááºáá»á¬ážá ááá±á¬ááá¬ážááᯠáá»áá·áºáá¯á¶ážáááºá áá¯áá¹ááá¡ááŸá¬ážáá»á¬ážááᯠá¡áááºážáá¯á¶ážááŒá áºá á±ááẠááá¯ááºáá¯á¶áá±á¬á¡ááŒáááºá á¬ááá¯ááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
á¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬áž-
- Future::Output ááŸáá·áº async áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœááºá áá¯ááºáá±á¬ááºáá»ááºááẠáááºááá¯ážáá»á¬ážááᯠááŒá±á¬ááºážáá²áááºáá°áá±á¬ áá°ááá»ááºááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáá±á¬áºáá¯ááºááẠáá°áá®áá±ážááá·áº ááŒááºáááºááá¯ážááᯠáá»á áºáá»á°ááŸá¯áá«á ááááá±ážáá»ááºáá«ááŸááá±á¬ "#[must_use]" ááŸááºáá»ááºáá»á¬ážááᯠááᯠáááºááŸááºááá¯ááºáá«ááŒá®á áááºááá¯ážá¡áá áºááᯠááŒááºáá±ážááá·áºá¡á á¬ážá #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().ait; } ááááá±ážáá»ááº- á¡áá¯á¶ážááŒá¯áááá·áº `bar` á០ááŒááºáá±ážáá±á¬ á¡áá¬áááºá á¡áá¯á¶ážáááŒá¯áá±á¬ á¡ááœááºá¡á¬áž â> src/lib.rs:5:5 | 5 | áá¬áž()á á±á¬áá·áºáá»áŸá±á¬áº; | ^^^^^^^^^^^^| =ááŸááºáá»ááº- `#[warn(unused_must_use)]` ááᯠáá°áááºážá¡ááá¯ááºáž ááœáá·áºáá¬ážáááºá
- FIFO áááºážá á®ááŒááºáž std::sync::mpsc (multi-producer single-consumer) ááᯠá¡ááºááááºáá¯ááºááŒá®ážáá«ááŒá®á áááẠAPI ááá¯ááááºážááááºážáá¬ážá áẠcrossbeam-channel module ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á· ááŒá±á¬ááºážáá¬ážáá«áááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡áá áºááẠááŒá¿áá¬á¡áá»á¬ážá¡ááŒá¬ážááá¯ááŒá±ááŸááºážááŒááºážá ááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááŸáá·áº ááá¯ážááŸááºážáá±á¬áá¯ááºááááºážááááºážááŒááºážááá¯á·ááŒáá·áº ááœá²ááŒá¬ážáá¬ážáááºá
- API á á¡á
áááºá¡ááá¯ááºážá¡áá
áºááᯠáááºááŒáááºáá±á¬á¡áá»áá¯ážá¡á
á¬ážááá¯á· ááœáŸá±á·áá¬ážááŒá®ážá áááºážáááºážáá»á¬ážááŸáá·áº á
ááá¯ááºááá¹ááá¬áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠáááºááŒáááºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáááº-
- {integer}::checked_ilog
- {integer}::checked_ilog2
- {integer}::checked_ilog10
- {integer}::ilog
- {integer}::ilog2
- {integer}::ilog10
- NonZeroU*::ilog2
- NonZeroU*::ilog10
- NonZero*::BITS
- ááááºážáá±áá»á¬ážá¡á
á¬áž áááºááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááœááºáááᯠáááºážááá¯á¡áá¯á¶ážááŒá¯ááẠááŒá
áºááá¯ááºááŒá±ááᯠáá¯á¶ážááŒááºáá±ážááá·áº "const" attribute ááᯠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááº-
- char::from_u32
- char::from_digit
- char::to_digit
- core::char::from_u32
- core::char::from_digit
- Linux kernel (linuxkernel) á¡ááŒáẠSony PlayStation 1 (mipsel-sony-psx), PowerPC (powerpc64-ibm-aix), QNX Neutrino RTOS (powerpc64-ibm-aix) (powerpc710-ibm-aix) (powerpc86-ibm-aix) ááœáẠRust ááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááááá¡ááá·áº áá¶á·ááá¯ážááŸá¯á ááááá¡ááá·áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá aarch64-unknown-nto-) ááááºáá±á¬ááºáž qnx710, xXNUMX_XNUMX-pc-nto-qnxXNUMX)á ááááá¡ááá·áºááœáẠá¡ááŒá±áá¶áá¶á·ááá¯ážááŸá¯áá«áááºáá±á¬áºáááºáž á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŒááºážáááŸááá²á ááá¬ážáááºáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá¯ááºááŒááºááŒááºáž ááá¯á·ááá¯áẠáá¯ááºáááºáá±á¬ááºááá¯ááºááŸá¯ ááŸáá áááŸá á á áºáá±ážááŒááºážáá»á¬áž áá«áááºáááºá
ááá¯á·á¡ááŒááºá AArch64 áááá¯áá¬ááá¯á¡ááŒá±áá¶á á
áá
áºáá»á¬ážá¡ááœáẠá
á¯á
ááºážáá¬ážáá±á¬ áá¬ááºáá±á¬ááºážáá»á¬ážááŸáá·áº Linux kernel module áá»á¬ážááᯠááœá¶á·ááŒáá¯ážááá¯ážáááºá
á±ááẠRust áá¬áá¬á
áá¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºááŒá¯ááá·áº ARM áá¬áá±ážááŸá¯áá»á¬ážááá¯ááºáá±ááŸá¯ááᯠáá»áœááºá¯ááºááá¯á· ááŸááºáá¬ážááá¯ááºáá«áááºá
source: opennet.ru