Rust 1.58 Famoahana ny fiteny fandaharana

Navoaka ny famoahana ny fiteny fandaharana Rust 1.58 amin'ny tanjona ankapobeny, 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:

  • Ao amin'ny sakana fandrafetana andalana, ankoatry ny fahafahana efa misy teo aloha hanoloana ireo fari-pahalalana voatanisa mazava aorian'ny tsipika amin'ny isa sy anarana, dia ampiharina ny fahafahana manolo ireo famantarana tsy misy dikany amin'ny fampidirana ny fitenenana "{identifier}" amin'ny tsipika. Ohatra: // Fanorenana tohana taloha: println!("Manahoana, {}!", get_person()); println!("Manahoana, {0}!", get_person()); println!("Manahoana, {olona}!", olona = mahazo_olona()); // izao dia azonao atao ny mamaritra let person = get_person(); println!("Manahoana, {olona}!");

    Ny famantarana dia azo faritana mivantana ihany koa amin'ny safidy fandrafetana. let (width, precision) = get_format(); ho an'ny (anarana, naoty) ao amin'ny get_scores() { println!("{anarana}: {sora: sakany$.precision$}"); }

    Ny fanoloana vaovao dia miasa amin'ny macro rehetra izay manohana ny famaritana ny format string, afa-tsy ny "macro!" amin'ny dikan-teny Rust tamin'ny taona 2015 sy 2018, izay misy ny tahotra!("{ident}") dia raisina ho toy ny tady mahazatra (amin'ny Rust 2021 dia miasa ny fanoloana).

  • Ny fihetsiky ny std::process::Firafitry ny baiko amin'ny sehatra Windows dia novana ka rehefa manatanteraka baiko, noho ny antony fiarovana, dia tsy mitady rakitra azo tanterahana intsony ao amin'ny lahatahiry ankehitriny. Ny lahatahiry amin'izao fotoana izao dia voahilika satria azo ampiasaina hanatanterahana kaody ratsy raha toa ka mandeha amin'ny lahatahiry tsy azo itokisana ny programa (CVE-2021-3013). Ny lozika vaovao azo tanterahana dia ahitana ny fikarohana ny lahatahiry Rust, ny lahatahiry fampiharana, ny lahatahiry rafitra Windows, ary ny lahatahiry voatondro ao amin'ny fari-piainan'ny PATH.
  • Ny trano famakiam-boky mahazatra dia nanitatra ny isan'ny asa voamarika hoe "#[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.
  • 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:
    • Metadata::is_symlink
    • Path::is_symlink
    • {integer}::saturating_div
    • Safidy:: unwrap_unchecked
    • Vokatra:: unwrap_unchecked
    • Vokatra:: unwrap_err_unchecked
  • Ny toetra "const", izay mamaritra ny mety hampiasana azy amin'ny toe-javatra rehetra fa tsy constants, dia ampiasaina amin'ny fiasa:
    • Duration::vaovao
    • Duration::checked_add
    • Faharetana:: mahavoky_add
    • Duration::checked_sub
    • Faharetana::mahavoky_sub
    • Duration::checked_mul
    • Faharetana::saturating_mul
    • Duration::checked_div
  • Navela fanafoanana ny tondro "*const T" amin'ny toe-javatra "const".
  • Ao amin'ny mpitantana fonosana entana, ny saha rust_version dia nampidirina amin'ny metadata fonosana, ary ny safidy "--message-format" dia nampidirina amin'ny baiko "cargo install".
  • Ny compiler dia mampihatra ny fanohanana ny rafitra fiarovana CFI (Control Flow Integrity), izay manampy fisavana alohan'ny antso an-kolaka tsirairay mba hamantarana ny endrika fihetsika tsy voafaritra izay mety hitarika ho amin'ny fanitsakitsahana ny baikon'ny famonoana mahazatra (contrΓ΄le flow) vokatry ny fampiasana ny fanararaotana izay manova tondro voatahiry ao amin'ny fitadidiana amin'ny asa.
  • Ny compiler dia nanampy fanohanana ny dikan-teny 5 sy 6 amin'ny endrika fampitahana fandrakofana LLVM, ampiasaina hanombanana ny fandrakofana kaody mandritra ny fitsapana.
  • Ao amin'ny compiler, ny fepetra takiana amin'ny dikan-teny kely indrindra amin'ny LLVM dia atsangana ho LLVM 12.
  • Ny ambaratonga fahatelo fanohanana ny x86_64-tsy fantatra-tsy misy sehatra dia nampiharina. Ny ambaratonga fahatelo dia misy fanohanana fototra, saingy tsy misy fitiliana mandeha ho azy, famoahana fananganana ofisialy, na fanamarinana raha azo amboarina ny kaody.

Fanampin'izany, azontsika atao ny manamarika ny famoahan'i Microsoft ny famoahana ny tranomboky Rust ho an'ny Windows 0.30, izay ahafahanao mampiasa ny fiteny Rust hamolavola rindranasa ho an'ny Windows OS. Ny kitapo dia misy fonosana roa (windows sy windows-sys), izay ahafahanao miditra amin'ny Win API amin'ny programa Rust. Ny kaody ho an'ny fanohanan'ny API dia noforonina mavitrika avy amin'ny metadata mamaritra ny API, izay ahafahanao mampihatra fanohanana tsy ho an'ny antso Win API efa misy ihany, fa ho an'ny antso izay hiseho amin'ny ho avy. Ny dikan-teny vaovao dia manampy fanohanana ny sehatra kendrena UWP (Universal Windows Platform) ary mampihatra ny karazana Handle sy Debug.

Source: opennet.ru

Add a comment