Rust 1.34 Whakaputa Reo Papatono

i tupu te tuku reo hootaka punaha Rust 1.34, i whakawhanakehia e te kaupapa Mozilla. E aro ana te reo ki te haumaru mahara, e whakarato ana i te whakahaere mahara aunoa, me te whai huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei.

Ma te whakahaere mahara aunoa a Rust ka wetekina te kaiwhakawhanake mai i te raweke i te atatohu me te whakamarumaru i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te uru mahara kore-muri, te kore tohu tohu kore, te paopao, me era atu. Kei te whakawhanakehia he kaiwhakahaere mokihi hei tohatoha whare pukapuka, hei whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga a te kaupapa. utanga, ka taea e koe te tiki i nga whare pukapuka e hiahiatia ana mo te kaupapa i te paato kotahi. Ka tautokohia he putunga hei manaaki i nga whare pukapuka crates.io.

Main nga mahi auaha:

  • Kua taapirihia e te kaiwhakahaere kete Uta etahi taputapu hei mahi me etahi atu rehita kete ka taea te noho tahi me te rehitatanga whanui crates.io. Hei tauira, ka taea e nga kaiwhakawhanake o nga tono rangatira te whakamahi i a raatau ake rehita motuhake, ka taea te whakamahi ina whakarārangihia nga whakawhirinaki ki Cargo.toml, me te tono tauira whakaputa rite ki te crates.io mo a raatau hua, me te tohu whakawhirinaki ki nga pouaka e rua. io me to rehitatanga ake.

    Hei taapiri i nga rehitatanga o waho ki te .cargo/config (kei roto i te $HOME kei roto ranei i te raarangi mokihi)
    whakaratohia wāhanga “[rehita]”, me te whakamahi i te rehita o waho, kua puta te whiringa “rehita” i roto i te whakaahuatanga o ia whakawhirinakitanga i Cargo.toml. Hei hono atu ki tetahi atu rehitatanga, tuu noa te tohu motuhēhēnga ki te kōnae ~/.cargo/credentials ka whakahaere i te whakahau
    "takiuru uta --registry=my-registry" me te whakaputa i tetahi kete -
    "cargo publish -registry=taku-rehita";

  • Kua taapirihia te tautoko katoa mo te whakamahi i te kaiwhakahaere "?". i roto i nga whakamatautau nga whakamatautauranga, ka taea e koe te whakamahi waehere tauira mai i nga tuhinga hei whakamatautau. Kaiwhakahaere o mua
    "?" ka taea te whakamahi ki te hapai i nga hapa i te wa e mahia ana te whakamatautau i te aroaro o te mahi "fn matua()", i roto ranei i nga mahi "#[whakamatautau]";

  • I roto i nga huanga ritenga kua tautuhia ma te whakamahi i nga tonotono tikanga whakaratohia te kaha ki te whakamahi i nga huinga tohu tohu (“#[attr($tokens)]”, “#[attr[$tokens]] me #[attr{$tokens}]”). I mua, ka taea anake te tautuhi i nga huānga i roto i te ahua rakau/recursive ma te whakamahi i nga kupu aho, hei tauira "#[foo(bar, baz(quux, foo = "bar"))]", engari inaianei ka taea te whakamahi tatau (' #[awhe(0. .10)]') me nga hanga penei “#[here(T: MyTrait)]”;
  • Momo whakau (ahua) NganaMai и Whakamātauria, ka taea te whakarereke momo me te whakahaere hapa. Hei tauira, ko nga tikanga penei me from_be_bytes me nga momo integer e whakamahi ana i nga hurangi hei whakauru, engari he maha nga wa ka tae mai nga raraunga i roto i te momo Poro, me te huri i waenga i nga rarangi me nga poro he raru ki te mahi a-ringa. Ma te awhina o nga ahuatanga hou, ka taea te mahi i runga i te rere ma te waea ki .try_into(), hei tauira, “let num = u32::from_be_bytes(slice.try_into()?)”. Mo nga huringa ka angitu tonu (hei tauira, mai i te momo u8 ki te u32), kua taapirihia he momo hapa Mutu, ka taea te whakamahi marama
    TryFrom mo nga whakatinanatanga katoa o "Mai";

  • Kua whakakorehia te mahi CommandExt::before_exec, i whakaaetia kia mahia he kaikawe i mua i te whakahaere exec, i mahia i roto i te horopaki o te tukanga tamaiti i marau i muri i te karanga marau(). I raro i enei tikanga, ka taea te taarua etahi rauemi o te tukanga matua, penei i nga kaiwhakaahua konae me nga waahi mahara kua mapi, ka puta he whanonga kore-tautuhia me te mahi he o nga whare pukapuka.
    E taunaki ana kia whakamahia he mahi haumaru hei utu mo before_exec CommandExt::pre_exec.

  • Nga momo tauoti ngota kua hainatia me te kore hainatanga mai i te 8 ki te 64 moka (hei tauira, AtomicU8), me nga momo kua hainatia KoreKoreI[8|16|32|64|128].
  • Kua nukuhia he waahanga hou o te API ki te waahanga pumau, tae atu ki te Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Inamata::checked_[add|sub ] me nga tikanga SystemTime kua whakapumautia ::checked_[add|sub]. Ko nga mahi a te iter::from_fn me te iter::kei muri kua whakapumautia;
  • Mo nga momo tauoti katoa, ka whakatinanahia nga tikanga taki_pow, saturating_pow, wrapping_pow me overflowing_pow;
  • Kua taapirihia te kaha ki te whakaahei i nga arotautanga i te waahanga hono ma te tohu i te waahanga hanga "-C linker-plugin-lto".

Source: opennet.ru

Tāpiri i te kōrero