Rust 1.57 Whakaputa Reo Papatono

Ko te tukunga o te reo hootaka punaha Rust 1.57, i hangaia e te kaupapa Mozilla, engari kua whakawhanakehia inaianei i raro i te maru o te whakahaere kore-painga motuhake Rust Foundation, kua whakaputaina. Ka aro te reo ki te haumaru mahara, ka whakarato i te whakahaere mahara aunoa, me te whakarato i nga huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei (ka whakaitihia te wa whakahaere ki te arataki me te tiaki i te whare pukapuka paerewa).

Ko te whakahaere mahara aunoa a Rust ka whakaora i te kaiwhakawhanake mai i nga hapa i te wa e raweke ana i nga tohu tohu me te whakamarumaru mai i nga raru ka puta mai na te raweke mahara taumata-iti, penei i te urunga ki tetahi waahi mahara i muri i te wetewetetanga, te whakakore i nga tohu tohu kore, te paopao, me era atu. Hei tohatoha whare pukapuka, whakarato hanga me te whakahaere i nga whakawhirinakitanga, ka whakawhanakehia e te kaupapa te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Nga mahi hou:

  • Ko te whakamahinga o te tonotono “panic!” kua tau. i roto i nga horopaki i hangaia i te wa e whakahiato ana, penei i nga whakapuakanga "const fn". I tua atu, i tua atu i te whakamahi "panic!" Ka taea e nga whakapuakanga const te whakamahi i te tonotono “whakapuaki!”. me etahi atu API whare pukapuka paerewa. Kaore ano kia kapi katoa te hanganga whakahōpututanga, no reira ko te tonotono "panic!" ka taea anake te whakamahi me nga aho pateko (panic!(“...")) me te uara honohono kotahi "&str" ka whakakapia (panic!("{}", a)), me whakawhäitihia ki te whakakapi "{ }" me te kore whakahōputu whakapūtā me ētahi atu momo. Hei te wa kei te heke mai, ka whakawhanuihia te tonotono i roto i nga horopaki tonu, engari kua ranea nga kaha whakapumau ki te mahi i nga arowhai whakapae i te wahanga whakahiato: const _: () = assert!(std::mem::size_of::() == 64 ); const _: () = assert!(std::mem::size_of::() == 8);
  • Ka taea e te kaiwhakahaere kete Uta te whakamahi i nga korero me nga ingoa kore noa, kaore i te iti ki te "dev", "tuku", "whakamatautau" me te "paepae". Hei tauira, kia taea ai te arotautanga i te atamira hono (LTO) anake ka hangaia nga huihuinga hua whakamutunga, ka taea e koe te hanga i tetahi tohu "whakaputa" ki Cargo.toml me te taapiri i te haki "lto = pono" ki reira. Heoi, i te wa e tautuhi ana i o ake korero, me tohu koe i tetahi kotaha o naianei hei tuku i nga tautuhinga taunoa mai i a koe. Ko te tauira i raro nei ka hanga he tohu "whakaputa" hei whakakii i te tohu "tuku" ma te whakauru i te haki "lto = pono". Ko te kōtaha tonu ka whakahohehia ma te waea utanga me te whiringa "--profile production", ka waiho nga taonga o te huihuinga ki te raarangi "target/production". [profile.production] inherits = "tuku" lto = pono
  • Ko te whakamahi i te try_reserve mo nga momo Vec, String, HashMap, HashSet me VecDeque, ka taea e koe te rahui mokowhiti i mua mo etahi momo huānga o tetahi momo hei whakaiti i te auau o nga mahi tohatoha mahara me te karo. ka pakaru i te wa e mahi ana na te kore o te mahara.
  • E whakaaetia ana ki te tauwhāiti tonotono whai taiapa mingimingi i roto i nga korero penei "m!{ .. }.tikanga()" me "m!{ .. }?".
  • Kua arotauhia te mahinga o te Kōnae::read_to_end me read_to_string.
  • Ko te tautoko mo te tohu Unicode kua whakahoutia ki te putanga 14.0.
  • Kua whakaroahia te maha o nga mahi kua tohua "#[me_whakamahia]" ki te whakaputa whakatupato mena ka warewarehia te uara whakahoki, e awhina ana ki te tautuhi i nga hapa i puta mai i te whakaaro ka huri te uara o tetahi mahi, kaua ki te whakahoki i te uara hou.
  • Kua taapirihia te tuara whakamatautau mo te hanga waehere ma te whakamahi i te libgccjit.
  • Kua nekehia tetahi waahanga hou o te API ki te waahanga pumau, tae atu ki nga tikanga me nga whakatinanatanga o nga ahuatanga kua whakapumautia:
    • [T; N]:: as_mut_slice
    • [T; N]::as_slice
    • kohikohinga::TryReserveError
    • HashMap::try_reserve
    • HashSet::try_reserve
    • Aho::try_reserve
    • Aho::try_reserve_exact
    • Vec::try_reserve
    • Vec::try_reserve_exact
    • VecDeque::try_reserve
    • VecDeque::try_reserve_exact
    • Kaihuri::map_while
    • iter::MapWhile
    • proc_macro::kei_watea
    • Tono::get_program
    • Tono::get_args
    • Tono::get_envs
    • Tono::get_current_dir
    • CommandArgs
    • CommandEnvs
  • Ko te huanga "const", ka whakatau mena ka taea te whakamahi i roto i tetahi horopaki hei utu i nga taumau, ka whakamahia i roto i te tohu mahi::unreachable_unchecked.
  • Ko te taumata tuatoru o te tautoko kua whakatinanahia mo te armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi me armv7a-kmc- solid_asp3-eabihf turanga. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa, te whakaputa i nga hanganga mana, me te tirotiro mena ka taea te hanga te waehere.

Source: opennet.ru

Tāpiri i te kōrero