ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Rust 1.89, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΎΡ Mozilla, Π½ΠΎ ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΠΎΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° Π½Π΅ΡΡΠΎΠΏΠ°Π½ΡΠΊΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Rust Foundation. ΠΠ·ΠΈΠΊΡΡ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π²ΡΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΎΠΊΠ»ΡΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΈ runtime (runtime ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π³ΠΈ Π·Π°ΡΠΈΡΠ°Π²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·Π»ΠΈΠ·Π°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Π΄Ρ. ΠΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Cargo. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΠ΅ΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ (ΠΎΠ±Π»Π°ΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ) ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°, ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ (immutable) Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΈΠ»Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- ΠΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° Β«_Β» ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Ρ Π΅ΡΠΈΠΊΠ΅Ρ Β«constΒ», Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π΅Π΄Π°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. pub fn all_false() -> [bool; LEN] { [false; _] }
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ Π½ΠΎΠ²ΠΎ lint ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«mismatched_lifetime_syntaxesΒ» Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Β«lifetime elisionΒ» (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΡΡΡΠ½ΠΎΡΠΎ ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅). ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊΡΠΌ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π³ΡΡΠΏΠ° ΡΠΈΠΏΠΎΠ²Π΅. ΠΡΡΠΏΠΈΡΠ΅ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Β«&βa TΒ» ΠΈ Β«ContainsLifetimeΒ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΡΡΠ²Π° ΡΠ²Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ, Π° Π² ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Β«&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 Π²ΡΠ² Π²ΡΠ½ΡΠ½ΠΈ C ΡΡΠ½ΠΊΡΠΈΠΈ (extern "C"), Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ lint "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-ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ "librust-*". Π Debian 12 ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ° 4.5%. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΎ, ΡΠ΅ Π½Π°Π΄ 3000 ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΊΠΎΠ΄ Π½Π° Rust, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·Π½Π΅ΡΠ΅Π½ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ librust-..-dev, Π° 150 src-ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Rust.
ΠΡ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π·Π° Debian, ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Ρ seudo-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 ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Π‘ollabora ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΡΠ°ΡΠΈΡ Π·Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠ΅Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° GPU ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°ΠΊΠΈΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust.
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°Π½ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠ°ΠΊΡΠΎ Π½Π° CPU, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ GPU: CUDA Π·Π° NVIDIA, SPIR-V Π·Π° GPU ΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan, Metal Π·Π° Apple, DirectX 12 Π·Π° Windows, WebGPU Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
