ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Rust 1.91, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Mozilla, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ ΠΏΠ°ΡΡΠΎΠ½Π°ΠΆΠ° Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° Π½Π΅ΡΡΠΎΠΏΠ°Π½ΡΠΊΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Rust Foundation. ΠΠ·ΠΈΠΊΡΡ Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ Π²ΡΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ Π² ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ, Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° ΡΠΌΠ΅Ρ ΠΈΠ»ΠΈ runtime (runtime ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π³ΠΈ Π·Π°ΡΠΈΡΠ°Π²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·Π»ΠΈΠ·Π°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Π΄Ρ. ΠΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Cargo. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΠ΅ΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ (ΠΎΠ±Π»Π°ΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ) ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°, ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ (immutable) Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΈΠ»Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ARM ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Windows. Π¦Π΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° βaarch64-pc-windows-msvcβ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½Π° ΠΎΡ Π²ΡΠΎΡΠΎ Π½Π° ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π²ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ aarch64-pc-windows-gnullvm ΠΈ x86_64-pc-windows-gnullvm. ΠΡΡΠ²ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠ° Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° β Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΡΠ΅Π· ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΡ ΡΠ΅ΡΡΠΎΠ² Π½Π°Π±ΠΎΡ. ΠΡΠΎΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° ΡΠ±ΠΎΡΠΊΠ°, Π½ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ Π½Π°Π±ΠΎΡ. Π’ΡΠ΅ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, Π½ΠΎ Π±Π΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ lint ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«dangling_pointers_from_localsΒ» Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΡΠ°Π½Π΅ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π²ΠΈΡΡΡΠΈ raw ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (dangling raw pointer), ΠΊΠΎΠΈΡΠΎ ΡΠΎΡΠ°Ρ ΠΊΡΠΌ Π΄Π°Π½Π½ΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°, Π° raw ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΊΡΠΌ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΠ°Π²Π°Ρ Π²ΠΈΡΡΡΠΈ, Ρ.Π΅. ΡΠΎΡΠ°Ρ ΠΊΡΠΌ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΠ°Π·ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π» Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. fn f() -> *const u8 { let x = 0; &x // ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π²ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π», Π·Π°ΡΠΎΡΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Β«xΒ» ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΎΡΡΠ°Π²Π΅Π½Π° }
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ lint ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«integer_to_ptr_transmutesΒ», ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ° Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡ std::mem::transmute.
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Cargo Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Β«build.build-dirΒ», ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ±ΠΎΡΠ½ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ, ΡΡΠ·Π΄Π°Π²Π°Π½ΠΈ ΠΎΡ cargo ΠΈ rustc ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ±ΠΎΡΠΊΠ°ΡΠ°.
- ΠΠ° ABI sysv64, win64, efiapi ΠΈ aapcs Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±ΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π² ΡΡΠΈΠ» C.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° inline Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° LoongArch32.
- ΠΠΎΠ² Π½Π°Π±ΠΎΡ ΠΎΡ API Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠΈΠΏΠ°ΠΆΠΈ:
- Path::file_prefix
- AtomicPtr::fetch_ptr_add
- AtomicPtr::fetch_ptr_sub
- AtomicPtr::fetch_byte_add
- AtomicPtr::fetch_byte_sub
- AtomicPtr::fetch_or
- AtomicPtr::fetch_and
- AtomicPtr::fetch_xor
- {integer}::strict_add
- {integer}::strict_sub
- {integer}::strict_mul
- {integer}::strict_div
- {integer}::strict_div_euclid
- {integer}::strict_rem
- {integer}::strict_rem_euclid
- {integer}::strict_neg
- {integer}::strict_shl
- {integer}::strict_shr
- {integer}::strict_pow
- i{N}::strict_add_unsigned
- i{N}::strict_sub_unsigned
- i{N}::strict_abs
- u{N}::strict_add_signed
- u{N}::strict_sub_signed
- PanicHookInfo::payload_as_str
- core::iter::chain
- u{N}::checked_signed_diff
- core::array::repeat
- PathBuf::add_extension
- PathBuf::with_added_extension
- Duration::from_mins
- Duration::from_hours
- impl PartialEq<<str> for PathBuf
- impl PartialEq<<String> for PathBuf
- impl PartialEq<<str> for Path
- impl PartialEq<<String> for Path
- impl PartialEq<<PathBuf> for String
- impl PartialEq<<Path> for String
- impl PartialEq<<PathBuf> for str
- impl PartialEq<<Path> for str
- Ipv4Addr::from_octets
- Ipv6Addr::from_octets
- Ipv6Addr::from_segments
- impl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sized
- impl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sized
- impl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?Sized
- Cell::as_array_of_cells
- u{N}::carrying_add
- u{N}::borrowing_sub
- u{N}::carrying_mul
- u{N}::carrying_mul_add
- BTreeMap::extract_if
- BTreeSet::extract_if
- impl Debug for windows::ffi::EncodeWide<β_>
- str::ceil_char_boundary
- str::floor_char_boundary
- impl Sum for Saturating<u{N}>
- impl Sum<&Self> for Saturating<u{N}>
- impl Product for Saturating<u{N}>
- impl Product<&Self> for Saturating<u{N}>
- ΠΡΠΈΠ·Π½Π°ΠΊ Β«constΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ Π² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅:
- <[T; N]>::each_ref
- <[T; N]>::each_mut
- OsString::new
- PathBuf::new
- TypeId::of
- ptr::with_exposed_provenance
- ptr::with_exposed_provenance_mut
- ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Π΄ΠΎ ΠΊΠ»ΠΎΠ½ LLVM 21.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
