Hoʻokuʻu ʻia ʻo Rust 1.57

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka ʻōlelo hoʻonohonoho ʻōnaehana ʻo Rust 1.57, i hoʻokumu ʻia e ka papahana Mozilla, akā i kēia manawa ua hoʻomohala ʻia ma lalo o ka mana o ka hui kūʻokoʻa waiwai ʻole ʻo Rust Foundation. Hoʻopili ka ʻōlelo i ka palekana hoʻomanaʻo, hāʻawi i ka hoʻokele hoʻomanaʻo maʻalahi, a hāʻawi i ke ala e hoʻokō ai i ka parallelism hana kiʻekiʻe me ka ʻole o ka hoʻohana ʻana i ka ʻōpala a i ʻole ka wā holo (e hoʻemi ʻia ka manawa holo i ka hoʻomaka kumu a me ka mālama ʻana i ka waihona maʻamau).

Hoʻopau ka hoʻokele hoʻomanaʻo hoʻomanaʻo a Rust i nā hewa i ka wā e hoʻopunipuni ai i nā kuhikuhi a pale i nā pilikia e puka mai ana mai ka hoʻoponopono hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ke komo ʻana i kahi ʻāpana hoʻomanaʻo ma hope o ka hoʻokuʻu ʻia ʻana, nā kuhikuhi kuhikuhi null, overruns buffer, etc. No ka hāʻawi ʻana i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi, ke kūkulu nei ka papahana i ka luna pūʻolo Cargo. Kākoʻo ʻia ka waihona crates.io no ka mālama ʻana i nā hale waihona puke.

Nā hana hou nui:

  • Ua hoʻopaʻa ʻia ka hoʻohana ʻana i ka macro "panic!" i nā pōʻaiapili i hana ʻia i ka wā o ka hōʻuluʻulu ʻana, e like me nā ʻōlelo "const fn". Ma waho aʻe o ka hoʻohana ʻana i ka "panic!" ʻae nā ʻōlelo const i ka hoʻohana ʻana i ka macro "assert!". a me kekahi mau API waihona maʻamau. ʻAʻole i uhi ʻia ka hoʻokūpaʻa ʻana i ka ʻōnaehana formatting holoʻokoʻa, no laila i kona ʻano i kēia manawa ka "panic!" macro hiki ke hoʻohana wale ʻia me nā kaula paʻa (panic!("...")) a i ʻole me ka waiwai interpolated hoʻokahi "&str" i ka wā e pani ai (panic!("{}", a)), pono e kaupalena ʻia i ke pani ʻana i "{ }" me ka ʻole o ka hoʻopili ʻana i nā mea kikoʻī a me nā ʻano ʻano ʻē aʻe. I ka wā e hiki mai ana, e hoʻonui ʻia ka hoʻohana ʻana o nā macros i nā pōʻaiapili mau, akā ua lawa nā mana i hoʻopaʻa ʻia no ka hoʻokō ʻana i nā hōʻoia assert ma ka pae hoʻohui: const _: () = assert!(std::mem::size_of::() == 64 ); const _: () = assert!(std::mem::size_of::() == 8);
  • Hāʻawi ka Luna Hoʻokele ʻo Cargo i ka hoʻohana ʻana i nā profiles me nā inoa arbitrary, ʻaʻole i kaupalena ʻia i "dev", "release", "test" a me "bench". No ka laʻana, hiki iā ʻoe ke hana i ka "production" profile ma Cargo.toml a hoʻohui i ka hae "lto = ʻoiaʻiʻo" i laila. Eia nō naʻe, i ka wehewehe ʻana i kāu ʻaoʻao ponoʻī, pono ʻoe e kuhikuhi i kahi ʻaoʻao i loaʻa e hoʻoili i nā hoʻonohonoho paʻamau mai ia mea. Hoʻokumu ka laʻana ma lalo i kahi ʻaoʻao "hana" e hoʻopiha i ka ʻaoʻao "hoʻokuʻu" me ka hoʻokomo ʻana i ka hae "lto = ʻoiaʻiʻo". Hoʻohana ʻia ka ʻaoʻao ponoʻī ma ke kāhea ʻana i ka ukana me ke koho "--profile production", a e hoʻokomo ʻia nā mea kiʻi hui i ka papa kuhikuhi "target/production". [profile.production] inherits = "hoʻokuʻu" lto = ʻoiaʻiʻo
  • Ua hoʻopaʻa ʻia ka hoʻohana ʻana o try_reserve no nā ʻano Vec, String, HashMap, HashSet a me VecDeque, kahi e hiki ai iā ʻoe ke mālama i kahi wahi ma mua no kekahi helu o nā mea i hāʻawi ʻia i mea e hōʻemi ai i ka pinepine o nā hana hoʻokaʻawale hoʻomanaʻo a pale aku. hāʻule i ka wā hana ma muli o ka nele o ka hoʻomanaʻo.
  • Ua ʻae ʻia ke kuhikuhi ʻana i nā macros me nā pale curly ma nā ʻōlelo e like me "m!{ .. }.method()" a me "m!{ .. }?".
  • ʻO ka hoʻokō ʻana i ka faila::read_to_end and read_to_string functions ua hoʻopaʻa ʻia.
  • Ua hōʻano hou ʻia ke kākoʻo no ka kikoʻī Unicode i ka mana 14.0.
  • Hoʻonui i ka helu o nā hana i kaha ʻia "#[must_use]" e hoʻopuka i kahi ʻōlelo aʻo inā mālama ʻole ʻia ka waiwai hoʻihoʻi, e kōkua ana e ʻike i nā hewa i hana ʻia e ka manaʻo e hoʻololi i kahi hana ma mua o ka hoʻihoʻi ʻana i kahi waiwai hou.
  • Hoʻohui ʻia ka hope hoʻokolohua no ka hana code me ka hoʻohana ʻana i ka libgccjit.
  • Ua hoʻoili ʻia kahi ʻāpana hou o ka API i ka ʻāpana paʻa, me nā ʻano a me nā hoʻokō o nā ʻano:
    • [T; N]:: as_mut_slice
    • [T; N]::like_slice
    • nā hōʻiliʻili ::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:: hoʻāʻo_reserve_exact
    • Mea hana hou::map_while
    • iter::MapWhile
    • proc_macro::ua_hiki
    • Kauoha::get_program
    • Kauoha::get_args
    • Kauoha::get_envs
    • Kauoha::get_current_dir
    • KauohaArgs
    • KauohaEnvs
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i kēlā me kēia pōʻaiapili ma kahi o nā mea mau, hoʻohana ʻia i ka hana hint::unreachable_unchecked.
  • Ua hoʻokō ʻia ke kolu o ke kākoʻo no ka armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi a me armv7a-kmc- solid_asp3-eabihf paepae. ʻO ke kolu o ka pae e pili ana i ke kākoʻo maʻamau, akā me ka ʻole o ka hoʻāʻo ʻana, ka hoʻopuka ʻana i nā hale mana, a i ʻole ka nānā ʻana inā hiki ke kūkulu ʻia ke code.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka