A tọhapụrụ Rust 1.53. Google ga-akwado nkwado Rust Core Linux

Ntọhapụ nke asụsụ mmemme usoro Rust 1.53, nke Mozilla ngo tọrọ ntọala, ma ugbu a, nke e mepụtara n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtara. Asụsụ a na-elekwasị anya na nchekwa ebe nchekwa, na-enye njikwa ebe nchekwa akpaka, ma na-enye ụzọ iji nweta nnukwu ọrụ myirịta na-ejighi ihe mkpofu ahịhịa ma ọ bụ oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọba akwụkwọ ọkọlọtọ).

Njikwa ebe nchekwa akpaka nke Rust na-ewepụ njehie mgbe ị na-emegharị ihe nrịbama ma na-echebe megide nsogbu na-esite na ngbanwe ebe nchekwa dị ala, dị ka ịnweta mpaghara ebe nchekwa mgbe a tọhapụrụ ya, nkwụsị pointer null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, hụ na mgbakọ na jikwaa dabere, ọrụ a na-emepe emepe njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

Isi ihe ọhụrụ:

  • Maka nhazi, emejuputala àgwà IntoIterator, nke na-enye gị ohere ịhazi nhazi nke ihe nhazi site na ụkpụrụ: n'ihi na i na [1, 2, 3] { .. }

    Ọ dịkwa ike ịnyefe usoro na usoro ndị na-anabata ndị na-emegharị ihe, dịka ọmụmaatụ: ka set = BTreeSet :: from_iter ([1, 2, 3]); maka (a, b) na some_iterator.chain ([1]) .zip ([1, 2, 3]) { .. }

    Na mbụ, etinyere IntoIterator naanị maka nrụtụ aka n'usoro, ya bụ. iji kwughachi ụkpụrụ a chọrọ iji nrụtụ aka ("&[1, 2, 3]") ma ọ bụ "[1, 2, 3].iter ()". Mmebi nke IntoIterator maka arrays amachibidoro ya site n'okwu ndakọrịta nke ihe ntọghata ndị nchịkọta mbụ sitere na array.into_iter() gaa (&array) .into_iter(). A na-edozi nsogbu ndị a na-arụ ọrụ - onye nchịkọta ga-anọgide na-agbanwe array.into_iter () na (&array) .into_iter () dị ka a ga - asị na ọ dịghị mmejuputa nke àgwà IntoIterator, ma ọ bụ naanị mgbe ị na-akpọ usoro ahụ site na iji ".into_iter(). )" syntax na na-emetụghị oku n'ụdị "na [1, 2, 3]", "iter.zip ([1, 2, 3])", "IntoIterator :: into_iter ([1, 2, 3]) )".

  • Enwere ike ịkọwa okwu "|" (ezi uche ma ọ bụ ọrụ) n'akụkụ ọ bụla nke ndebiri, dịka ọmụmaatụ, kama "Ụfọdụ (1) | Ụfọdụ(2)" ị nwere ike dee "Ụfọdụ(1 | 2)": rịzọlt egwuregwu {Ok(Ụfọdụ(1 | 2))) => { .. } Err(MyError {ụdị: FileNotFound | Akwụsịla ikike, .. }) = > { .. } _ => { .. } }
  • Enyere ikike iji mkpụrụedemede ASCII na-abụghị ASCII na njirimara, gụnyere mkpụrụedemede mba ọ bụla akọwapụtara na nkọwapụta Unicode UAX 31, mana ewezuga mkpụrụedemede emoji. Ọ bụrụ na ị na-eji mkpụrụedemede dị iche iche mana ndị yiri ya, onye nchịkọta ga-enye ịdọ aka ná ntị. const BLÅHAJ: &str = "🦈"; struct 人 {名字: Eriri, } ka α = 1; ekwe = 2; ịdọ aka ná ntị: ụzọ nchọpụta a na-ewere na ọ nwere mgbagwoju anya n'etiti 's' na 's'
  • Ebufere akụkụ API ọhụrụ gaa na ngalaba kwụsiri ike, gụnyere ndị a kwadoro:
    • array::site na_ref
    • array:: site na_mut
    • AtomicBool ::fetch_update
    • AtomicPtr ::fetch_update
    • BTreeSet :: jide
    • BTreeMap:: jigide
    • BufReader:: chọọ_nne
    • cmp::min_by
    • cmp::min_by_key
    • cmp:: max_by
    • cmp:: max_by_key
    • DebugStruct :: finish_non_exhaustive
    • Ogologo oge:: ZERO
    • Ogologo oge :: Max
    • Ogologo oge :: bụ_ efu
    • Ogologo oge :: saturating_add
    • Ogologo oge :: saturating_sub
    • Ogologo oge :: saturating_mul
    • f32 ::bụ_adịghị mma
    • f64 ::bụ_adịghị mma
    • IntoIterator maka arrays
    • {integer} :: BITS
    • io::Ero::Enweghi nkwado
    • NonZero*:: efu_edu
    • NonZero* :: trailing_zeros
    • Nhọrọ::fanye
    • Ịtụ :: is_eq
    • Ịtụ :: is_ne
    • Ịtụ :: bụ_lt
    • Ịtụ :: is_gt
    • Ịtụ :: is_le
    • Ịtụ :: is_ge
    • OsStr :: mee_ascii_lowercase
    • OsStr :: mee_ascii_oke
    • OsStr :: ka_ascii_oberecase
    • OsStr ::to_ascii_oke
    • OsStr :: bụ_ascii
    • OsStr :: eq_ignore_ascii_case
    • Pụrụ iche ::peek_mut
    • Rc :: mmụba_strong_ọnụọgụ
    • Rc:: decrement_strong_count
    • iberi :: IterMut :: as_slice
    • AsRef <[T]> maka iberi :: IterMut
    • impl SliceIndex maka (Bound , Agbụ )
    • Vec :: gbatịa_site_n'ime
  • E mejuputala ọkwa nkwado nke atọ maka ikpo okwu wasm64-amaghị-amaghị ama. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, mbipụta nke ndị ọrụ na-ewuli elu, yana nkwenye nke nrụpụta koodu.
  • A kpalila onye njikwa ngwugwu ibu ka ọ jiri aha "isi" maka ngalaba isi nke ebe nchekwa Git (HEAD) na ndabara. Ndabere akwadoro na ebe nchekwa ndị na-eji isi aha kama ịbụ nna ukwu achọghịzi alaka = "isi" ka ahazi ya.
  • Na mkpokọta, a na-ebuli ihe achọrọ maka ụdị LLVM kacha nta na LLVM 10.

Дополнительно можно отметить предоставление финансирования работы по развитию интеграции в ядро Linux средств для разработки компонентов на языке Rust. Работа будет вестись в рамках проекта Prossimo под эгидой организации ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета. Средства будут предоставлены компанией Google, которая оплатит работу Мигеля Охеда (Miguel Ojeda), автора проекта Rust-for-Linux. Ранее ISRG и Google уже профинансировали создание альтернативного HTTP-бэкенда для утилиты curl и разработку нового TLS-модуля для http-сервера Apache.

Dabere na Microsoft na Google, ihe dị ka 70% nke adịghị ike na-ebute site na njikwa ebe nchekwa adịghị mma. A na-atụ anya na iji asụsụ Rust mepụta kernel components dị ka ndị ọkwọ ụgbọala ngwaọrụ ga-ebelata ihe ize ndụ nke adịghị ike na-akpata site na njikwa ebe nchekwa na-adịghị mma ma wepụ njehie dị ka ịnweta mpaghara ebe nchekwa mgbe a tọhapụrụ ya na oke oke nchekwa.

A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụaka, na-edobe ihe nwe ihe na oge ndụ ihe (oke), yana site na nyocha nke izi ezi nke ịnweta ebe nchekwa n'oge mmebe koodu. Nchara na-enyekwa nchebe pụọ na integer njupụta, na-achọ mmalite mmalite nke ụkpụrụ agbanwe agbanwe tupu eji ya, na-edozi njehie nke ọma n'ọbá akwụkwọ ọkọlọtọ, na-etinye echiche nke ntụgharị na mgbanwe na-adịghị agbanwe agbanwe na ndabara, na-enye akara static siri ike iji belata njehie ezi uche dị na ya.

isi: opennet.ru

Zụta nnabata ntụkwasị obi maka saịtị nwere nchekwa DDoS, sava VPS VDS 🔥 Zụta ebe nrụọrụ weebụ a pụrụ ịtụkwasị obi na nchekwa DDoS, sava VPS VDS | ProHoster