РъТда 1.36

Π•ΠΊΠΈΠΏΡŠΡ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ Ρ€Π°Π·Π²ΡŠΠ»Π½ΡƒΠ²Π°Π½ Π΄Π° Π²ΠΈ прСдстави Rust 1.36!

Какво Π΅ Π½ΠΎΠ²ΠΎΡ‚ΠΎ Π² Rust 1.36?
Π‘ΡŠΠ΄Π΅Ρ‰Π° Ρ‡Π΅Ρ€Ρ‚Π° Π΅ стабилизирана, ΠΎΡ‚ Π½ΠΎΠ²ΠΎ: alloc, MaybeUninit Ρ‡Π΅Ρ€Ρ‚Π° , NLL Π·Π° Rust 2015, Π½ΠΎΠ²Π° рСализация Π½Π° HashMap ΠΈ Π½ΠΎΠ² Ρ„Π»Π°Π³ --offline Π·Π° Cargo.


А сСга ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:

  • Π’ Rust 1.36 Π½Π°ΠΉ-накрая стабилизиран Ρ‡Π΅Ρ€Ρ‚Π° Π‘ΡŠΠ΄Π΅Ρ‰Π΅.
  • Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Ρ‚Π΅ Ρ‰Π°ΠΉΠ³Π°.
    ΠžΡ‚ Rust 1.36, части ΠΎΡ‚ std, ΠΊΠΎΠΈΡ‚ΠΎ зависят ΠΎΡ‚ Π³Π»ΠΎΠ±Π°Π»Π΅Π½ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π» (ΠΊΠ°Ρ‚ΠΎ Vec ) са Π² кутията Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘Π΅Π³Π° std Ρ‰Π΅ рССкспортира Ρ‚Π΅Π·ΠΈ части. ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Ρ‚ΠΎΠ²Π°.
  • МоТС Π±ΠΈ Uninit вмСсто mem::uninitialized.
    Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии mem::uninitialized Π²ΠΈ позволявашС Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π·Π° инициализация, бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΌΡŠΡ€Π·Π΅Π»ΠΈΠ²ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° масив, Π½ΠΎ Ρ‚Π°Π·ΠΈ функция Π΅ доста опасна (ΠΎΡ‰Π΅), Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΈΠΏΡŠΡ‚ MaybeUninit Π΅ стабилизиран ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎ-бСзопасно.
    Π•, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ MaybeUninit Π΅ ΠΏΠΎ-бСзопасна Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°, mem::uninitialized Ρ‰Π΅ бъдС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ ΠΎΡ‚ Rust 1.38.
    Ако искатС Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ публикацията Π² Π±Π»ΠΎΠ³Π° (Alexis Beingessner).
  • NLL Π·Π° Rust 2015.
    Π’ обявата РъТда 1.31.0 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½ΠΈ Ρ€Π°Π·ΠΊΠ°Π·Π²Π°Ρ‚ Π·Π° NLL (Non-Lexical Lifetime), ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ инструмСнта Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠΈ ΠΏΠΎ-ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ ΠΈ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° потрСбитСля. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
    fn main() {
    Π½Π΅ΠΊΠ° mut x = 5;
    Π½Π΅ΠΊΠ° y = &x;
    Π½Π΅ΠΊΠ° z = &mut x; // Π’ΠΎΠ²Π° Π½Π΅ бСшС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ 1.31.0.
    }

    Π’ 1.31.0 NLL Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ само Π² Rust 2018, с ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Ρ‰Π΅ добавят ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈ към Rust 2015.
    Ако искатС Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° NLL, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π² Ρ‚ΠΎΠ²Π° записи Π² Π±Π»ΠΎΠ³ΠΎΠ²Π΅ (ЀСликс Клокс).

  • Новият Ρ„Π»Π°Π³ Π·Π° Cargo Π΅ --offline.
    Rust 1.36 стабилизира Π½ΠΎΠ² Ρ„Π»Π°Π³ Π·Π° Cargo. Π€Π»Π°Π³ΡŠΡ‚ --offline ΡƒΠΊΠ°Π·Π²Π° Π½Π° Cargo Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ зависимости, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ„Π»Π°ΠΉΠ½ ΠΏΠΎ-късно. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ зависимости Π½Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½ ΠΈ Π°ΠΊΠΎ всС ΠΎΡ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Cargo Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°. Π—Π° Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ зависимости, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° cargo fetch, която Ρ‰Π΅ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ всички зависимости.
  • Π’ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅.

Има ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°:

Π”Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ РъТда, Π’ΠΎΠ²Π°Ρ€Π΅Π½ ΠΈ Clippy.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€