ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΠΊ Rust 1.54, ΠΎΡΠ½ΠΎΠ²Π°Π½ ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Mozilla, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ°Π·Π²ΠΈΠ΅Π½ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΠ²ΠΎ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠ½Π°ΡΠ° Π½Π΅ΠΏΡΠΎΡΠΈΡΠ½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠ° Rust Foundation. ΠΠ°Π·ΠΈΠΊΠΎΡ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ Π²ΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΠΌ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π±Π΅Π· ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠΎΠ±ΠΈΡΠ°Ρ Π½Π° ΡΡΠ±ΡΠ΅ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° (Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π΅ΡΠ΅ Π΅ ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ° ΠΈ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΎΡΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Rust Π³ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°ΡΠ΅ ΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠΈΡΠ΅ ΠΈ Π·Π°ΡΡΠΈΡΡΠ²Π° ΠΎΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π»Π΅Π³ΡΠ²Π°Π°Ρ ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡΠ° ΡΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈ ΡΠ΅Π³ΠΈΠΎΠ½ ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈ, Π΄Π΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π½Π° Π½ΡΠ»Π° ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Ρ, ΠΏΡΠ΅ΡΠ΅ΠΊΠΎΡΡΠ²Π°ΡΠ° Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ ΠΈΡΠ½. ΠΠ° Π΄Π° ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠ²Π° ΡΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π³ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Cargo. Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΎΡ crates.io Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ Π·Π° Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ° Β«macro_rules!Β»). ΠΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«!Β» ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ (macro!(β¦)) ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΌΠ°ΠΊΡΠΎΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π²Π½ΡΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° README ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ: #![doc = include_str!(Β«README.mdΒ»)] #[path = concat!(env!(Β«OUT_DIRΒ»), Β«/generated.rsΒ»)] mod generated;
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ (Intrinsics) Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ wasm32, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SIMD Π² WebAssembly. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ v128_bitselect, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«safeΒ», Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, v128_load) ΠΎΡΡΠ°ΡΡΡΡ Β«unsafeΒ».
- ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΏΡΠ°Π²ΠΎΠΊ. ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π±ΡΠ»Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π² Π²ΡΠΏΡΡΠΊΠ΅ 1.52.1 ΠΈΠ·-Π·Π° Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠΏΠ»ΡΠ²ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΠ°.
- Π ΡΠ°Π·ΡΡΠ΄ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠΈΡ API, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ:
- BTreeMap::into_keys
- BTreeMap::into_values
- HashMap::into_keys
- HashMap::into_values
- arch::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point
- Π cargo-tree Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ: Β«βprune <spec>Β» Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ· Π³ΡΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Β«βdepthΒ» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π² Π΄Π΅ΡΠ΅Π²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Β«βedges no-proc-macroΒ» Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
ΠΠ·Π²ΠΎΡ: opennet.ru