Rust 1.57 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฐเฉ€เจฒเฉ€เจœเจผ

เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ Rust 1.57 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจœเฉ‹ เจ•เจฟ เจฎเฉ‹เจœเจผเฉ€เจฒเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจชเจฐ เจนเฉเจฃ เจธเฉเจคเฉฐเจคเจฐ เจ—เฉˆเจฐ-เจฒเจพเจญเจ•เจพเจฐเฉ€ เจธเฉฐเจธเจฅเจพ เจฐเจธเจŸ เจซเจพเจŠเจ‚เจกเฉ‡เจธเจผเจจ เจฆเฉ€ เจธเจฐเจชเฉเจฐเจธเจคเฉ€ เจนเฉ‡เจ  เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจญเจพเจธเจผเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉ‚เฉœเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจœเจพเจ‚ เจฐเจจเจŸเจพเจˆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ‰เฉฑเจš เจ•เจพเจฐเจœ เจธเจฎเจพเจจเจคเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจธเจพเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจฐเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจฎเจฟเจ†เจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจฎเฉเฉฑเจขเจฒเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ…เจคเฉ‡ เจฐเฉฑเจ–-เจฐเจ–เจพเจ… เจคเฉฑเจ• เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค

เจœเฉฐเจ—เจพเจฒ เจฆเจพ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเฉ€ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‚เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจคเฉ‹เจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ, เจจเจฒ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจกเฉ€เจฐเฉ‡เจซเจฐเฉˆเจ‚เจธ, เจฌเจซเจฐ เจ“เจตเจฐเจฐเจจ, เจ†เจฆเจฟเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃ, เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เจพเจฐเจ—เฉ‹ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค 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.
  • เจฏเฉ‚เจจเฉ€เจ•เฉ‹เจก เจจเจฟเจฐเจงเจพเจฐเจจ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเฉ‚เฉฐ เจตเจฐเจœเจจ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹