Sakin Harshen Shirye-shiryen Rust 2021 (1.56)

An buga yaren shirye-shiryen tsarin Rust 1.56, wanda aikin Mozilla ya kafa, amma yanzu an haɓaka shi a ƙarƙashin inuwar ƙungiyar mai zaman kanta mai zaman kanta ta Rust Foundation. Baya ga lambar sigar yau da kullun, an kuma ƙaddamar da sakin Rust 2021 kuma yana nuna tabbatar da canje-canjen da aka gabatar cikin shekaru uku da suka gabata. Tsatsa 2021 kuma zai zama tushen haɓaka ayyuka a cikin shekaru uku masu zuwa, kamar yadda sakin Rust 2018 ya zama tushen ci gaban harshe a cikin shekaru uku da suka gabata.

Don ci gaba da dacewa, masu haɓakawa na iya amfani da alamun "2015", "2018" da "2021" a cikin shirye-shiryen su, suna ba da damar haɗa shirye-shiryen zuwa yanki na yanki na harshe daidai da zaɓaɓɓun bugu na Tsatsa. An gabatar da bugu don raba canje-canjen da ba su dace ba kuma an saita su a cikin metadata na fakitin kaya ta cikin filin "bugu" a cikin sashin "[kunshin]". Misali, fitowar "2018" ta haɗa da aikin da aka daidaita har zuwa ƙarshen 2018 kuma yana rufe duk ƙarin canje-canje waɗanda ba su karya daidaituwa. Buga na 2021 ya kuma haɗa da fasalulluka-karɓar aiki da aka gabatar a cikin sakin 1.56 na yanzu kuma an amince da aiwatarwa nan gaba. Baya ga harshen kansa, masu gyara kuma suna la'akari da yanayin kayan aiki da takaddun bayanai.

Manyan rashin daidaituwa da aka yi rikodin a cikin Rust 2021:

  • Ɗaukar Maɓalli na dabam a cikin Rufewa - Rufewa na iya ɗaukar sunayen filin mutum ɗaya a maimakon duka mai ganowa. Misali, "|| ax + 1" kawai zai kama "ax" maimakon "a".
  • Halayen IntoIterator don tsararru: array.into_iter() yana ba ku damar sake maimaita abubuwan tsararru ta dabi'u, maimakon ta hanyar nassoshi.
  • An canza aiwatar da kalmomin "|" a cikin macro_rules (Boolean OR) a cikin alamu - Ƙa'idar ": pat" a cikin matches yanzu yana mutunta "A | B".
  • Manajan fakitin kaya ya haɗa ta tsohuwa sigar na biyu na mai warware fasalin, tallafi wanda ya bayyana a cikin Rust 1.51.
  • An ƙara halayen TryFrom, TryInto da FromIterator zuwa daidaitaccen tsarin ɗakin karatu na share fage.
  • Tsoro!
  • Kalmomin ident#, ident»..." da kuma ident'...' an tanada su a cikin ma'anar harshe.
  • Matsar da bare_trait_objects da ellipsis_inclusive_range_patterns gargadi ga kurakurai.

Sabo a cikin Rust 1.56:

  • A cikin Cargo.toml, a cikin sashin "[kunshin]", an ƙara filin sigar tsatsa, ta inda zaku iya tantance mafi ƙarancin tallafi na tsatsa don fakitin akwati. Idan sigar na yanzu bai dace da ƙayyadadden ma'auni ba, Cargo zai daina aiki tare da saƙon kuskure.
  • Lokacin daidaita tsarin ta amfani da maganganun "binding @ pattern", ana ba da tallafi don tantance ƙarin ɗaurin (misali, "bari matrix @ Matrix {row_len, .. } = get_matrix();").
  • An koma wani sabon yanki na API zuwa nau'in barga, gami da hanyoyin da aiwatar da halaye an daidaita su:
    • std:: os:: unix:: fs:: chroot
    • UnsafeCell :: raw_samun
    • BufWriter :: a cikin_parts
    • core:: firgici:: {UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec:: raguwa_zuwa
    • Zari ::raƙan_zuwa
    • OsString:: raguwa_zuwa
    • PathBuf:: raguwa_zuwa
    • BinaryHeap::shrink_to
    • VecDeque:: raguwa_zuwa
    • HashMap:: raguwa_zuwa
    • HashSet:: raguwa_zuwa
  • Ana amfani da sifa na "const", wanda ke ƙayyade yiwuwar amfani da shi a kowane mahallin maimakon akai-akai, a cikin ayyuka.
    • std:: mem:: transmute
    • [T]:: na farko
    • [T] :: raba_farko
    • [T]:: na karshe
    • [T] :: raba_karshe
  • An canza mai tarawa don amfani da nau'in LLVM 13.
  • An aiwatar da matakin tallafi na biyu don dandamali na aarch64-apple-ios-sim da matakin na uku don dandamali na powerpc-unknown-freebsd da riscv32imc-esp-espidf. Mataki na uku ya ƙunshi tallafi na asali, amma ba tare da gwaji ta atomatik ba, buga ginin hukuma, ko duba ko za a iya gina lambar.

Ka tuna cewa Rust yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da hanyoyin da za a cimma babban daidaito a cikin aiwatar da aikin ba tare da amfani da mai tara shara ba ko lokacin aiki (lokacin aiki yana raguwa zuwa farawa na asali da kiyaye daidaitaccen ɗakin karatu).

Gudanar da ƙwaƙwalwar ajiya ta atomatik na Rust yana kawar da kurakurai yayin sarrafa masu nuni kuma yana ba da kariya daga matsalolin da suka taso daga ƙananan ƙananan ƙwaƙwalwar ajiya, kamar shiga yankin ƙwaƙwalwar ajiya bayan an 'yantar da shi, ɓangarorin null pointer, buffer overruns, da dai sauransu. Don rarraba ɗakunan karatu, tabbatar da taro da sarrafa abubuwan dogaro, aikin yana haɓaka manajan fakitin Cargo. Ana tallafawa ma'ajiyar crates.io don ɗaukar ɗakunan karatu.

source: budenet.ru

Add a comment