ื—ืœื•ื“ื” 1.36

ืฆื•ื•ืช ื”ืคื™ืชื•ื— ื ืจื’ืฉ ืœื”ืฆื™ื’ ืืช Rust 1.36!

ืžื” ื—ื“ืฉ ื‘-Rust 1.36?
ืชื›ื•ื ื” ืขืชื™ื“ื™ืช ื”ืชื™ื™ืฆื‘ื”, ืžื—ื“ืฉ: ืืจื’ื– alloc, MaybeUninit , NLL ืขื‘ื•ืจ Rust 2015, ื™ื™ืฉื•ื ื—ื“ืฉ ืฉืœ HashMap ื•ื“ื’ืœ ื—ื“ืฉ -ืœื ืžืงื•ื•ืŸ ืขื‘ื•ืจ Cargo.


ื•ืขื›ืฉื™ื• ื‘ื™ืชืจ ืคื™ืจื•ื˜:

  • ืกื•ืฃ ืกื•ืฃ ื‘-Rust 1.36 ืžึฐื™ื•ึผืฆึธื‘ ืชื›ื•ื ื” ืขืชื™ื“.
  • ื”ืงืฆืืช ืืจื’ื–.
    ื”ื—ืœ ืž-Rust 1.36, ื—ืœืงื™ื ืžื”-std ื”ืชืœื•ื™ื™ื ื‘ืžืงืฆื” ื”ื’ืœื•ื‘ืœื™ (ื›ื’ื•ืŸ Vec ), ื ืžืฆืื™ื ื‘ืืจื’ื– ื”ื”ืงืฆืื”. ื›ืขืช std ื™ื™ืฆื ืžื—ื“ืฉ ืืช ื”ื—ืœืงื™ื ื”ืœืœื•. ืขื•ื“ ืขืœ ื–ื”.
  • ืื•ืœื™ ื™ื—ื™ื“ื” ื‘ืžืงื•ื mem::uninitialized.
    ื‘ืžื”ื“ื•ืจื•ืช ืงื•ื“ืžื•ืช, mem::uninitialized ืืคืฉืจื” ืœืš ืœืขืงื•ืฃ ืืช ื‘ื“ื™ืงืช ื”ืืชื—ื•ืœ, ื”ื™ื ืฉื™ืžืฉื” ืœื”ืงืฆืืช ืžืขืจืš ืขืฆืœื”, ืื‘ืœ ื”ืคื•ื ืงืฆื™ื” ื”ื–ื• ืžืกื•ื›ื ืช ืœืžื“ื™ (ื™ื•ืชืจ), ื›ืš ืฉืกื•ื’ MaybeUninit ื”ืชื™ื™ืฆื‘ , ื•ื–ื” ื‘ื˜ื•ื— ื™ื•ืชืจ.
    ื•ื‘ื›ืŸ, ืžืื– MaybeUninit ื”ื™ื ื—ืœื•ืคื” ื‘ื˜ื•ื—ื” ื™ื•ืชืจ, ืื– ื”ื—ืœ ืž-Rust 1.38, mem::uninitialized ืชื”ื™ื” ืชื›ื•ื ื” ืฉื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ.
    ืื ืืชื” ืจื•ืฆื” ืœืœืžื•ื“ ืขื•ื“ ืขืœ ื–ื™ื›ืจื•ืŸ ืœื ืžืื•ืชื—ืœ, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ืคื•ืกื˜ ื”ื–ื” ื‘ื‘ืœื•ื’ ืฉืœ ืืœื›ืกื™ืก ื‘ื™ื™ื ื’ืกื ืจ.
  • NLL ืขื‘ื•ืจ Rust 2015.
    ื‘ื”ื•ื“ืขื” ื—ืœื•ื“ื” 1.31.0 ื”ืžืคืชื—ื™ื ืกื™ืคืจื• ืœื ื• ืขืœ NLL (Non-Lexical Lifetime), ืฉื™ืคื•ืจ ืœืฉืคื” ืฉื”ื•ืคืš ืืช ื‘ื•ื“ืง ื”ื”ืฉืืœื” ืœื—ื›ื ื•ื™ื“ื™ื“ื•ืชื™ ื™ื•ืชืจ ืœืžืฉืชืžืฉ. ื“ื•ื’ืžื:
    fn main() {
    let mut x = 5;
    ืชืŸ y = &x;
    ืชืŸ z = &mut x; // ื–ื” ืœื ื”ื™ื” ืžื•ืชืจ ืœืคื ื™ 1.31.0.
    }

    ื‘-1.31.0, NLL ืขื‘ื“ ืจืง ื‘-Rust 2018, ืขื ื”ื‘ื˜ื—ื” ืฉื”ืžืคืชื—ื™ื ื™ื•ืกื™ืคื• ืชืžื™ื›ื” ื‘-Rust 2015.
    ืื ืืชื” ืจื•ืฆื” ืœื“ืขืช ื™ื•ืชืจ ืขืœ NLL, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ื›ืืŸ ืขืจื›ื™ื ื‘ื‘ืœื•ื’ (ืคืœื™ืงืก ืงืœื•ืงืก).

  • ื”ื“ื’ืœ ื”ื—ื“ืฉ ืฉืœ Cargo ื”ื•ื -ืื•ืคืœื™ื™ืŸ.
    Rust 1.36 ื™ื™ืฆื‘ ื“ื’ืœ ื—ื“ืฉ ืขื‘ื•ืจ Cargo. ื”ื“ื’ืœ --ืœื ืžืงื•ื•ืŸ ืื•ืžืจ ืœ-Cargo ืœื”ืฉืชืžืฉ ื‘ืชืœื•ืช ืžื˜ืžื•ืŸ ืžืงื•ืžื™ืช, ื›ืš ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื‘ืžืฆื‘ ืœื ืžืงื•ื•ืŸ ืžืื•ื—ืจ ื™ื•ืชืจ. ื›ืืฉืจ ื”ืชืœื•ืช ื”ื“ืจื•ืฉื•ืช ืื™ื ืŸ ื–ืžื™ื ื•ืช ื‘ืžืฆื‘ ืœื ืžืงื•ื•ืŸ, ื•ืื ืขื“ื™ื™ืŸ ื™ืฉ ืฆื•ืจืš ื‘ืื™ื ื˜ืจื ื˜, ืื– Cargo ืชื—ื–ื™ืจ ืฉื’ื™ืื”. ืขืœ ืžื ืช ืœื”ื•ืจื™ื“ ืžืจืืฉ ืชืœื•ืช, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ืช cargo fetch, ืืฉืจ ืชื•ืจื™ื“ ืืช ื›ืœ ื”ืชืœื•ืช.
  • ื›ืืŸ ืชื•ื›ืœ ืœืงืจื•ื ืกืงื™ืจื” ืžืคื•ืจื˜ืช ื™ื•ืชืจ ืฉืœ ื”ืฉื™ื ื•ื™ื™ื.

ื™ืฉื ื ืฉื™ื ื•ื™ื™ื ื’ื ื‘ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช:

ืฉื™ื ื•ื™ื™ื ืื—ืจื™ื ื—ืœื•ื“ื”, ืžื˜ืขืŸ ะธ Clippy.

ืžืงื•ืจ: linux.org.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”