เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เปˆเบญเบเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบฅเบฐเบšเบปเบš เป€เบŠเบทเบญเบ 1.35, เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™ Mozilla. เบžเบฒเบชเบฒเบชเบธเบกเปƒเบชเปˆเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบšเบฑเบ™เบฅเบธเบงเบฝเบเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบชเบนเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบท runtime.

เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ Rust เบ›เบปเบ”เบ›เปˆเบญเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบฒเบเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰ เปเบฅเบฐเบ›เบปเบเบ›เป‰เบญเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒ เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบžเบฒเบเบซเบผเบฑเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒ, เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบปเบงเบŠเบตเป‰ null, buffer overruns, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบŠเบธเบ”เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเปเบˆเบเบขเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™. เบชเบดเบ™เบ„เป‰เบฒ, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบซเบ™เบถเปˆเบ‡เบ„เบฅเบดเบ. เบซเปเบชเบฐเปเบธเบ”เป„เบ”เป‰เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบšเป€เบžเบทเปˆเบญเป‚เบฎเบ”เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” crates.io.

เบ•เบปเป‰เบ™โ€‹เบ•เป เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒ:

  • เบฅเบฑเบเบชเบฐเบ™เบฐ FnOnce, FnMut ะธ Fn เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ heap เบ›เบฐเป€เบžเบ”เบเปˆเบญเบ‡ เบเปˆเบญเบ‡โ€นdyn FnOnceโ€บ, เบเปˆเบญเบ‡โ€นdyn FnMutโ€บ เปเบฅเบฐเบเปˆเบญเบ‡โ€นdyn Fnโ€บ;
  • เป€เบžเบตเปˆเบกเปเบฅเป‰เบง เป‚เบญเบเบฒเบ” เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบž (fn เบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบž);
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบกเบฐเบซเบฒเบžเบฒเบ "dbg!" เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบฅเบฐเป€เบฅเบเปเบ–เบงเปƒเบ™ stderr เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบเบฒเบ•เบปเบงเปเบ›, เป€เบŠเบดเปˆเบ‡เบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ " เบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบฅเบญเบ f32 เปเบฅเบฐ f64copysignยป เป€เบžเบทเปˆเบญเบ„เบฑเบ”เบฅเบญเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบˆเบฒเบเบ•เบปเบงเป€เบฅเบเบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบฅเบเบญเบทเปˆเบ™;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ "เบ›เบฐเบเบญเบšเบ”เป‰เบงเบโ€œ, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ Ref:Cell:map_split, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เปเบฅเบฐเปเบเบเบกเบนเบ™เบ„เปˆเบฒ RefCell เบเบนเป‰เบขเบทเบกเบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบขเบทเบก;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ RefCell::replace_with เป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™เบ„เปˆเบฒ RefCell เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเป€เบเบปเปˆเบฒเบ•เบฒเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ ptr::hash เป€เบžเบทเปˆเบญ hash เบ•เบปเบงเบŠเบตเป‰เบซเบผเบทเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเบ—เบตเปˆเบขเบนเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเบ—เบตเปˆเบขเบนเปˆ;
  • เป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ:: เบ„เบฑเบ”เบฅเบญเบ เป€เบžเบทเปˆเบญเบ„เบฑเบ”เบฅเบญเบเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ โ€น&Tโ€บ เบซเบผเบท เบ—เบฒเบ‡เป€เบฅเบทเบญเบโ€น&mut Tโ€บ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ;
  • เบชเปˆเบงเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡ APIs เป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    เบŠเปˆเบงเบ‡:: เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ,
    RangeFrom::เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ,
    RangeTo::เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ,
    RangeInclusive::เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ,
    RangeToInclusive::เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ เปเบฅเบฐ
    เบ—เบฒเบ‡เป€เบฅเบทเบญเบ::เบชเบณเป€เบ™เบปเบฒ;

  • เป€เบžเบตเปˆเบก drop_bounds เบเบงเบ”เป€เบšเบดเปˆเบ‡ clippy (linter), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเบฐเบ•เบธเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบžเบตเปˆเบก "T: Drop" เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™;
  • compiler เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบซเบกเปˆ
    wasm32-unknown-wasi (เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš WASI เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ WebAssembly เบขเบนเปˆเบ™เบญเบเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš);

  • เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Rust เบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C library Musl.

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

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