Rust 1.53 ya fito. Google zai ba da kuɗi don ƙara tallafin Rust zuwa kernel na Linux

An buga yaren shirye-shiryen tsarin Rust 1.53, 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. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da hanyoyin samun daidaiton ɗawainiya mai girma ba tare da amfani da mai tara shara ko lokacin aiki ba (an rage lokacin aiki 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.

Manyan sabbin abubuwa:

  • Don tsararru, an aiwatar da sifar IntoIterator, wanda ke ba ku damar tsara fasalin abubuwan tsararru ta dabi'u: don i a cikin [1, 2, 3] { .. }

    Hakanan yana yiwuwa a ƙaddamar da tsararraki zuwa hanyoyin da ke karɓar masu maimaitawa, misali: bari saita = BTreeSet :: daga_iter ([1, 2, 3]); don (a, b) a cikin wasu_iterator.chain ([1]) .zip ([1, 2, 3]) { .. }

    A baya can, IntoIterator an aiwatar da shi ne kawai don nassoshi tsararru, watau. don maimaita akan ƙimar da ake buƙatar amfani da nassoshi ("&[1, 2, 3]") ko "[1, 2, 3].iter()". Aiwatar da IntoIterator don tsararru ya sami cikas ta hanyar al'amurra masu dacewa da aka haifar ta hanyar jujjuyawar mai tarawa a baya daga array.into_iter() zuwa (&array) .into_iter(). An warware waɗannan matsalolin tare da tsarin aiki - mai tarawa zai ci gaba da canza array.into_iter () zuwa (&array) .into_iter () kamar dai babu aiwatar da yanayin IntoIterator, amma kawai lokacin kiran hanyar ta amfani da ".into_iter() )" syntax kuma ba tare da taɓa kira a cikin tsari ba "a cikin [1, 2, 3]", "iter.zip ([1, 2, 3])", "IntoIterator :: into_iter ([1, 2, 3]) )".

  • Yana yiwuwa a saka kalmomi "|" (ma'ana KO aiki) a kowane bangare na samfuri, misali, maimakon “Wasu (1) | Wasu (2)" yanzu zaku iya rubuta "Wasu (1 | 2)": sakamakon wasa {Ok (Wasu (1 | 2)) => { .. } Kuskure (MyError {nau'i: FileNotFound | An hana izini, .. }) = > { .. } _ => { .. } }
  • An ba da izinin amfani da haruffan da ba ASCII ba a cikin masu ganowa, gami da kowane haruffa na ƙasa da aka ayyana a cikin ƙayyadaddun Unicode UAX 31, amma ban da haruffan emoji. Idan kuna amfani da haruffa daban-daban amma iri ɗaya, mai tarawa zai ba da gargaɗi. const BLÅHAJ: &str = "🦈"; tsarin 人 {名字: String,} bari α = 1; bari = 2; gargadi: nau'i-nau'i masu ganowa ana ganin suna da rudani tsakanin 's' da 's'
  • An canza wani sabon yanki na APIs zuwa tsayayyen nau'in, gami da daidaitawa mai zuwa:
    • tsararru ::daga_ref
    • tsararru::daga_mut
    • AtomicBool ::fetch_update
    • AtomicPtr :: kawo_update
    • BTreeSet :: riƙe
    • BTreeMap :: riƙe
    • BufReader :: neman_dangi
    • cmp::min_by
    • cmp::min_by_key
    • cmp::max_by
    • cmp :: max_by_key
    • DebugStruct :: gama_non_exhaustive
    • Duration:: ZERO
    • Duration:: MAX
    • Duration :: zero
    • Duration::saturating_add
    • Duration::saturating_sub
    • Duration::saturating_mul
    • f32::ba al'ada ba
    • f64::ba al'ada ba
    • IntoIterator don tsararru
    • {integer} :: BITS
    • io:: Kuskure:: Ba a tallafawa
    • NonZero*:: sifili
    • NonZero*:: sifili
    • Zabin :: saka
    • Yin oda::is_eq
    • Yin oda:: is_ne
    • Yin oda:: shine_lt
    • Yin oda::is_gt
    • Yin oda::is_le
    • Yin oda::is_ge
    • OsStr :: sanya_ascii_lowercase
    • OsStr :: sanya_ascii_ babba
    • OsStr :: zuwa_ascii_lowercase
    • OsStr :: zuwa_ascii_babba
    • OsStr :: is_ascii
    • OsStr :: eq_ignore_ascii_case
    • Mai iya gani ::peek_mut
    • Rc :: karuwa_karfin_count
    • Rc :: rage_ƙarfin_count
    • yanki :: IterMut :: as_slice
    • AsRef<[T]> don yanki :: IterMut
    • impl SliceIndex don (Bound , Daure )
    • Vec :: kari_daga_ciki
  • An aiwatar da matakin tallafi na uku na dandalin wasm64-wanda ba a sani ba. 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 matsar da manajan fakitin Cargo don amfani da sunan "babban" don babban reshe na ma'ajiyar Git (HEAD) ta tsohuwa. Dogaro da aka shirya a ma'ajiyar da ke amfani da babban sunan maimakon maigida ba ya buƙatar reshe = "babban" don daidaita shi.
  • A cikin mai tarawa, an ɗaga buƙatun mafi ƙarancin sigar LLVM zuwa LLVM 10.

Bugu da ƙari, za mu iya lura da samar da kuɗi don haɓaka haɗin kai a cikin Linux kernel na kayan aikin don haɓaka abubuwan da ke cikin harshen Rust. Za a gudanar da aikin a cikin tsarin aikin Prosimo a ƙarƙashin kulawar kungiyar ISRG (Rukunin Binciken Tsaro na Intanet), wanda shine wanda ya kafa aikin Let's Encrypt kuma yana haɓaka HTTPS da haɓaka fasahar fasaha don haɓaka tsaro. Intanet. Google ne zai ba da kuɗin, wanda zai biya aikin Miguel Ojeda, marubucin aikin Rust-for-Linux. A baya can, ISRG da Google sun riga sun ba da tallafi don ƙirƙirar madadin HTTP don amfanin curl da haɓaka sabon tsarin TLS don uwar garken Apache http.

A cewar Microsoft da Google, kusan kashi 70 cikin XNUMX na lahani suna faruwa ne ta hanyar sarrafa ƙwaƙwalwar ajiya mara aminci. Ana sa ran yin amfani da yaren Rust don haɓaka abubuwan kernel irin su direbobin na'urori zai rage haɗarin raunin da ke haifar da rashin lafiyar ƙwaƙwalwar ajiya da kuma kawar da kurakurai kamar shiga yankin ƙwaƙwalwar ajiya bayan an 'yantar da shi da wuce gona da iri.

Ana ba da amincin ƙwaƙwalwar ajiya a cikin Tsatsa a lokacin tattarawa ta hanyar duba tunani, kiyaye bin diddigin mallakar abu da tsawon rayuwa (ikon), haka kuma ta hanyar kimanta daidaitaccen 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.

source: budenet.ru

Add a comment