Harshen shirye-shiryen tsatsa 1.61

An buga yaren shirye-shirye na Rust 1.61 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:

  • Yana yiwuwa a ayyana lambobin dawowar ku daga babban aikin. Asali, babban aikin Rust zai iya dawo da nau'in "()" (raka'a) kawai, wanda koyaushe yana nuna matsayin fita mai nasara sai dai idan mai haɓakawa ya kira aikin "tsari :: fita (lambar)". A cikin Rust 1.26, ta amfani da sifar Ƙarshe mara ƙarfi a cikin babban aikin, yana yiwuwa a dawo da ƙimar "Ok" da "Kuskure", daidai da lambobin EXIT_SUCCESS da EXIT_FAILURE a cikin shirye-shiryen C. A cikin Rust 1.61, yanayin Ƙarshe ya kasance mai ƙarfi, kuma an ba da shawarar wani nau'in ExitCode daban don wakiltar takamaiman lambar dawowa, wanda ke ɓoye takamaiman nau'ikan dawowar dandamali ta hanyar samar da nasarar da aka riga aka ƙayyade, da Daga hanyar. don dawo da lambar dawo da al'ada. yi amfani da std :: tsari :: ExitCode; fn main () -> ExitCode {idan !check_foo() {dawo ExitCode :: daga (8); } ExitCode:: Nasara }
  • Ƙarin damar ayyukan da aka ayyana ta amfani da kalmar "const fn" an daidaita su, wanda za'a iya kiransa ba kawai a matsayin ayyuka na yau da kullum ba, amma kuma ana amfani dashi a cikin kowane mahallin maimakon akai-akai. Ana ƙididdige waɗannan ayyuka a lokacin tattarawa, ba a lokacin aiki ba, don haka suna ƙarƙashin wasu ƙuntatawa, kamar ikon karantawa kawai daga madaidaitan. A cikin sabon sigar, ana ba da izinin aiki na asali tare da masu nunin aiki a cikin ayyukan const (ƙirƙira, wucewa da simintin simintin an yarda, amma ba kiran aiki ta mai nuni ba); iyakoki don juzu'i na juzu'i na ayyukan const kamar T: Kwafi; Halayen da za a iya aikawa da ƙarfi (dyn Trait); nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan nau'ikan impl don muhawarar aiki da ƙimar dawowa.
  • Rafi yana rike da Stdin, Stdout da Stderr a cikin std :: io yanzu suna da tsayayyen rayuwa ("'tsaye") lokacin da aka kulle, yana ba da izinin ginawa kamar "bari = std :: io :: stdout () .lock();" tare da samun hannu da saita kulle a cikin magana ɗaya.
  • An koma wani sabon yanki na API zuwa nau'in barga, gami da hanyoyin da aiwatar da halaye an daidaita su:
    • Pin :: static_mut
    • Pin :: static_ref
    • Vec :: riƙe_mut
    • VecDeque :: riƙe_mut
    • Rubuta don siginan kwamfuta<[u8; N]>
    • std :: os :: unix :: net :: SocketAddr :: daga sunan_pathname
    • std:: tsari:: ExitCode
    • std :: tsari :: Ƙarshe
    • std :: zaren :: JoinHandle :: an gama
  • Ana amfani da sifa na "const", wanda ke ƙayyade yiwuwar amfani da shi a cikin kowane mahallin maimakon akai-akai, a cikin ayyuka:
    • <*const T> :: offset da <*mut T> :: offset
    • <*const T> :: wrapping_offset da <* mut T> :: wrapping_offset
    • <*const T>:: ƙara da <*mut T>:: ƙara
    • <*const T>:: sub da <*mut T>:: sub
    • <*const T>::wrapping_add da <*mut T>::wrapping_add
    • <*const T>::wrapping_sub da <*mut T>::wrapping_sub
    • <[T]>:: as_mut_ptr
    • <[T]>:: as_ptr_range
    • <[T]>:: as_mut_ptr_range

Bugu da ƙari, zaku iya lura da labarin "Tsatsa: Mahimmanci Mai Mahimmanci" tare da taƙaitaccen ra'ayi na harshen Rust bayan rubuta layukan lambobi dubu 100 a ciki yayin haɓaka tsarin aiki na Xous microkernel da aka yi amfani da shi a cikin firmware. Lalacewar sun haɗa da ƙaƙƙarfan fahimta, rashin cikawa da ci gaba da haɓaka harshe, rashin sake ginawa, matsaloli na yau da kullun tare da dogaro ga Crates.io, da buƙatar kiyaye takamaiman horo don rubuta amintaccen lamba. Siffofin da suka wuce tsammanin sun haɗa da kayan aiki don sake fasalin lamba da sake yin “hacks” da aka ƙara yayin yin samfuri cikin sauri.

source: budenet.ru

Add a comment