Harshen shirye-shiryen tsatsa 1.73

An buga yaren shirye-shirye na Rust 1.73 na gabaɗaya, wanda aikin Mozilla ya kafa, amma yanzu an haɓaka shi a ƙarƙashin inuwar wata kungiya mai zaman kanta mai zaman kanta ta Rust Foundation. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya kuma yana ba da hanyoyin cimma babban daidaiton aiki yayin guje wa yin amfani da mai tara shara da lokacin aiki (an rage lokacin aiki zuwa farawa na asali da kiyaye daidaitaccen ɗakin karatu).

Hanyoyin sarrafa ƙwaƙwalwar Rust suna ceton mai haɓakawa daga kurakurai yayin sarrafa masu nuni da kuma kariya daga matsalolin da suka taso saboda ƙarancin kulawar ƙwaƙwalwar ajiya, kamar samun damar wurin ƙwaƙwalwar ajiya bayan an 'yantar da shi, cire maƙasudin null, buffer overruns, da dai sauransu. Don rarraba ɗakunan karatu, samar da gini da sarrafa abubuwan dogaro, aikin yana haɓaka manajan fakitin Kaya. Ana tallafawa ma'ajiyar crates.io don ɗaukar ɗakunan karatu.

Ana ba da amincin ƙwaƙwalwar ajiya a cikin Tsatsa a lokacin tattarawa ta hanyar duba tunani, kiyaye bin diddigin mallakar abu, kiyaye tsawon rayuwa (masu iyawa), da tantance daidaiton damar ƙwaƙwalwar ajiya yayin aiwatar da lambar. Tsatsa kuma yana ba da kariya daga ambaliya mai lamba, yana buƙatar ƙaddamar da ƙima mai mahimmanci kafin amfani, yana sarrafa kurakurai mafi kyau a cikin daidaitaccen ɗakin karatu, yana amfani da ra'ayi na nassoshi marasa canzawa da masu canji ta tsohuwa, yana ba da buga rubutu mai ƙarfi don rage kurakurai masu ma'ana.

Manyan sabbin abubuwa:

  • An sake fasalin tsarin saƙon da aka yi ta hanyar tsoho mai kula da hadarin shirin (firgita). Rubutun da aka ƙayyade a cikin "firgita!" macro yanzu an nuna shi akan wani layi na daban ba tare da alamar ambato ba, yana sauƙaƙa saƙon karantawa da kawar da ruɗani lokacin da ƙididdiga masu ƙima suka kasance ko kuma suka rabu cikin layi ɗaya. fn main() {bari fayil = "ferris.txt"; firgita! ("oh a'a! {file:?} ba a same shi ba!"); } Akwai zaren 'main' a firgice a 'oh a'a! "ferris.txt" ba a same shi ba!', src/main.rs:3:5 Zaren 'main' ya firgita a src/main.rs:3:5: oh a'a! "ferris.txt" ba a samu ba!

    Fitowar saƙonnin da aka nuna lokacin da aka kunna “assert_eq” da “assert_ne” macros shima an sake yin aiki. fn main() {assert_eq!("🦀", "🐟", "ferris ba kifi ba"); } Akwai zaren 'main' wanda ya firgita a 'assertion ya kasa:' (hagu == dama)' hagu: `"🦀"', dama: `"🐟"`: ferris ba kifi ba ne', src/main.rs: 2 :5 Zaren 'main' ya firgita a src/main.rs:2:5: tabbatar da ''hagu == dama' ya kasa: ferris ba kifi hagu ba: "🦀" dama: "🐟"

  • Dangane da RFC 3184, an ƙara ikon sarrafa madanni-na gida (thread_local) maɓallin ma'auni na LocalKey kai tsaye. > da LocalKey > ta hanyar amfani da hanyar samun (), saita (), ɗauka () da maye gurbin () hanyoyin, maimakon amfani da "tare da (| ciki | ...)" rufewa, wanda ke kawar da buƙatar yin ƙarin lambar farawa don Mahimman ƙimar da aka ƙayyade don sababbin zaren yayin amfani da macro "thread_local!" zaren_local! {Abubuwan da ke tsaye: Cell > = Cell::sabo(Vec::sabon()); } fn f () {// ya kasance ABUBUWA.with (| i| i.set (vec![32, 1, 2])); // ya zama ABUBUWA.set(vec![3, 1, 2]); // ... // aka bari v = ABUBUWA.tare da (|i| i.take()); // ya zama bari v: Vec = ABUBUWA.dauka(); }
  • An koma wani sabon yanki na API zuwa nau'in barga, gami da hanyoyin da aiwatar da halaye an daidaita su:
    • Ba a sanya hannu ba {integer} :: div_ceil
    • Ba a sanya hannu ba {integer} :: na gaba_yawan_na
    • Ba a sanya hannu ba {integer} :: an duba_next_yawan_na
    • std:: ffi:: DagaBytesUntilNulError
    • std:: os:: unix:: fs:: chown
    • std:: os:: unix:: fs:: fchown
    • std:: os:: unix:: fs:: lfchown
    • Key Key :: >:: samu
    • Key Key :: >:: saita
    • Key Key :: >:: dauki
    • Key Key :: >:: maye gurbin
    • Key Key :: >> tare da_ aro
    • Key Key :: >> tare da_borrow_mut
    • Key Key :: >:: saita
    • Key Key :: >:: dauki
    • Key Key :: >:: maye gurbin
  • Ana amfani da sifa na "const", wanda ke ƙayyade yiwuwar amfani da shi a cikin kowane mahallin maimakon akai-akai, a cikin ayyuka:
    • rc::Rauni::sabo
    • sync::Rauni::sabo
    • NonNull:: as_ref
  • Mai tarawa yana ba da rikodin bayanan sigar a cikin sashin ".comment", kama da GCC da Clang.
  • An aiwatar da matakin tallafi na uku don dandamali aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl da x86_64-unknown-linux - ohos. 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.
  • An aiwatar da matakin tallafi na biyu na dandalin da aka yi niyya wasm32-wasi-preview1-threads. Mataki na biyu na tallafi ya ƙunshi garantin taro.

source: budenet.ru

Add a comment