ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช Rust 1.36

ื™ืฆื ืœืื•ืจ ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช ืžืขืจื›ืช ื—ืœื•ื“ื” 1.36, ืฉื”ื•ืงืžื” ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ ืžื•ื–ื™ืœื”. ื”ืฉืคื” ืžืชืžืงื“ืช ื‘ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ, ืžืกืคืงืช ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ืื•ื˜ื•ืžื˜ื™, ื•ืžืกืคืงืช ืืžืฆืขื™ ืœื”ืฉื’ืช ืžืงื‘ื™ืœื™ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ืžืฉื™ืžื•ืช ืœืœื ืฉื™ืžื•ืฉ ื‘ืื•ืกืฃ ืืฉืคื” ืื• ื–ืžืŸ ืจื™ืฆื”.

ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœ Rust ืžืฉื—ืจืจ ืืช ื”ืžืคืชื— ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืฆื‘ื™ืขื™ื ื•ืžื’ืŸ ืžืคื ื™ ื‘ืขื™ื•ืช ื”ื ื•ื‘ืขื•ืช ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื”, ื›ื’ื•ืŸ ื’ื™ืฉื” ื—ื•ืคืฉื™ืช ืœื–ื™ื›ืจื•ืŸ, ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข null, ื—ืจื™ื’ื•ืช ืžืื’ืจ ื•ื›ื“ื•ืžื”. ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ืžืคื•ืชื— ืœื”ืคืฆืช ืกืคืจื™ื•ืช, ื”ื‘ื˜ื—ืช ื”ืจื›ื‘ื” ื•ื ื™ื”ื•ืœ ืชืœื•ืช ืขืœ ื™ื“ื™ ื”ืคืจื•ื™ืงื˜. ืžื˜ืขืŸ, ื”ืžืืคืฉืจ ืœืš ืœืงื‘ืœ ืืช ื”ืกืคืจื™ื•ืช ื”ื“ืจื•ืฉื•ืช ืœืชื•ื›ื ื™ืช ื‘ืœื—ื™ืฆื” ืื—ืช. ืžืื’ืจ ื ืชืžืš ื›ื“ื™ ืœืืจื— ืกืคืจื™ื•ืช crates.io.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื:

  • ื”ืชื›ื•ื ื” ื”ืชื™ื™ืฆื‘ื” ืฉืœื ื•, ื”ืžื™ื™ืฆื’ ืขืจืš ืฉืื•ืœื™ ืขื“ื™ื™ืŸ ืœื ื”ื•ืฉืœืžื” ื”ืขืจื›ืชื• ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืœื•ืงื™ื ืืกื™ื ื›ืจื•ื ื™ / .await. ืขืจื›ื™ื ืืกื™ื ื›ืจื•ื ื™ื™ื ื”ืžื•ื’ื“ืจื™ื ื‘ืืžืฆืขื•ืช Future ืžืืคืฉืจื™ื ืœื”ืžืฉื™ืš ืœื‘ืฆืข ืขื‘ื•ื“ื” ืฉื™ืžื•ืฉื™ืช ื‘ืฉืจืฉื•ืจ, ืชื•ืš ื”ืžืชื ื” ืœืกื™ื•ื ื—ื™ืฉื•ื‘ื™ื ืฉืœ ืขืจืš ืžืกื•ื™ื;
  • ื”ืกืคืจื™ื™ื” ื”ืชื™ื™ืฆื‘ื” ืœื”ืงืฆื•ืช, ื”ืžืกืคืง ืžืฆื‘ื™ืขื™ื ื•ืื•ืกืคื™ื ื—ื›ืžื™ื ืœื ื™ื”ื•ืœ ืขืจื›ื™ื ืฉื”ื•ืงืฆื• ืœื–ื™ื›ืจื•ืŸ. ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื‘-std ืžืฉืชืžืฉืช ื›ืขืช ื‘ืกื•ื’ ื“ื‘ืจ, ืืฉืจ ืžื™ื•ืฆืื™ื ืžื—ื“ืฉ ืž-alloc. ืฉื™ืžื•ืฉ ื ืคืจื“ ื‘-alloc ื”ื’ื™ื•ื ื™ ื‘ื™ื™ืฉื•ืžื™ื ืฉืื™ื ื ืงืฉื•ืจื™ื ืœ-std ("#![no_std]"), ื•ื›ืŸ ื‘ืกืคืจื™ื•ืช ื”ืžื™ื•ืขื“ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืชื•ื›ื ื™ื•ืช ื“ื•ืžื•ืช ืœืœื std;
  • ื›ื“ื™ ืœืขืงื•ืฃ ื‘ื“ื™ืงื•ืช ืœืืชื—ื•ืœ ื ื›ื•ืŸ ืฉืœ ืขืจื›ื™ื ืžื•ึผืฆึธืข ืกื•ื’ ื‘ื™ื ื™ื™ื ืื•ืœื™ ื™ื—ื™ื“ื”, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืžืงื•ื ื”ืคื•ื ืงืฆื™ื” mem::uninitialized ื›ื—ืœื•ืคื” ื‘ื˜ื•ื—ื” ื™ื•ืชืจ. ื”ืคื•ื ืงืฆื™ื” mem::uninitialized ื ื•ื—ื” ืœื™ืฆื™ืจื” ืžื”ื™ืจื” ืฉืœ ืžืขืจื›ื™ื, ืืš ื”ื™ื ืžื˜ืขื” ืืช ื”ืžื”ื“ืจ ืžื›ื™ื•ื•ืŸ ืฉื ืจืื” ืฉื”ื™ื ืื•ืชื—ืœื”, ืืš ื‘ืคื•ืขืœ ื”ืขืจืš ื ื•ืชืจ ืœื ืžืื•ืชื—ืœ. MaybeUninit ืžืืคืฉืจืช ืœืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืœืžื”ื“ืจ ืฉื”ืขืจืš ืื™ื ื• ืžืื•ืชื—ืœ, ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ื”ืชื ื”ื’ื•ืช ื”ืœื ืžื•ื’ื“ืจืช ื”ืืคืฉืจื™ืช ื”ืงืฉื•ืจื” ื‘ื›ืš, ื•ื’ื ืœืืจื’ืŸ ื‘ื“ื™ืงื•ืช ื‘ืชื•ื›ื ื™ื•ืช ื‘ืืžืฆืขื•ืช "ื™ื™ืชื›ืŸ_ืช:" ื•ืืชื—ื•ืœ ืฉืœื‘ ืื—ืจ ืฉืœื‘, ืœืกืžืŸ ืืช ื”ืฉืœืžืชื• ื‘ืืžืฆืขื•ืช ื”ืงืจื™ืื” ".assume_init()". ืขื ื”ื•ืคืขืชื” ืฉืœ MaybeUninit, ื”ืคื•ื ืงืฆื™ื” mem::uninitialized ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ื•ืื™ื ื” ืžื•ืžืœืฆืช ืœืฉื™ืžื•ืฉ;
  • ื˜ื›ื ื™ืงืช ื”-NLL (Non-Lexical Lifetimes), ืฉื”ืจื—ื™ื‘ื” ืืช ื”ืžืขืจื›ืช ืœืจื™ืฉื•ื ืžืฉืš ื”ื—ื™ื™ื ืฉืœ ืžืฉืชื ื™ื ืฉืื•ืœื™ื, ื”ืชื™ื™ืฆื‘ื” ืขื‘ื•ืจ ืฉืคืช Rust 2015 (ื‘ืชื—ื™ืœื”, NLL ื ืชืžืš ืจืง ืขืœ ื™ื“ื™ Rust 2018). ื‘ืžืงื•ื ืœื‘ืฆืข ืชืงื•ืคื•ืช ื—ื™ื™ื ื‘ืจืžื” ื”ืžื™ืœื•ื ื™ืช, NLL ืขื•ืฉื” ื–ืืช ื‘ืจืžืช ืงื‘ื•ืฆืช ื”ืžืฆื‘ื™ืขื™ื ื‘ื’ืจืฃ ื–ืจื™ืžืช ื”ื‘ื™ืฆื•ืข. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœื”ื’ื‘ื™ืจ ืืช ืื™ื›ื•ืช ื‘ื“ื™ืงืช ื”ืฉืืœืช ื”ืžืฉืชื ื™ื (ื”ืฉืืœื” ื‘ื•ื“ืง) ื•ืœืืคืฉืจ ื‘ื™ืฆื•ืข ืฉืœ ื›ืžื” ืกื•ื’ื™ื ืฉืœ ืงื•ื“ ื ื›ื•ืŸ, ืฉื”ืฉื™ืžื•ืฉ ื‘ื• ื”ื•ื‘ื™ืœ ื‘ืขื‘ืจ ืœืฉื’ื™ืื”. ื”ื”ืชื ื”ื’ื•ืช ื”ื—ื“ืฉื” ื’ื ืžืงืœื” ื‘ื”ืจื‘ื” ืขืœ ืื™ืชื•ืจ ื‘ืื’ื™ื;
  • ื™ื™ืฉื•ื ื—ื“ืฉ ืฉืœ ืžืขืจื›ื™ื ืืกื•ืฆื™ืื˜ื™ื‘ื™ื™ื ื›ืœื•ืœ ืžืคืช ื’ื™ื‘ื•ื‘, ื‘ื”ืชื‘ืกืก ืขืœ ื”ื™ื™ืฉื•ื ืฉืœ ื”ืžื‘ื ื” ืฉื•ืœื—ืŸ ืฉื•ื•ื™ืฆืจื™ (ื ื˜ืขืŸ ืื•ื˜ื•ืžื˜ื™ืช hashbrown::HashMap, ืืœื ืื ืฆื•ื™ืŸ ืื—ืจืช ื‘ืžืคื•ืจืฉ, ื›ื’ื•ืŸ std::HashMap, ื”ืžื‘ื•ืกืก ืขืœ SipHash 1-3). ืžืžืฉืง ื”ืชื•ื›ื ื” ื ืฉืืจ ื–ื”ื”, ื•ื”ื”ื‘ื“ืœื™ื ื”ืžื•ืจื’ืฉื™ื ืœืžืคืชื— ืžืกืชื›ืžื™ื ื‘ื‘ื™ืฆื•ืขื™ื ืžื•ื’ื‘ืจื™ื ื•ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ืคื—ืชืช;
  • ื‘ืžื˜ืขืŸ ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช ื”ื•ืกื™ืฃ ืืคืฉืจื•ืช "--offline", ื”ืžืืคืฉืจืช ืคืขื•ืœื” ืœืœื ื’ื™ืฉื” ืœืจืฉืช, ื‘ื” ื ืขืฉื” ืฉื™ืžื•ืฉ ืจืง ื‘ื—ื‘ื™ืœื•ืช ื”ืžืื•ื—ืกื ื•ืช ื‘ืžื˜ืžื•ืŸ ื‘ืžืขืจื›ืช ื”ืžืงื•ืžื™ืช ื‘ืขืช ื”ืชืงื ืช ืชืœื•ืช. ืื ื”ืชืœื•ืช ืœื ื ืžืฆืืช ื‘ืžื˜ืžื•ืŸ ื”ืžืงื•ืžื™, ืชื™ื’ืจื ืฉื’ื™ืื”. ื›ื“ื™ ืœื˜ืขื•ืŸ ืžืจืืฉ ืชืœื•ืช ืœืชื•ืš ื”ืžื˜ืžื•ืŸ ื”ืžืงื•ืžื™ ืœืคื ื™ ืžืขื‘ืจ ืœื ืžืงื•ื•ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” "ืื—ื–ื•ืจ ืžื˜ืขืŸ";
  • ื”ื˜ืžื™ืข ืืช ื”ื™ื›ื•ืœืช ืœืงืจื•ื ืœืžืืงืจื• "dbg!" ืžืฆื™ื™ืŸ ืžืกืคืจ ื˜ื™ืขื•ื ื™ื;
  • ื”ืชื›ื•ื ื” "const", ื”ืงื•ื‘ืขืช ืืช ื”ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื”ืงืฉืจ ื‘ืžืงื•ื ื‘ืงื‘ื•ืขื™ื, ืžืฉืžืฉืช ืœืฉื™ื˜ื•ืช
    Layout::from_size_align_unchecked,
    mem::needs_drop,
    NonNull::ืžืชื ื“ื ื“ ื•
    NonNull::cast;

  • ื—ืœืง ื—ื“ืฉ ืฉืœ ืžืžืฉืงื™ API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื™ืช ื”ื™ืฆื™ื‘ื•ืช, ื›ื•ืœืœ ืฉื™ื˜ื•ืช ืฉื™ื•ืฆื‘ื•
    task::Waker, task::ืกืงืจ,
    VecDeque::rotate_left, VecDeque::rotate_right,
    Read::read_vectored, Write::write_vectored,
    Iterator::copyd,
    BorrowMut (ืขื‘ื•ืจ ืžื—ืจื•ื–ื•ืช) ื•-str::as_mut_ptr.

ืžืงื•ืจ: OpenNet.ru

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