Hoʻokuʻu ʻia ʻo Rust 1.34

ua hanaia hoʻokuʻu ʻōlelo hoʻolālā ʻōnaehana Popo 1.34, hoʻomohala ʻia e ka papahana Mozilla. Hoʻopili ka ʻōlelo i ka palekana hoʻomanaʻo, hāʻawi i ka hoʻokele hoʻomanaʻo ʻakomi, a hāʻawi i kahi ala e hoʻokō ai i ka parallelism hana kiʻekiʻe me ka hoʻohana ʻole ʻana i ka ʻōpala a i ʻole ka wā holo.

Hoʻokuʻu ka hoʻokele hoʻomanaʻo ʻakomi a Rust i ka mea hoʻomohala mai ka hoʻopololei ʻana i ka pointer a pale aku i nā pilikia e kū mai ana mai ka hoʻohana ʻana i ka hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ka loaʻa ʻana o ka hoʻomanaʻo ʻana ma hope o ka manuahi, ka hoʻihoʻi ʻole ʻana o ka pointer, ka hoʻonui ʻana i ka buffer, a me nā mea like. Ke kūkulu ʻia nei kahi luna pūʻolo e puʻunaue i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi e ka papahana. waiwai, hiki iā ʻoe ke kiʻi i nā hale waihona puke e pono ai no ka papahana i hoʻokahi kaomi. Kākoʻo ʻia kahi waihona no ka mālama ʻana i nā hale waihona puke crates.io.

ka papa kuhikuhiE nā mea hou:

  • Ua hoʻohui ka luna pūʻolo Cargo i nā mea hana e hana me nā papa inoa pūʻulu ʻē aʻe i hiki ke noho pū me ka crates.io hoʻopaʻa inoa lehulehu. No ka laʻana, hiki i nā mea hoʻomohala o nā noi waiwai ke hoʻohana i kā lākou papa inoa pilikino ponoʻī, hiki ke hoʻohana ʻia i ka wā e hoʻopaʻa inoa i nā hilinaʻi ma Cargo.toml, a hoʻopili i kahi ʻano hoʻohālike e like me crates.io no kā lākou huahana, a me ka kuhikuhi ʻana i nā hilinaʻi i nā pahu ʻelua. io a i kāu papa inoa ponoʻī.

    E hoʻohui i nā papa inoa waho i .cargo/config (aia ma $HOME a i ʻole ma ka papa kuhikuhi pūʻolo)
    hāʻawi ʻia ʻāpana "[registries]", a no ka hoʻohana ʻana i kahi papa inoa waho, ua ʻike ʻia ke koho "registry" i ka wehewehe ʻana o kēlā me kēia hilinaʻi ma Cargo.toml. No ka hoʻohui ʻana i kahi papa inoa hou, e kau wale i ka hōʻailona hōʻoia i ka ~/.cargo/credentials file a holo i ke kauoha
    "ka hoʻokomo ukana --registry=my-registry" a no ka hoʻolaha ʻana i kahi pūʻolo -
    "cargo publish -regy=my-register";

  • Hoʻohui i ke kākoʻo piha no ka hoʻohana ʻana i ka mea hoʻohana "?". ma na hoao ana doctests, hiki iā ʻoe ke hoʻohana i ka code code mai ka palapala e like me nā hoʻāʻo. Mea hoʻohana mua
    "?" hiki ke hoʻohana ʻia e mālama i nā hewa i ka wā o ka hoʻokō ʻana i ka hoʻāʻo ma ke alo o ka hana "fn main()" a i ʻole nā ​​hana "#[test]";

  • I nā hiʻohiʻona maʻamau i wehewehe ʻia me ka hoʻohana ʻana i nā macros procedural hāʻawi ʻia ka hiki ke hoʻohana i nā pūʻulu manaʻo ʻole (“#[attr($tokens)]”, “#[attr[$tokens]] a me #[attr{$tokens}]”). Ma mua, hiki ke kuhikuhi ʻia nā mea i loko o kahi kumu lāʻau/recursive me ka hoʻohana ʻana i nā string literals, no ka laʻana "#[foo(bar, baz(quux, foo = "bar"))]", akā i kēia manawa hiki ke hoʻohana i nā helu helu (' #[range(0. .10)]') a me nā hana e like me “#[bound(T: MyTrait)]”;
  • ʻAno paʻa (ʻano) E hoao mai и E hoao, e ʻae ana i nā hoʻololi ʻano me ka mālama hewa. No ka laʻana, hoʻohana nā ʻano like from_be_bytes me nā ʻano integer i nā arrays ma ke ʻano he hoʻokomo, akā hele pinepine ka ʻikepili i kahi ʻano Slice, a ʻo ka hoʻololi ʻana ma waena o nā arrays a me nā ʻāpana he pilikia ke hana me ka lima. Me ke kōkua o nā hiʻohiʻona hou, hiki ke hana i ka hana i ʻōlelo ʻia ma ka lele ma o ke kelepona ʻana iā .try_into(), no ka laʻana, "let num = u32::from_be_bytes(slice.try_into()?)". No nā hoʻololi ʻana i kūleʻa mau (no ka laʻana, mai ke ʻano u8 a i u32), ua hoʻohui ʻia kahi ʻano hewa Kāhea, e ʻae ana i ka hoʻohana akaka
    E ho'āʻo mai no nā hoʻokō āpau o "Mai";

  • Ua hoʻopau ʻia ka hana CommandExt::before_exec, ka mea i hiki ke ho'okō 'ia ka mea lima ma mua o ka holo 'ana i ka exec, i hana 'ia i loko o ka pō'aiapili o ke ka'ina hana keiki i 'oki 'ia ma hope o ke kāhea 'ana i ka fork(). Ma lalo o ia mau kūlana, hiki ke hoʻopalike ʻia kekahi mau kumuwaiwai o ke kaʻina hana makua, e like me ka wehewehe ʻana i nā faila a me nā wahi hoʻomanaʻo palapala ʻāina, hiki ke alakaʻi i ke ʻano ʻike ʻole a me ka hana hewa o nā hale waihona puke.
    Manaʻo ʻia e hoʻohana i kahi hana palekana ma mua o before_exec CommandExt::pre_exec.

  • ʻO nā ʻano integer atomika i hoʻopaʻa ʻia i hoʻopaʻa ʻia a ʻaʻole pūlima ʻia mai ka 8 a hiki i ka 64 bits (no ka laʻana, AtomicU8), a me nā ʻano pūlima NonZeroI[8|16|32|64|128].
  • Ua hoʻoneʻe ʻia kahi ʻāpana hou o ka API i ka wae paʻa, me ka Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub ] a ua hoʻopaʻa ʻia nā ala SystemTime ::checked_[add|sub]. Ua hoʻokūpaʻa ʻia nā hana iter::from_fn a me iter::subcessors;
  • No nā ʻano integer a pau, ua hoʻokō ʻia nā hana checked_pow, saturating_pow, wrapping_pow a me overflowing_pow;
  • Hoʻohui ʻia ka hiki ke hiki i nā loiloi ma ke kahua hoʻopili ma ke kuhikuhi ʻana i ke koho kūkulu "-C linker-plugin-lto".

Source: opennet.ru

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