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

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

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

  • ะกั‚ะฐะฑะธะปะธะทะธั€ะพะฒะฐะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะผะฐะบั€ะพัะฐ ยซpanic!ยป ะฒ ะบะพะฝั‚ะตะบัั‚ะฐั…, ัะพะทะดะฐะฒะฐะตะผั‹ั… ะฟั€ะธ ะบะพะผะฟะธะปัั†ะธะธ, ั‚ะฐะบะธั… ะบะฐะบ ะพะฑัŠัะฒะปะตะฝะธั ยซconst fnยป. ะšั€ะพะผะต ั‚ะพะณะพ, ะฟะพะผะธะผะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ยซpanic!ยป ะฒ const-ะพะฑัŠัะฒะปะตะฝะธัั… ั€ะฐะทั€ะตัˆะตะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะผะฐะบั€ะพัะฐ ยซassert!ยป ะธ ะฝะตะบะพั‚ะพั€ั‹ั… ะดั€ัƒะณะธั… API ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบะธ. ะกั‚ะฐะฑะธะปะธะทะฐั†ะธั ะฟะพะบะฐ ะฝะต ะพั…ะฒะฐั‚ั‹ะฒะฐะตั‚ ะฒััŽ ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ัƒ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั, ะฟะพัั‚ะพะผัƒ ะฒ ั‚ะตะบัƒั‰ะตะผ ะฒะธะดะต ะผะฐะบั€ะพั ยซpanic!ยป ะผะพะถะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั ั‚ะพะปัŒะบะพ ัะพ ัั‚ะฐั‚ะธั‡ะตัะบะธะผะธ ัั‚ั€ะพะบะฐะผะธ (panic!(ยซโ€ฆยป)) ะธะปะธ ั ะพะดะฝะธะผ ะธะฝั‚ะตั€ะฟะพะปะธั€ะพะฒะฐะฝะฝั‹ะผ ะทะฝะฐั‡ะตะฝะธะตะผ ยซ&strยป ะฟั€ะธ ะฟะพะดัั‚ะฐะฝะพะฒะบะต (panic!(ยซ{}ยป, a)), ะบะพั‚ะพั€ะพะต ะดะพะปะถะฝะพ ะพะณั€ะฐะฝะธั‡ะธะฒะฐั‚ัŒัั ะฟะพะดัั‚ะฐะฝะพะฒะบะพะน ยซ{}ยป ะฑะตะท ัะฟะตั†ะธั„ะธะบะฐั‚ะพั€ะพะฒ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั ะธ ะดั€ัƒะณะธั… ั‚ะธะฟะฐะถะตะน. ะ’ ะฑัƒะดัƒั‰ะตะผ ะฟั€ะธะผะตะฝะธะผะพัั‚ัŒ ะผะฐะบั€ะพัะพะฒ ะฒ ะบะพะฝัั‚ะฐะฝั‚ะฝั‹ั… ะบะพะฝั‚ะตะบัั‚ะฐั… ะฑัƒะดะตั‚ ั€ะฐััˆะธั€ะตะฝะฐ, ะฝะพ ัั‚ะฐะฑะธะปะธะทะธั€ะพะฒะฐะฝะฝั‹ั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน ัƒะถะต ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะดะปั ะฒั‹ะฟะพะปะฝะตะฝะธั assert-ะฟั€ะพะฒะตั€ะพะบ ะฝะฐ ัั‚ะฐะฟะต ะบะพะผะฟะธะปัั†ะธะธ: const _: () = assert!(std::mem::size_of::<u64>() == 8); const _: () = assert!(std::mem::size_of::<u8>() == 1);
  • ะ’ ะฟะฐะบะตั‚ะฝะพะผ ะผะตะฝะตะดะถะตั€ะต Cargo ั€ะฐะทั€ะตัˆะตะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะฟั€ะพั„ะธะปะตะน ั ะฟั€ะพะธะทะฒะพะปัŒะฝั‹ะผะธ ะธะผะตะฝะฐะผะธ, ะฝะต ะพะณั€ะฐะฝะธั‡ะตะฝะฝั‹ะผะธ ยซdevยป, ยซreleaseยป, ยซtestยป ะธ ยซbenchยป. ะะฐะฟั€ะธะผะตั€, ะดะปั ะฒะบะปัŽั‡ะตะฝะธั ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ะฝะฐ ัั‚ะฐะฟะต ัะฒัะทั‹ะฒะฐะฝะธั (LTO) ั‚ะพะปัŒะบะพ ะฟั€ะธ ั„ะพั€ะผะธั€ะพะฒะฐะฝะธั ั„ะธะฝะฐะปัŒะฝั‹ั… ัะฑะพั€ะพะบ ะฟั€ะพะดัƒะบั‚ะฐ ะผะพะถะฝะพ ะฒ Cargo.toml ัะพะทะดะฐั‚ัŒ ะฟั€ะพั„ะธะปัŒ ยซproductionยป ะธ ะดะพะฑะฐะฒะธั‚ัŒ ะฒ ะฝะตะณะพ ั„ะปะฐะณ ยซlto = trueยป. ะŸั€ะธ ัั‚ะพะผ ะฟั€ะธ ะพะฟั€ะตะดะตะปะตะฝะธะธ ัะพะฑัั‚ะฒะตะฝะฝั‹ั… ะฟั€ะพั„ะธะปะตะน ะพะฑัะทะฐั‚ะตะปัŒะฝะพ ั‚ั€ะตะฑัƒะตั‚ัั ัƒะบะฐะทะฐั‚ัŒ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะธะน ะฟั€ะพั„ะธะปัŒ ะดะปั ะฝะฐัะปะตะดะพะฒะฐะฝะธั ะธะท ะฝะตะณะพ ะฝะฐัั‚ั€ะพะตะบ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ. ะ’ ะฟั€ะธะผะตั€ะต ะฝะธะถะต ัะพะทะดะฐั‘ั‚ัั ะฟั€ะพั„ะธะปัŒ ยซproductionยป, ะบะพั‚ะพั€ั‹ะน ะดะพะฟะพะปะฝัะตั‚ ะฟั€ะพั„ะธะปัŒ ยซreleaseยป ะฒะบะปัŽั‡ะตะฝะธะตะผ ั„ะปะฐะณะฐ ยซlto = trueยป. ะกะฐะผ ะฟั€ะพั„ะธะปัŒ ะฐะบั‚ะธะฒะธั€ัƒะตั‚ัั ะฟั€ะธ ะฒั‹ะทะพะฒะต cargo ั ะพะฟั†ะธะตะน ยซโ€”profile productionยป, ะฐ ัะฑะพั€ะพั‡ะฝั‹ะต ะฐั€ั‚ะตั„ะฐะบั‚ั‹ ะฑัƒะดัƒั‚ ั€ะฐะทะผะตั‰ะตะฝั‹ ะฒ ะบะฐั‚ะฐะปะพะณะต ยซtarget/productionยป. [profile.production] inherits = ยซreleaseยป lto = true
  • ะกั‚ะฐะฑะธะปะธะทะธั€ะพะฒะฐะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต try_reserve ะดะปั ั‚ะธะฟะพะฒ Vec, String, HashMap, HashSet ะธ VecDeque, ั‡ั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะทะฐั€ะฐะฝะตะต ั€ะตะทะตั€ะฒะธั€ะพะฒะฐั‚ัŒ ะผะตัั‚ะพ ะดะปั ะพะฟั€ะตะดะตะปั‘ะฝะฝะพะณะพ ั‡ะธัะปะฐ ัะปะตะผะตะฝั‚ะพะฒ ะทะฐะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ ะดะปั ั‚ะพะณะพ, ั‡ั‚ะพะฑั‹ ัะฝะธะทะธั‚ัŒ ั‡ะฐัั‚ะพั‚ัƒ ะฒั‹ะฟะพะปะฝะตะฝะธั ะพะฟะตั€ะฐั†ะธะน ะฒั‹ะดะตะปะตะฝะธั ะฟะฐะผัั‚ะธ ะธ ะธะทะฑะตะถะฐั‚ัŒ ะฐะฒะฐั€ะธะนะฝะพะณะพ ะทะฐะฒะตั€ัˆะตะฝะธั ะฒ ะฟั€ะพั†ะตััะต ั€ะฐะฑะพั‚ั‹ ะธะท-ะทะฐ ะฝะตั…ะฒะฐั‚ะบะธ ะฟะฐะผัั‚ะธ.
  • ะ ะฐะทั€ะตัˆะตะฝะพ ัƒะบะฐะทะฐะฝะธะต ะผะฐะบั€ะพัะพะฒ ั ั„ะธะณัƒั€ะฝั‹ะผะธ ัะบะพะฑะบะฐะผะธ ะฒ ะฒั‹ั€ะฐะถะตะฝะธัั… ะฟะพะดะพะฑะฝั‹ั… ยซm!{ .. }.method()ยป ะธ ยซm!{ .. }?ยป.
  • ะžะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะพ ะฒั‹ะฟะพะปะฝะตะฝะธะต ั„ัƒะฝะบั†ะธะน File::read_to_end ะธ read_to_string.
  • ะŸะพะดะดะตั€ะถะบะฐ ัะฟะตั†ะธั„ะธะบะฐั†ะธะธ Unicode ะพะฑะฝะพะฒะปะตะฝะฐ ะดะพ ะฒะตั€ัะธะธ 14.0.
  • ะ ะฐััˆะธั€ะตะฝะพ ั‡ะธัะปะพ ั„ัƒะฝะบั†ะธะน, ะฟะพะผะตั‡ะตะฝะฝั‹ั… ยซ#[must_use]ยป ะดะปั ะฒั‹ะฒะพะดะฐ ะฟั€ะตะดัƒะฟั€ะตะถะดะตะฝะธั ะฒ ัะปัƒั‡ะฐะต ะธะณะฝะพั€ะธั€ะพะฒะฐะฝะธั ะฒะพะทะฒั€ะฐั‰ะฐะตะผะพะณะพ ะทะฝะฐั‡ะตะฝะธั, ั‡ั‚ะพ ะฟะพะผะพะณะฐะตั‚ ะฒั‹ัะฒะธั‚ัŒ ะพัˆะธะฑะบะธ, ะฒั‹ะทะฒะฐะฝะฝั‹ะต ะฟั€ะตะดะฟะพะปะพะถะตะฝะธะตะผ, ั‡ั‚ะพ ั„ัƒะฝะบั†ะธั ะธะทะผะตะฝะธั‚ ะทะฝะฐั‡ะตะฝะธั, ะฐ ะฝะต ะฒะตั€ะฝั‘ั‚ ะฝะพะฒะพะต ะทะฝะฐั‡ะตะฝะธะต.
  • ะ”ะพะฑะฐะฒะปะตะฝ ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝั‹ะน ะฑัะบะตะฝะด ะดะปั ะณะตะฝะตั€ะฐั†ะธะธ ะบะพะดะฐ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ libgccjit.
  • เบžเบฒเบเบชเปˆเบงเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡ API เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฑเบเบชเบฐเบ™เบฐเบ•เปˆเบฒเบ‡เป†เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡:
    • [T; N]::as_mut_slice
    • [T; N]::as_slice
    • collections::TryReserveError
    • HashMap::try_reserve
    • HashSet::try_reserve
    • String::try_reserve
    • String::try_reserve_exact
    • Vec::try_reserve
    • Vec::try_reserve_exact
    • VecDeque::try_reserve
    • VecDeque::try_reserve_exact
    • Iterator::map_while
    • iter::MapWhile
    • proc_macro::is_available
    • Command::get_program
    • Command::get_args
    • Command::get_envs
    • Command::get_current_dir
    • CommandArgs
    • CommandEnvs
  • ะŸั€ะธะทะฝะฐะบ ยซconstยป, ะพะฟั€ะตะดะตะปััŽั‰ะธะน ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฒ ะปัŽะฑะพะผ ะบะพะฝั‚ะตะบัั‚ะต ะฒะผะตัั‚ะพ ะบะพะฝัั‚ะฐะฝั‚, ะฟั€ะธะผะตะฝั‘ะฝ ะฒ ั„ัƒะฝะบั†ะธะธ hint::unreachable_unchecked.
  • ะ ะตะฐะปะธะทะพะฒะฐะฝ ั‚ั€ะตั‚ะธะน ัƒั€ะพะฒะตะฝัŒ ะฟะพะดะดะตั€ะถะบะธ ะดะปั ะฟะปะฐั‚ั„ะพั€ะผ armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi ะธ armv7a-kmc-solid_asp3-eabihf. ะขั€ะตั‚ะธะน ัƒั€ะพะฒะตะฝัŒ ะฟะพะดั€ะฐะทัƒะผะตะฒะฐะตั‚ ะฑะฐะทะพะฒัƒัŽ ะฟะพะดะดะตั€ะถะบัƒ, ะฝะพ ะฑะตะท ะฐะฒั‚ะพะผะฐั‚ะธะทะธั€ะพะฒะฐะฝะฝะพะณะพ ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธั, ะฟัƒะฑะปะธะบะฐั†ะธะธ ะพั„ะธั†ะธะฐะปัŒะฝั‹ั… ัะฑะพั€ะพะบ ะธ ะฟั€ะพะฒะตั€ะบะธ ะฒะพะทะผะพะถะฝะพัั‚ะธ ัะฑะพั€ะบะธ ะบะพะดะฐ.

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

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