เบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบตเบ„เบงเบฒเบกเบ•เบทเปˆเบ™เป€เบ•เบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเปเบ™เบฐเบ™เปเบฒ Rust 1.36!

เบกเบตเบซเบเบฑเบ‡เปƒเบซเบกเปˆเปƒเบ™ Rust 1.36?
เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบš, เบˆเบฒเบเบญเบฑเบ™เปƒเบซเบกเปˆ: crate alloc, MaybeUninit, NLL เบชเปเบฒเบฅเบฑเบš Rust 2015, เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” HashMap เปƒเปเปˆ เปเบฅเบฐเบ—เบธเบ‡ --offline เปƒเปเปˆเบชเบณเบฅเบฑเบšเบชเบดเบ™เบ„เป‰เบฒ.


เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก:

  • เบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™ Rust 1.36 เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบš เบฅเบฑเบเบชเบฐเบ™เบฐเบญเบฐเบ™เบฒเบ„เบปเบ”.
  • เบˆเบฑเบ”เบชเบฑเบ™ crate.
    เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™ Rust 1.36, เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡ std เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบ (เป€เบŠเบฑเปˆเบ™: Vec) เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ crate เบˆเบฑเบ”เบชเบฑเบ™. เบ”เบฝเบงเบ™เบตเป‰ std เบˆเบฐเบชเบปเปˆเบ‡เบญเบญเบเบŠเบดเป‰เบ™เบชเปˆเบงเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบทเบ™ เปƒเปเปˆ. เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰.
  • เบšเบฒเบ‡เบ—เบตUninit เปเบ—เบ™ mem::uninitialized.
    เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, mem::uninitialized เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ‚เป‰เบฒเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ array lazy, เปเบ•เปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบซเบผเบฒเบ (เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ›เบฐเป€เบžเบ” MaybeUninit เป„เบ”เป‰เบ–เบทเบเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบš, เป€เบŠเบดเปˆเบ‡เบ›เบญเบ”เป„เบžเบเบงเปˆเบฒ.
    เบ”เบต, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ MaybeUninit เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ›เบญเบ”เป„เบžเบเบงเปˆเบฒ, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ Rust 1.38, mem::uninitialized เบˆเบฐเป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ.
    เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบก blog เบ™เบตเป‰เป‚เบ”เบ Alexis Beingessner.
  • NLL เบชเปเบฒเบฅเบฑเบš Rust 2015.
    เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ” เป€เบŠเบทเบญเบ 1.31.0 เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เบšเบญเบเบžเบงเบเป€เบฎเบปเบฒเบเปˆเบฝเบงเบเบฑเบš NLL (Non-Lexical Lifetime), เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบžเบฒเบชเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบนเป‰เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบเบนเป‰เบขเบทเบกเบชเบฐเบซเบฅเบฒเบ”เปเบฅเบฐเป€เบ›เบฑเบ™เบกเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡:
    fn เบซเบผเบฑเบ() {
    เปƒเบซเป‰ mut x = 5;
    เปƒเบซเป‰ y = &x;
    เปƒเบซเป‰ z = &mut x; // เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปˆเบญเบ™ 1.31.0.
    }

    เปƒเบ™ 1.31.0, NLL เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ Rust 2018, เบ”เป‰เบงเบเบชเบฑเบ™เบเบฒเบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ Rust 2015.
    เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš NLL, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบ™เบตเป‰ เบฅเบฒเบเบเบฒเบ™ blog (Felix Klocks).

  • เบ—เบธเบ‡เปƒเปเปˆเบชเบณเบฅเบฑเบšเบชเบดเบ™เบ„เป‰เบฒเปเบกเปˆเบ™โ€”เบญเบญเบšเป„เบฅเบ™เปŒ.
    Rust 1.36 เป„เบ”เป‰เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบ—เบธเบ‡เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบชเบดเบ™เบ„เป‰เบฒ. เบ—เบธเบ‡ --offline เบšเบญเบ Cargo เปƒเบซเป‰เปƒเบŠเป‰เบ–เบฒเบ™เบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบญเบญเบŸเป„เบฅเปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปเบšเบšเบญเบญเบšเป„เบฅเบ™เปŒ, เปเบฅเบฐเบ–เป‰เบฒเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Cargo เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เป€เบžเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบฅเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบฅเปˆเบงเบ‡เปœเป‰เบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ fetch เบชเบดเบ™เบ„เป‰เบฒ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ”เบฒเบงเป‚เบซเบฅเบ”เบ—เบธเบ dependencies.
  • เบกเบฑเบ™เป€เบ›เบฑเบ™ เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

เบเบฑเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™:

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบทเปˆเบ™ rust, เบชเบดเบ™เบ„เป‰เบฒ ะธ Clippy.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™