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

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

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

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

  • ื‘ืžื”ื“ืจ rustc ืžึฐืื•ึผื‘ื˜ึธื— ืชืžื™ื›ื” ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ืžื‘ื•ืกืกืช ืขืœ ืชื•ืฆืื•ืช ืคืจื•ืคื™ืœ ืงื•ื“ (PGO, Profile-Guided Optimization),
    ื”ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ืงื•ื“ ืื•ืคื˜ื™ืžืœื™ ื™ื•ืชืจ ืขืœ ืกืžืš ื ื™ืชื•ื— ื”ื ืชื•ื ื™ื ื”ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉื”ืฆื˜ื‘ืจื• ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ื”ืชื•ื›ื ื™ืช. ื›ื“ื™ ืœื™ืฆื•ืจ ืคืจื•ืคื™ืœ, ืžืกื•ืคืง ื”ื“ื’ืœ "-C profile-generate", ื•ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืคืจื•ืคื™ืœ ื‘ืžื”ืœืš ื”ื”ืจื›ื‘ื” - "-C profile-use" (ื‘ืชื—ื™ืœื”, ื”ืชื•ื›ื ื™ืช ืžื•ืจื›ื‘ืช ืขื ื”ื“ื’ืœ ื”ืจืืฉื•ืŸ, ืžืชืจื•ืฆืฆืช, ื•ืœืื—ืจ ื™ืฆื™ืจื” ื”ืคืจื•ืคื™ืœ, ื”ื•ื ืžื•ืจื›ื‘ ืžื—ื“ืฉ ืขื ื”ื“ื’ืœ ื”ืฉื ื™);

  • ื‘ืขืช ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื” "ืจื™ืฆืช ืžื˜ืขืŸ", ื”ื ื•ื—ื” ืœืฉื™ืžื•ืฉ ืœื‘ื“ื™ืงื” ืžื”ื™ืจื” ืฉืœ ื™ื™ืฉื•ืžื™ ืงื•ื ืกื•ืœื”, ื ื•ืกืคื” ื”ืืคืฉืจื•ืช ืœื‘ื—ื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืงื•ื‘ืฅ ื”ืคืขืœื” ืœื”ืคืขืœื” ืื ื™ืฉื ื ืžืกืคืจ ืงื‘ืฆื™ ื”ืคืขืœื” ื‘ื—ื‘ื™ืœื”. ืงื•ื‘ืฅ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืœื‘ื™ืฆื•ืข ื ืงื‘ืข ื‘ืืžืฆืขื•ืช ื”ื•ืจืืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืกืขื™ืฃ [ื—ื‘ื™ืœื”] ืขื ืคืจืžื˜ืจื™ ื—ื‘ื™ืœื”, ื”ืžืืคืฉืจืช ืœืš ืœื”ื™ืžื ืข ืžืฆื™ื•ืŸ ืžืคื•ืจืฉ ืฉืœ ืฉื ื”ืงื•ื‘ืฅ ื“ืจืš ื”ื“ื’ืœ "-bin" ื‘ื›ืœ ืคืขื ืฉืืชื” ืžืคืขื™ืœ "ื”ืจืฆื” ืฉืœ ืžื˜ืขืŸ";
  • ื”ืคืงื•ื“ื” "ืกืคืง ืžื˜ืขืŸ", ืฉืกื•ืคืงื” ื‘ืขื‘ืจ ื› ื—ื‘ื™ืœื” ื ืคืจื“ืช. ื”ืคืงื•ื“ื” ืžืืคืฉืจืช ืœืš ืœืืจื’ืŸ ืขื‘ื•ื“ื” ืขื ืขื•ืชืง ืžืงื•ืžื™ ืฉืœ ืชืœื•ืช - ืœืื—ืจ ื‘ื™ืฆื•ืข "ืกืคืง ืžื˜ืขืŸ", ื›ืœ ืงื•ื“ื™ ื”ืžืงื•ืจ ืฉืœ ื”ืชืœื•ืช ืฉืœ ื”ืคืจื•ื™ืงื˜ ื™ื•ืจื“ื™ื ืž-crates.io ืœืกืคืจื™ื™ื” ืžืงื•ืžื™ืช, ืืฉืจ ืœืื—ืจ ืžื›ืŸ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ืœืขื‘ื•ื“ื” ืœืœื ื’ื™ืฉื” ืœืืจื’ื–ื™ื. io (ืœืื—ืจ ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื”, ืžื•ืฆื’ ืจืžื– ืœืฉื™ื ื•ื™ ื”ืชืฆื•ืจื” ืœืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื™ื” ืœ-builds). ืชื›ื•ื ื” ื–ื• ื›ื‘ืจ ืžืฉืžืฉืช ื›ื“ื™ ืœืืจื’ืŸ ืืช ื”ืžืฉืœื•ื— ืฉืœ ืžื”ื“ืจ rustc ืขื ืืจื™ื–ื” ืฉืœ ื›ืœ ื”ืชืœื•ืช ื‘ืืจื›ื™ื•ืŸ ืื—ื“ ืขื ื”ืฉื—ืจื•ืจ;
  • ื›ืขืช ื ื™ืชืŸ ืœื™ืฆื•ืจ ืงื™ืฉื•ืจื™ื ืœืืคืฉืจื•ื™ื•ืช ื”-enum ื‘ืืžืฆืขื•ืช ื›ื™ื ื•ื™ื™ื ืฉืœ ืกื•ื’ (ืœื“ื•ื’ืžื”, ื‘ื’ื•ืฃ ื”ืคื•ื ืงืฆื™ื” "fn increment_or_zero(x: ByteOption) ื ื™ืชืŸ ืœืฆื™ื™ืŸ "ByteOption::None => 0"), ื”ืงืœื“ ืžื‘ื ื™ ื—ื™ืฉื•ื‘ (โ€น MyTypeโ€น.. โ€บโ€บ::option => N) ืื• ื’ื™ืฉื” ืขืฆืžื™ืช (ื‘ื‘ืœื•ืงื™ื c &self ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ "Self::Quarter => 25");
  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ืงื‘ื•ืขื™ื ืœืœื ืฉื ื‘ืคืงื•ื“ื•ืช ืžืืงืจื•. ื‘ืžืงื•ื ืœื”ื’ื“ื™ืจ ืืช ืฉื ื”ืืœืžื ื˜ ื‘-"const", ืืชื” ื™ื›ื•ืœ ื›ืขืช ืœื”ืฉืชืžืฉ ื‘ืชื• "_" ื›ื“ื™ ืœื‘ื—ื•ืจ ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืžื–ื”ื” ืฉืื™ื ื• ื—ื•ื–ืจ, ื•ืœืžื ื•ืข ื”ืชื ื’ืฉื•ื™ื•ืช ืฉืžื•ืช ื‘ืขืช ืงืจื™ืื” ื ื•ืกืคืช ืœืžืืงืจื•;
  • ื”ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื” "#[repr(align(N))" ืขื enums ื‘ืืžืฆืขื•ืช ืชื—ื‘ื™ืจ ื”ื“ื•ืžื” ืœื”ื’ื“ืจืช ืžื‘ื ื” AlignNโ€นTโ€บ ืขื ื™ื™ืฉื•ืจ ื•ืœืื—ืจ ืžื›ืŸ ืฉื™ืžื•ืฉ AlignNโ€นMyEnumโ€บ;
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ื”-API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื” ื”ื™ืฆื™ื‘ื”, ื›ื•ืœืœ BufReader::buffer, BufWriter::buffer, ื•
    Cell::from_mut,
    Cell::as_slice_of_cells,
    DoubleEndedIterator::nth_back,
    Option::xor
    {i,u}{8,16,64,128,size}::reverse_bits, Wrapping::reverse_bits ื•
    slice::copy_within.

ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ืชื—ื™ืœืช ื”ื‘ื“ื™ืงื” ืคืจื•ื™ื™ืงื˜ Async-std, ื”ืžืฆื™ืขื” ื’ืจืกื” ืืกื™ื ื›ืจื•ื ื™ืช ืฉืœ ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช Rust (ื™ืฆื™ืื” ืฉืœ ืกืคืจื™ื™ืช std, ื‘ื” ื›ืœ ื”ืžืžืฉืงื™ื ืžื•ืฆืขื™ื ื‘ื’ืจืกื” ืืกื™ื ื›ืจื•ื ื™ืช ื•ืžื•ื›ื ื™ื ืœืฉื™ืžื•ืฉ ืขื ืชื—ื‘ื™ืจ ืืกื™ื ื›ืจื•ืŸ/ืžืžืชื™ืŸ).

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

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