Kua tukuna te waikura 1.53. Ka putea e Google te taapiri i te tautoko Rust ki te pata Linux

Ko te tukunga o te reo hootaka punaha Rust 1.53, i hangaia e te kaupapa Mozilla, engari kua whakawhanakehia inaianei i raro i te maru o te whakahaere kore-painga motuhake Rust Foundation, kua whakaputaina. Ka aro te reo ki te haumaru mahara, ka whakarato i te whakahaere mahara aunoa, me te whakarato i nga huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei (ka whakaitihia te wa whakahaere ki te arataki me te tiaki i te whare pukapuka paerewa).

Ko te whakahaere mahara aunoa a Rust ka whakaora i te kaiwhakawhanake mai i nga hapa i te wa e raweke ana i nga tohu tohu me te whakamarumaru mai i nga raru ka puta mai na te raweke mahara taumata-iti, penei i te urunga ki tetahi waahi mahara i muri i te wetewetetanga, te whakakore i nga tohu tohu kore, te paopao, me era atu. Hei tohatoha whare pukapuka, whakarato hanga me te whakahaere i nga whakawhirinakitanga, ka whakawhanakehia e te kaupapa te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Nga mahi hou:

  • Mo nga raupapa, kua whakatinanahia te ahua IntoIterator, e taea ai e koe te whakarite i te whitiwhitinga o nga huānga huānga ma nga uara: mo i roto i te [1, 2, 3] { .. }

    Ka taea hoki te tuku hurangi ki nga tikanga e whakaae ana ki nga kaitoro, hei tauira: let set = BTreeSet::from_iter([1, 2, 3]); mo (a, b) i roto i etahi_iterator.chain([1]).zip([1, 2, 3]) { .. }

    I mua, i whakatinanahia a IntoIterator mo nga tohutoro hurangi, i.e. ki te huri i nga uara me whakamahi tohutoro (“&[1, 2, 3]”) ranei “[1, 2, 3].iter()”. Ko te whakatinanatanga o IntoIterator mo nga huānga i whakararuraruhia e nga take hototahi i puta mai i te huringa whakahiato o mua mai i array.into_iter() ki (&array).into_iter(). I whakatauhia enei raruraru me te mahi - ka huri tonu te kaitoi i te array.into_iter() ki te (&array).into_iter() me te mea karekau he whakatinanatanga o te ahua IntoIterator, engari ka karanga ana i te tikanga ma te whakamahi i te ".into_iter() )" wetereo me te kore e pa ki nga waea i roto i te ahua "i [1, 2, 3]", "iter.zip([1, 2, 3])", "IntoIterator::into_iter([1, 2, 3] )".

  • Ka taea te whakapūtā kīanga “|” (mahi arorau RĀNEI) i roto i tetahi waahanga o te tauira, hei tauira, kaua ki “Etahi(1) | Ko etahi(2)" ka taea e koe te tuhi "Etahi(1 | 2)": hua taurite { Ok(Etahi(1 | 2)) => { .. } Hapa(Taku Hapa {ahua: FileNotFound | Whakaaetanga, .. }) => { .. } _ => { .. } }
  • Ka whakaaetia te whakamahi i nga tohu ASCII-kore i roto i nga kaitautuhi, tae atu ki nga tohu a-motu kua tautuhia i roto i te Unicode UAX 31, engari haunga nga tohu emoji. Mena ka whakamahi koe i nga momo ahua rereke engari he rite tonu, ka tukuna e te kaitoi he whakatupato. const BLÅHAJ: &str = "🦈"; struct 人 { 名字: Aho, } kia α = 1; tukusos = 2; whakatūpato: ko te takirua kaitāutu i whakaarohia he rangirua i waenganui i 's' me 's'
  • He waahanga hou o nga API kua whakawhitia ki te waahanga pumau, tae atu ki nga mea e whai ake nei:
    • huānga::from_ref
    • huānga::from_mut
    • AtomicBool::fetch_update
    • AtomicPtr::fetch_update
    • BTreeSet:: pupuri
    • BTreeMap:: pupuri
    • BufReader::seek_relative
    • cmp::min_by
    • cmp::min_by_key
    • cmp::max_by
    • cmp::max_by_key
    • DebugStruct::finish_non_exhaustive
    • Roa::ZERO
    • Roa::MAX
    • Roa::ko_kore
    • Roa::makuku_taapiri
    • Te Roa::Makuku_sub
    • Roa::saturating_mul
    • f32::he_raunga
    • f64::he_raunga
    • IntoIterator mo nga raupapa
    • {tauoti}::BITS
    • io::Hapa::Kare i tautokona
    • NonZero*::leading_zeros
    • NonZero*::trailing_zeros
    • Kōwhiringa::whakauru
    • Whakaraupapa::is_eq
    • Whakaraupapa::is_ne
    • Whakaraupapa::is_lt
    • Whakaraupapa::is_gt
    • Whakaraupapa::is_le
    • Whakaraupapa::is_ge
    • OsStr::make_ascii_purikiriki
    • OsStr::make_ascii_matua
    • OsStr::to_ascii_purikiriki
    • OsStr::ki_ascii_matua
    • OsStr:: is_ascii
    • OsStr::eq_ignore_ascii_case
    • Tirohanga::peek_mut
    • Rc::whakapiki_kaha_ tatau
    • Rc::te whakaheke_kaha_ tatau
    • poro::IterMut::as_slice
    • AsRef<[T]> mo te poro::IterMut
    • impl SliceIndex mo (Ka herea , Herea )
    • Vec::whakaroa_mai_roto
  • Ko te taumata tuatoru o te tautoko mo te wasm64-unknown-unknown platform kua whakatinanahia. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa, te whakaputa i nga hanganga mana, me te tirotiro mena ka taea te hanga te waehere.
  • Kua nukuhia te kaiwhakahaere kete Uta ki te whakamahi i te ingoa "matua" mo te peka matua o te putunga Git (HEAD) ma te taunoa. Ko nga whakawhirinakitanga e whakahaerehia ana i roto i nga putunga e whakamahi ana i te ingoa matua hei utu mo te rangatira, kaore e hiahiatia te peka = "matua" kia whirihorahia.
  • I roto i te whakahiato, ko nga whakaritenga mo te putanga iti o te LLVM ka whakaarahia ki te LLVM 10.

I tua atu, ka taea e tatou te kite i te whakarato putea mo te whakawhanaketanga o te whakauru ki roto i te Linux kernel o nga taputapu mo te whakawhanake i nga waahanga i roto i te reo Rust. Ka mahia nga mahi i roto i te anga o te kaupapa Prossimo i raro i te maru o te whakahaere ISRG (Internet Security Research Group), ko ia te kaiwhakaara o te kaupapa Let's Encrypt me te whakatairanga i te HTTPS me te whanaketanga o nga hangarau hei whakanui ake i te haumarutanga o te Ipurangi. Ko nga moni ka tukuna e Google, ka utua nga mahi a Miguel Ojeda, te kaituhi o te kaupapa Rust-for-Linux. I mua, kua utua e te ISRG me Google te hanga i tetahi tuara HTTP rereke mo te whaipainga curl me te whanaketanga o tetahi waahanga TLS hou mo te tūmau Apache http.

E ai ki a Microsoft me Google, tata ki te 70% o nga whakaraeraetanga ka puta mai i te kore haumaru o te whakahaere mahara. Ko te whakaaro ko te whakamahi i te reo Rust ki te whakawhanake i nga waahanga kakano penei i nga kaitaraiwa taputapu ka whakaiti i te tupono o nga whakaraeraetanga i puta mai i te whakahaerenga mahara kore haumaru me te whakakore i nga hapa penei i te uru ki tetahi rohe mahara i muri i te wetewete me te neke atu i nga rohe aukati.

Ka whakaratohia te haumaru mahara i roto i te Rust i te wa whakahiato ma te tirotiro tohutoro, te pupuri i te mana o te ahanoa me te oranga o te ahanoa (whanui), tae atu ki te arotake i te tika o te uru mahara i te wa e mahia ana te waehere. Ko te waikura hoki he whakamarumaru mai i nga puhaketanga integer, me whakahau kia tiimata nga uara taurangi i mua i te whakamahi, ka pai ake te hapai i nga hapa i roto i te whare pukapuka paerewa, te whakamahi i te kaupapa o nga tohutoro koretake me nga taurangi ma te taunoa, e tuku ana i te patopato pateko kaha hei whakaiti i nga hapa arorau.

Source: opennet.ru

Tāpiri i te kōrero