Π•ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ с радост Π²ΠΈ прСдставя Rust 1.36!

Какво Π΅ Π½ΠΎΠ²ΠΎΡ‚ΠΎ Π² Rust 1.36?
Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π΅ Ρ‚Ρ€Π΅ΠΉΡ‚Π° Future, ΠΎΡ‚ Π½ΠΎΠ²ΠΎΡ‚ΠΎ: ΠΊΡ€Π΅ΠΉΡ‚ alloc, MaybeUninit, NLL Π·Π° Rust 2015, Π½ΠΎΠ²Π° рСализация Π½Π° HashMap ΠΈ Π½ΠΎΠ² Ρ„Π»Π°Π³ β€”offline Π·Π° Cargo.


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

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

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

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

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

Π”Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Rust, Cargo ΠΈ Clippy.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster