Rust 1.61 Ukukhishwa Kolimi Lokuhlela

Ulimi lokuhlela lwenhloso evamile i-Rust 1.61, 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:

  • Kungenzeka ukuchaza amakhodi akho okubuyisela kusuka kumsebenzi oyinhloko. Ekuqaleni, umsebenzi oyinhloko we-Rust wawungabuyisela kuphela uhlobo "()" (iyunithi), olwaluhlala lubonisa isimo sokuphuma esiyimpumelelo ngaphandle uma unjiniyela elubize ngokusobala umsebenzi othi "inqubo::phuma(ikhodi)". Ku-Rust 1.26, kusetshenziswa isici sokunqanyulwa esingazinzile emsebenzini oyinhloko, bekungenzeka ukubuyisela amanani "Ok" kanye "Nephutha", ahambisana namakhodi we-EXIT_SUCCESS kanye ne-EXIT_FAILURE ezinhlelweni ze-C. Ku-Rust 1.61, isici sokunqanyulwa senziwe sazinza, futhi uhlobo oluhlukile lwe-ExitCode luphakanyiswe ukumela ikhodi ethile yokubuyisela, efusha izinhlobo zokubuyisela eziqondene nenkundla ngokunikeza kokubili okuhlala kuchazwe ngaphambilini I-SUCCESS kanye ne-FAILURE, kanye nendlela ethi From. ukubuyisela ikhodi yangokwezifiso yokubuyisela. sebenzisa std::process::ExitCode; fn main() -> ExitCode {uma !check_foo() {buyisela i-ExitCode::from(8); } Ikhodi yokuphuma::SUCCESS }
  • Amakhono engeziwe emisebenzi echazwe kusetshenziswa inkulumo ethi β€œconst fn” azinzisiwe, engabizwa hhayi nje njengemisebenzi evamile, kodwa futhi asetshenziswe kunoma yimuphi umongo esikhundleni sama-constants. Le misebenzi ibalwa ngesikhathi sokuhlanganisa, hhayi ngesikhathi sokusebenza, ngakho ingaphansi kwemikhawulo ethile, njengokukwazi ukufunda kuphela kuma-constants. Enguqulweni entsha, imisebenzi eyisisekelo enezikhombi zokusebenza ivunyelwe ngaphakathi kwemisebenzi ye-cons (ukudala, ukudlula nokusakaza izinkomba kuvunyelwe, kodwa hhayi ukubiza umsebenzi nge-pointer); imingcele yesici yamapharamitha ajwayelekile wemisebenzi ye-const efana ne-T: Kopisha; izici ezithunyelwa ngamandla (dyn Trait); Izinhlobo ze-impl ze-Trait yama-agumenti omsebenzi kanye namanani okubuyisela.
  • Ukusakaza kusingatha i-Stdin, i-Stdout ne-Stderr ku-std::io manje isinokuphila okumile ("'static") uma ikhiyiwe, okuvumela ukwakhiwa okufana nokuthi "let out = std::io::stdout().lock();" ngokuthola isibambo nokusetha ingidi ngesisho esisodwa.
  • Ingxenye entsha ye-API iyiswe esigabeni sokuzinza, okuhlanganisa izindlela nokusetshenziswa kwezimpawu kuzinzile:
    • Iphinikhodi::static_mut
    • Iphinikhodi::static_ref
    • Vec::gcina_mut
    • VecDeque::retain_mut
    • Bhala i-Cursor<[u8; N]>
    • std::os::unix::net::SocketAddr::from_pathname
    • std::process::Ikhodi yokuphuma
    • std::inqubo::Ukunqanyulwa
    • std::thread::JoinHandle::is_finished
  • Isibaluli esithi "const", esinquma ukuthi kungenzeka yini ukusisebenzisa kunoma yimuphi umongo esikhundleni sama-constants, sisetshenziswa emisebenzini:
    • <*const T>::offset kanye ne-<*mut T>::offset
    • <*const T>::wrapping_offset kanye ne-<*mut T>::wrapping_offset
    • <*const T>::add futhi <*mut T>::add
    • <*const T>::sub kanye ne-<*mut T>::sub
    • <*const T>::wrapping_add kanye <*mut T>::wrapping_add
    • <*const T>::wrapping_sub kanye ne-<*mut T>::wrapping_sub
    • <[T]>::as_mut_ptr
    • <[T]>::as_ptr_range
    • <[T]>::as_mut_ptr_range

Ukwengeza, ungaphawula isihloko esithi "Ukugqwala: I-Retrospective Ebucayi" ngesifinyezo sokuvela kolimi lwe-Rust ngemva kokubhala imigqa yekhodi eyizinkulungwane eziyi-100 kuyo ngesikhathi sokuthuthukiswa kwesistimu yokusebenza ye-Xous microkernel esetshenziswa ku-firmware. Okubi kuhlanganisa i-syntax okunzima ukuyiqonda, ukungapheleli nokuthuthuka okuqhubekayo kolimi, ukuntuleka kwezakhiwo eziphindaphindwayo, izinkinga ezivamile zokuthembela ku-Crates.io, kanye nesidingo sokugcina isiyalo esithile ukuze ubhale ikhodi evikelekile. Izici ezeqe obekulindelekile zifaka amathuluzi okwenza ikhodi kabusha kanye β€œnogebengu” lokuphinda kusetshenzwe okwengezwe ngesikhathi sokwenziwa kwe-prototyping ngokushesha.

Source: opennet.ru

Engeza amazwana