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
