Rust 1.57 Famoahana ny fiteny fandaharana

Navoaka ny famoahana ny fiteny fandaharana Rust 1.57, naorin'ny tetikasa Mozilla, saingy novolavolaina ankehitriny eo ambany fiahian'ny fikambanana tsy miankina Rust Foundation. Mifantoka amin'ny fiarovana ny fitadidiana ilay fiteny, manome fitantanana fitadidiana mandeha ho azy, ary manome fitaovana ahafahana manatratra ny parallèle amin'ny asa avo lenta nefa tsy mampiasa mpanangom-pako na fotoana fiasana (ahena ny fotoana fandehanana amin'ny fanombohana fototra sy fikojakojana ny tranomboky mahazatra).

Ny fitantanana fitadidiana mandeha ho azy an'i Rust dia manafoana ny lesoka rehefa manodinkodina ny tondro ary miaro amin'ny olana ateraky ny fanodikodinam-pahatsiarovana ambany, toy ny fidirana amin'ny faritra fitadidiana rehefa afaka izany, ny tsy fahampian'ny pointer tsy misy tondro, ny fihoaran'ny buffer, sns. Mba hizarana trano famakiam-boky, hiantohana ny fivoriambe ary hitantana ny fiankinan-doha, ny tetikasa dia mamolavola ny mpitantana fonosana Cargo. Ny tahiry crates.io dia tohanana amin'ny fampiantranoana tranomboky.

Fanavaozana lehibe:

  • Nilamina ny fampiasana ny macro β€œpanic!”. amin'ny toe-javatra noforonina nandritra ny fanangonana, toy ny fanambarana "const fn". Fanampin'izany, ankoatry ny fampiasana "panic!" const dia mamela ny fampiasana ny macro "asert!". ary API famakiam-boky mahazatra hafa. Tsy mbola mandrakotra ny fotodrafitrasa fandrafetana manontolo ny fanamafisana, ka amin'ny endriny ankehitriny dia ny macro "panic!" tsy azo ampiasaina afa-tsy amin'ny tady static (panic!(β€œ...")) na miaraka amin'ny sanda iray mitambatra "&str" rehefa manolo (panic!("{}", a)), izay tokony ho voafetra amin'ny fanoloana ny "{ }" tsy misy famaritana format sy karazana hafa. Amin'ny ho avy, ny fampiharana ny macros amin'ny toe-javatra tsy tapaka dia hitarina, fa ny fahaiza-manao stabilizes dia efa ampy hanaovana ny fisavana assert amin'ny dingana fanangonana: const _: () = assert!(std::mem::size_of::() == 64 ); const _: () = manamafy!(std::mem::habe_of::() == 8);
  • Ny mpitantana fonosana Cargo dia mamela ny fampiasana ny mombamomba misy anarana tsy misy dikany, tsy voafetra amin'ny "dev", "release", "test" ary "bench". Ohatra, mba ahafahana manatsara ny dingana fampifandraisana (LTO) raha tsy rehefa vita ny fitambaran'ny vokatra farany, dia azonao atao ny mamorona mombamomba ny "famokarana" ao amin'ny Cargo.toml ary ampio ny saina "lto = marina". Na izany aza, rehefa mamaritra ny mombamomba anao manokana ianao dia tsy maintsy mamaritra ny mombamomba efa misy mba handova ny fanovana default avy aminy. Ny ohatra etsy ambany dia mamorona mombamomba "famokarana" izay mameno ny mombamomba ny "famoahana" amin'ny fampidirana ny saina "lto = marina". Ny mombamomba ny tenany dia mavitrika amin'ny fiantsoana entana miaraka amin'ny safidy "--profile production", ary ny artifacts assembly dia hapetraka ao amin'ny lahatahiry "target / production". [profile.production] inherits = "famotsorana" lto = marina
  • Ny fampiasana try_reserve ho an'ny karazana Vec, String, HashMap, HashSet ary VecDeque dia naorina, izay ahafahanao mitahiry toerana mialoha ho an'ny singa maromaro amin'ny karazana iray mba hampihenana ny fatran'ny fampandehanana fahatsiarovana ary hisorohana. fianjerana mandritra ny fandidiana noho ny tsy fahampian'ny fitadidiana.
  • Azo atao ny mamaritra macros misy braces olioly amin'ny fomba fiteny toy ny "m!{ .. }.method()" sy "m!{ .. }?".
  • Nohatsaraina ny fanatanterahana ny File ::read_to_end sy read_to_string.
  • Nohavaozina ho version 14.0 ny fanohanana ny fanondroana Unicode.
  • Nanitatra ny isan'ny asa voamarika "#[must_use]" mba hamoahana fampitandremana raha tsy raharahaina ny sanda miverina, izay manampy amin'ny famantarana ny lesoka vokatry ny fiheverana fa hanova ny soatoavina ny asa iray fa tsy hamerina sanda vaovao.
  • Nampiana backend fanandramana ho an'ny famoronana kaody mampiasa libgccjit.
  • Ny ampahany vaovao amin'ny API dia nafindra ho amin'ny sokajy stable, ao anatin'izany ny fomba sy ny fampiharana ny toetra efa niorina:
    • [T; N]::as_mut_slice
    • [T; N]::as_slice
    • collections :: 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:: try_reserve_exact
    • Iterator::map_while
    • iter ::MapWhile
    • proc_macro::dia_misy
    • Command:: get_program
    • Command:: get_args
    • Command::get_envs
    • Command:: get_current_dir
    • CommandArgs
    • CommandEnvs
  • Ny toetra "const", izay mamaritra raha azo ampiasaina amin'ny toe-javatra rehetra fa tsy constants, dia ampiasaina amin'ny fonction hint::unreachable_unchecked.
  • Ny fanohanana ambaratonga fahatelo dia nampiharina ho an'ny armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi ary armv7a-kmc- solid_asp3-eabihf platforms. Ny ambaratonga fahatelo dia misy fanohanana fototra, saingy tsy misy fitsapana mandeha ho azy, famoahana fananganana ofisialy, na fanamarinana raha azo amboarina ny kaody.

Source: opennet.ru

Add a comment