ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Rust 1.89, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½ ΠΎΡ Mozilla, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π° Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° Π½Π΅ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΠ²Π΅Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Rust Foundation. ΠΠ·ΠΈΠΊΡΡ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ Π² ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΠΈ runtime (runtime ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π·Π°ΡΠΈΡΠ°Π²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Π΄Ρ. ΠΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Cargo. ΠΠ° Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΡΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅, ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ (ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ) ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΡΠ΅ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°, ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ (immutable) Π½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΈΠ»Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, Π·Π° Π΄Π° ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° Β«_Β» ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊ Β«constΒ» Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠΊΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. pub fn all_false<const LEN: usize>() -> [bool; LEN] { [false; _] }
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ Π½ΠΎΠ²ΠΎ lint ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«mismatched_lifetime_syntaxesΒ» Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΏΡΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Β«lifetime elisionΒ» (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π΄Π° ΡΠ΅ ΠΌΠΈΠ½Π΅ Π±Π΅Π· ΡΡΡΠ½ΠΎ ΡΠΊΠ°Π·Π²Π°Π½Π΅). ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π³ΡΡΠΏΠ° ΡΠΈΠΏΠΎΠ²Π΅. ΠΡΡΠΏΠΈΡΠ΅ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Β«&βa TΒ» ΠΈ Β«ContainsLifetime<βa>Β» ΠΌΠΎΠΆΠ΅ ΡΠ²Π½ΠΎ Π΄Π° ΠΏΡΠΈΡΡΡΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ, Π΄ΠΎΠΊΠ°ΡΠΎ Π² ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Β«&TΒ», Β«&β_ TΒ» ΠΈ Β«ContainsLifetime<β_>Β» Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΠΈ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅).
- Π Π°ΡΡΠΈΠ±ΡΡΠ° Β«target_featureΒ» Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ x86 Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ sha512, sm3, sm4, kl ΠΈ widekl, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ avx512. #[target_feature(enable = Β«avx512bwΒ»)] pub fn cool_simd_code( /* .. */) -> /* β¦ */ { /* β¦ */ }
- ΠΡΠΈΠ³ΡΡΠ΅Π½ Π΅ ΡΡΠ°ΡΡ Π½Π° doctest (ΡΠ΅ΡΡΠΎΠ²Π΅, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°) Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΠ΅Π»Π΅Π²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½ΠΎ ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Β«cargoΒ» (Β«cargo test βdoc βtarget other_targetΒ»).
- ΠΠ° ΡΡΠ½ΠΊΡΠΈΠΈ βextern Β«CΒ»β ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Β«wasm32-unknown-unknownΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ C ABI Π·Π° WebAssembly.
- Π‘ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² i128 ΠΈ u128 Π² ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡΡ (extern Β«CΒ») Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π½Π΅Π΅ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Β«improper_ctypes_definitionsΒ».
- Π ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° ΠΏΠΎΡΡΠΈΡ API, ΠΊΠ°ΡΠΎ ΡΠ° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠΈΠΏΠ°ΠΆΠΈΡΠ΅:
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Intrinsics) Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² x86, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ AVX512, SHA512, SM3 ΠΈ SM4.
- NonZero
- File::lock
- File::lock_shared
- File::try_lock
- File::try_lock_shared
- File::unlock
- NonNull::from_ref
- NonNull::from_mut
- NonNull::without_provenance
- NonNull::with_exposed_provenance
- NonNull::expose_provenance
- OsString::leak
- PathBuf::leak
- Result::flatten
- std::os::linux::net::TcpStreamExt::quickack
- std::os::linux::net::TcpStreamExt::set_quickack
ΠΡΠΈΠ·Π½Π°ΠΊ Β«constΒ» Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ Π² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅:
- ::as_mut_slice
- ::eq_ignore_ascii_case
- str::eq_ignore_ascii_case
- ΠΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Β«x86_64-apple-darwinΒ» Π±ΡΠ» Π½Π°ΡΠ°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° Π²ΡΠΎΡΠΎΠΉ (Apple ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°ΡΡ ΠΈΡΠ΅ΡΡΡΡ x86_64). ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ, Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ β ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ. ΠΡΠΎΡΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ, Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Β«loongarch32-unknown-noneΒ» ΠΈ Β«loongarch32-unknown-none-softfloatΒ». Π’ΡΠ΅ΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ, Π½ΠΎ Π±Π΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Rust:
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΎΡΡΡΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Rust Π² Debian. Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π² Π²Π΅ΡΠΊΠ΅ Debian Unstable (Sid) ΠΎΠΊΠΎΠ»ΠΎ 8% src-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ main ΠΈΠΌΠ΅ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ Β«librust-*Β». Π Debian 12 ΡΠ°ΠΊΠΈΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±ΡΠ»ΠΎ 4.5%. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ΅Π½ΠΎ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ 3 ΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, Π²ΡΠ½Π΅ΡΠ΅Π½Π½ΡΠΉ Π² ΠΏΠ°ΠΊΠ΅ΡΡ librust-..-dev, Π° 150 src-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Rust.
Π‘ΡΠ΅Π΄ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π΄Π»Ρ Debian, ΡΠΏΠΎΠΌΡΠ½ΡΡΡ sudo-rs, ntpd-rs, uutils, Sequoia, rpgp, hickory (DNS), Rustls, rav1d ΠΈ fish. ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Rust ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² APT, QEMU (virtiofsd), ΡΠ΄ΡΠ΅ Linux ΠΈ Mesa, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ Π² LibreOffice. ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ crate-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² src-ΠΏΠ°ΠΊΠ΅ΡΡ Debian Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ debcargo.
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ tmux-rs, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΊΠ»ΠΎΠ½ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠ° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° tmux (ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΎΠΊΠΎΠ½Π½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ), ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Ρ Π‘ΠΈ Π½Π° Rust.
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Tyr ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Collabora ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΡΠ°ΡΠΈΡ Π·Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π·Π° GPU, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust.
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°Π½ΠΎ Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π° CPU, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ GPU: CUDA Π·Π° NVIDIA, SPIR-V Π·Π° GPU, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ Vulkan, Metal Π·Π° Apple, DirectX 12 Π·Π° Windows, WebGPU Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
