Rust 1.73 Ukukhishwa Kolimi Lokuhlela

Ulimi lokuhlela lwenhloso evamile i-Rust 1.73, olwasungulwa iphrojekthi ye-Mozilla kodwa manje oluthuthukiswe ngaphansi kwenhlangano ezimele engenzi nzuzo i-Rust Foundation, lukhululiwe. Ulimi lugxile ekuphepheni kwenkumbulo futhi luhlinzeka ngezindlela zokuzuza ukufana kwemisebenzi ephezulu kuyilapho ugwema ukusetshenziswa komqoqi kadoti nesikhathi sokusebenza (isikhathi sokusebenza sincishiselwa ekuqaliseni okuyisisekelo nasekunakekeleni umtapo wolwazi ojwayelekile).

Izindlela zokuphatha inkumbulo kaRust zisindisa unjiniyela emaphutheni lapho eshintsha izikhombi futhi avikele ezinkingeni eziphakama ngenxa yokuphatha inkumbulo esezingeni eliphansi, njengokufinyelela indawo yenkumbulo ngemva kokuba ikhululiwe, ukuhoxisa izikhombi ezingenalutho, ukugcwala kwebhafa, njll. Ukuze kusatshalaliswe imitapo yolwazi, ukuhlinzeka ngokwakha nokuphatha okuncikile, iphrojekthi ithuthukisa umphathi wephakheji ye-Cargo. Inqolobane ye-crates.io isekelwe ekusingatheni imitapo yolwazi.

Ukuphepha kwenkumbulo kunikezwa ku-Rust ngesikhathi sokuhlanganiswa ngokuhlolwa kwereferensi, ukulandelela ubunikazi bento, ukulandelela isikhathi sokuphila kwento (izikophu), nokuhlola ukulunga kokufinyelela inkumbulo ngesikhathi sokwenziwa kwekhodi. I-Rust iphinde inikeze isivikelo ekuchichimeni okuphelele, idinga ukuqaliswa okuyisibopho kwamanani ahlukahlukene ngaphambi kokusetshenziswa, iphatha amaphutha kangcono kulabhulali evamile, isebenzisa umqondo wezithenjwa ezingaguquleki nokuguquguqukayo ngokuzenzakalelayo, inikeza ukuthayipha okuqinile okuqinile ukuze kuncishiswe amaphutha anengqondo.

Okuqanjiwe okuyinhloko:

  • Ifomethi yemilayezo ekhishwe isibambi sokuphahlazeka sohlelo (ukwethuka) iklanywe kabusha. Umbhalo ocaciswe ku-"panic!" macro manje iboniswa emugqeni ohlukile ngaphandle kwezimpawu zokucaphuna, okwenza umlayezo ufundeke kalula futhi isuse ukudideka lapho izingcaphuno ezifakwe esidlekeni zikhona noma zihlukaniswa emigqeni eminingi. fn main() { let file = "ferris.txt"; ukwethuka!("oh cha! {file:?} ayitholakali!"); } Kube nochungechunge 'olukhulu' olwethukile luthi 'oh no! "ferris.txt" ayitholakali!', src/main.rs:3:5 Uchungechunge oluthi 'main' luthukile kokuthi src/main.rs:3:5: oh cha! "ferris.txt" ayitholakali!

    Okukhiphayo kwemilayezo eboniswa lapho amamakhro we-“assert_eq” kanye ne-“assert_ne” kucushwa nakho kusetshenzwe kabusha. fn main() {assert_eq!("🦀", "🐟", "i-ferris akuyona inhlanzi"); } Kube nochungechunge 'oluyinhloko' oluthuke 'ukugomela kwehlulekile: `(kwesokunxele == kwesokudla)` kwesobunxele: `"🦀"`, kwesokudla: `"🐟"`: u-ferris akuyona inhlanzi', src/main.rs: 2 :5 Uchungechunge 'oluyinhloko' luthuke ku-src/main.rs:2:5: ukugomela kokuthi `kwesokunxele == kwesokudla` kwehlulekile: i-ferris akuyona inhlanzi esele: “🦀” kwesokudla: “🐟”

  • Ngokuvumelana ne-RFC 3184, amandla okukhohlisa ngokuqondile okhiye besitoreji be-LocalKey (intambo_yasendaweni) yengeziwe. > kanye ne-LocalKey > ngokusebenzisa i-get(), set(), take() and replace() izindlela, esikhundleni sokusebenzisa ukuvala "nge(|inner| ...)", okususa isidingo sokwenza ikhodi yokuqalisa eyengeziwe amanani azenzakalelayo abalulwe imicu emisha uma usebenzisa i-macro "thread_local!" intambo_yasendaweni! {IZINTO ezimile: Iseli > = Cell::new(Vec::new()); } fn f() {// was THINGS.with(|i| i.set(vec![32, 1, 2])); // yaba THINGS.set(vec![3, 1, 2]); // ... // yavunyelwa v = THINGS.with(|i| i.take()); // yaba yi-let v: Vec = IZINTO.thatha(); }
  • Ingxenye entsha ye-API iyiswe esigabeni sokuzinza, okuhlanganisa izindlela nokusetshenziswa kwezimpawu kuzinzile:
    • Okungasayiniwe {integer}::div_ceil
    • Okungasayiniwe {integer}::next_multiple_of
    • Okungasayiniwe {integer}::checked_next_multiple_of
    • std::ffi::FromBytesUntilNulError
    • std::os::unix::fs::chown
    • std::os::unix::fs::fchown
    • std::os::unix::fs::lfchown
    • LocalKey:: >::thola
    • LocalKey:: >:: setha
    • LocalKey:: >::thatha
    • LocalKey:: >:: buyisela
    • LocalKey:: >::nge_boleka
    • LocalKey:: >::nge_borrow_mut
    • LocalKey:: >:: setha
    • LocalKey:: >::thatha
    • LocalKey:: >:: buyisela
  • Isibaluli esithi "const", esinquma ukuthi kungenzeka yini ukusisebenzisa kunoma yimuphi umongo esikhundleni sama-constants, sisetshenziswa emisebenzini:
    • rc::Buthaka::okusha
    • ukuvumelanisa::Buthaka::kusha
    • I-Nonnull::as_ref
  • Umhlanganisi uhlinzeka ngokurekhoda kolwazi lwenguqulo esigabeni esithi “.comment”, esifana ne-GCC ne-Clang.
  • Izinga lesithathu losekelo lisetshenziswe kumapulatifomu aarch64-unknown-teeos, csky-unknown-linux-gnuabiv2, riscv64-linux-android, riscv64gc-unknown-hermit, x86_64-unikraft-linux-musl kanye ne-x86_64-linux-engaziwa -oho. Ileveli yesithathu ibandakanya ukwesekwa okuyisisekelo, kodwa ngaphandle kokuhlola okuzenzakalelayo, ukushicilela izakhiwo ezisemthethweni, noma ukuhlola ukuthi ikhodi ingakhiwa yini.
  • Izinga lesibili losekelo lwengxenyekazi eqondiwe i- wasm32-wasi-preview1-threads seliqalisiwe. Izinga lesibili losekelo libandakanya isiqinisekiso somhlangano.

Source: opennet.ru

Engeza amazwana