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

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

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

เจฎเฉเฉฑเจ– เจจเจตเฉ€เจจเจคเจพเจตเจพเจ‚:

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะฒะฝัƒั‚ั€ะธ ะฐั‚ั€ะธะฑัƒั‚ะพะฒ ะผะฐะบั€ะพัะพะฒ, ะฝะฐะฟะพะผะธะฝะฐัŽั‰ะธั… ั„ัƒะฝะบั†ะธะธ (ะฟั€ะพั†ะตะดัƒั€ะฝั‹ะต ะผะฐะบั€ะพัั‹ ะธ ะผะฐะบั€ะพัั‹, ัะพะทะดะฐะฝะฝั‹ะต ะฟั€ะธ ะฟะพะผะพั‰ะธ ะผะฐะบั€ะพัะฐ ยซmacro_rules!ยป). ะžั‚ ั„ัƒะฝะบั†ะธะน ะฟะพะดะพะฑะฝั‹ะต ะผะฐะบั€ะพัั‹ ะพั‚ะปะธั‡ะฐัŽั‚ัั ัะธะผะฒะพะปะพะผ ยซ!ยป ะฟะพัะปะต ะธะผะตะฝะธ (macro!(โ€ฆ)) ะธ ะฟะพะดัั‚ะฐะฝะพะฒะบะพะน ะธัั…ะพะดะฝะพะณะพ ั‚ะตะบัั‚ะฐ ะผะฐะบั€ะพัะฐ ะฒะผะตัั‚ะพ ะณะตะฝะตั€ะธั€ะพะฒะฐะฝะธั ะฒั‹ะทะพะฒะฐ ั„ัƒะฝะบั†ะธะธ. ะ’ั‹ะทะพะฒ ะผะฐะบั€ะพัะพะฒ ะฒะฝัƒั‚ั€ะธ ะฐั‚ั€ะธะฑัƒั‚ะพะฒ ะผะพะถะตั‚ ะพะบะฐะทะฐั‚ัŒัั ะฟะพะปะตะทะฝั‹ะผ ะดะปั ะฒะบะปัŽั‡ะตะฝะธั ะฒ ะดะพะบัƒะผะตะฝั‚ะธั€ัƒัŽั‰ะธะต ะบะพะผะผะตะฝั‚ะฐั€ะธะธ ัะพะดะตั€ะถะธะผะพะณะพ ะธะท ะดั€ัƒะณะธั… ั„ะฐะนะปะพะฒ. ะะฐะฟั€ะธะผะตั€, ะดะปั ะฒัั‚ะฐะฒะบะธ ัะพะดะตั€ะถะธะผะพะณะพ ั„ะฐะนะปะฐ README ะธ ั€ะตะทัƒะปัŒั‚ะฐั‚ะฐ ะฒั‹ะฟะพะปะฝะตะฝะธั ัะบั€ะธะฟั‚ะฐ ะผะพะถะฝะพ ัƒะบะฐะทะฐั‚ัŒ: #![doc = include_str!(ยซREADME.mdยป)] #[path = concat!(env!(ยซOUT_DIRยป), ยซ/generated.rsยป)] mod generated;
  • ะกั‚ะฐะฑะธะปะธะทะธั€ะพะฒะฐะฝั‹ ะฒัั‚ั€ะพะตะฝะฝั‹ะต ะฒ ะบะพะผะฟะธะปัั‚ะพั€ ั„ัƒะฝะบั†ะธะธ (Intrinsics) ะดะปั ะฟะปะฐั‚ั„ะพั€ะผั‹ wasm32, ะฟะพะทะฒะพะปััŽั‰ะธะต ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะธะฝัั‚ั€ัƒะบั†ะธะธ SIMD ะฒ WebAssembly. ะ‘ะพะปัŒัˆะฐั ั‡ะฐัั‚ัŒ ั„ัƒะฝะบั†ะธะน, ั‚ะฐะบะธั… ะบะฐะบ v128_bitselect, ะดะพัั‚ัƒะฟะฝั‹ ะฒ ั€ะตะถะธะผะต ยซsafeยป, ะฝะพ ะฝะตะบะพั‚ะพั€ั‹ะต ั„ัƒะฝะบั†ะธะธ ั€ะฐะฑะพั‚ะฐัŽั‰ะธะต ั ัƒะบะฐะทะฐั‚ะตะปัะผะธ (ะฝะฐะฟั€ะธะผะตั€, v128_load) ะพัั‚ะฐัŽั‚ัั ยซunsafeยป.
  • ะ’ะพะทะฒั€ะฐั‰ะตะฝะพ ะฟั€ะธะผะตะฝะตะฝะธะต ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะธะฝะบั€ะตะผะตะฝั‚ะฐะปัŒะฝะพะน ะบะพะผะฟะธะปัั†ะธะธ, ะฟะพะทะฒะพะปััŽั‰ะตะน ะฟะตั€ะตัะพะฑะธั€ะฐั‚ัŒ ั‚ะพะปัŒะบะพ ะธะทะผะตะฝะธะฒัˆะธะตัั ั‡ะฐัั‚ะธ ะบะพะดะฐ, ั‡ั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะทะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ัะพะบั€ะฐั‚ะธั‚ัŒ ะฒั€ะตะผั ัะฑะพั€ะบะธ ะฟั€ะพะตะบั‚ะฐ ะฟั€ะธ ะฟะพะฒั‚ะพั€ะฝะพะน ะบะพะผะฟะธะปัั†ะธะธ ะฟะพัะปะต ะฒะฝะตัะตะฝะธั ะผะตะปะบะธั… ะฟั€ะฐะฒะพะบ. ะ˜ะฝะบั€ะตะผะตะฝั‚ะฐะปัŒะฝะฐั ะบะพะผะฟะธะปัั†ะธั ะฑั‹ะปะฐ ะพั‚ะบะปัŽั‡ะตะฝะฐ ะฒ ะฒั‹ะฟัƒัะบะต 1.52.1 ะธะท-ะทะฐ ะฒั‹ัะฒะปะตะฝะธั ัะบั€ั‹ั‚ั‹ั… ะพัˆะธะฑะพะบ, ะฒัะฟะปั‹ะฒัˆะธั… ะฟะพัะปะต ะดะพะฑะฐะฒะปะตะฝะธั ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝะพะน ะฟั€ะพะฒะตั€ะบะธ ะทะฐะณั€ัƒะทะบะธ ะดะฐะฝะฝั‹ั… ะธะท ะดะธัะบะพะฒะพะณะพ ะบััˆะฐ.
  • API เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจธเจฅเจฟเจฐ เจธเจผเจพเจฎเจฒ เจนเจจ:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • ะ’ cargo-tree ะดะพะฑะฐะฒะปะตะฝั‹ ะพะฟั†ะธะธ: ยซโ€”prune <spec>ยป ะดะปั ัƒะดะฐะปะตะฝะธั ะฟะฐะบะตั‚ะฐ ะธะท ะณั€ะฐั„ะฐ ะทะฐะฒะธัะธะผะพัั‚ะตะน, ยซโ€”depthยป ะดะปั ะฒั‹ะฒะพะดะฐ ั‚ะพะปัŒะบะพ ัะปะตะผะตะฝั‚ะพะฒ ะทะฐะดะฐะฝะฝะพะณะพ ัƒั€ะพะฒะฝั ะฒะปะพะถะตะฝะฝะพัั‚ะธ ะฒ ะดะตั€ะตะฒะต ะทะฐะฒะธัะธะผะพัั‚ะตะน, ยซโ€”edges no-proc-macroยป ะดะปั ัะบั€ั‹ั‚ะธั ะทะฐะฒะธัะธะผะพัั‚ะตะน ะฟั€ะพั†ะตะดัƒั€ะฝั‹ั… ะผะฐะบั€ะพัะพะฒ.

เจธเจฐเฉ‹เจค: opennet.ru

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