Mwepụta asụsụ mmemme nchara 1.61

Mwepụta nke asụsụ mmemme izugbe nke Rust 1.61, nke ọrụ Mozilla hiwere, mana nke emepụtara ugbu a n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtala. Asụsụ ahụ na-elekwasị anya na nchekwa nchekwa ma na-enye ụzọ iji nweta ọrụ dị elu na parallelism ma na-ezere iji onye na-ekpofu ihe mkpofu na oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọbá akwụkwọ ọkọlọtọ).

Ụzọ ijikwa ebe nchekwa rust na-azọpụta onye nrụpụta site na njehie mgbe ị na-emegharị ihe nrịbama ma chebe onwe ya pụọ ​​​​na nsogbu ndị na-ebilite n'ihi njikwa ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa mgbe a tọhapụrụ ya, iwepụ pointers null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, nye ihe na-ewuli elu ma jikwaa ịdabere, ọrụ ahụ na-emepụta onye njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụnye aka, idobe usoro nwe ihe, idobe oge ndụ ihe (scopes), na ịlele 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 ihe ọhụrụ:

  • Ọ ga-ekwe omume ịkọwa koodu nloghachi nke gị site na isi ọrụ. Na mbụ, isi ọrụ Rust nwere ike ịlọghachi naanị ụdị "()" (unit), nke na-egosi mgbe niile ọkwa ọpụpụ na-aga nke ọma ma ọ bụrụ na onye nrụpụta kpọrọ ya hoo haa ọrụ "process:: exit(code)". Na Rust 1.26, na-eji njirimara nkwụsị na-akwụghị ụgwọ na isi ọrụ, ọ ga-ekwe omume iweghachite ụkpụrụ "Ok" na "Err", kwekọrọ na EXIT_SUCCESS na EXIT_FAILURE codes na mmemme C. Na Rust 1.61, e mewo ka njirimara nkwụsị ahụ kwụsie ike, ma atụpụtawo ụdị ExitCode dị iche ka ọ na-anọchi anya koodu nkwụghachi ụgwọ, nke na-ewepụta ụdị nlọghachi nke ikpo okwu kpọmkwem site n'inye ma ndị a kọwapụtara n'ihu n'ihu na ọdịda, na usoro sitere na usoro. iji weghachi koodu nghachị omenala. jiri std :: usoro :: ExitCode; fn main () -> ExitCode {ma ọ bụrụ !check_foo () {laghachi ExitCode :: site na (8); } ExitCode:: Ịga nke Ọma }
  • Akwụsịla ike ọrụ ndị ọzọ akọwapụtara site na iji okwu "const fn", nke enwere ike ịkpọ ọ bụghị naanị dị ka ọrụ oge niile, mana ejiri ya mee ihe n'ọnọdụ ọ bụla kama ịdịgide. A na-agbakọ ọrụ ndị a n'oge a na-achịkọta, ọ bụghị n'oge oge, ya mere, ha na-adabere na ụfọdụ mgbochi, dị ka ike ịgụ naanị site na nkwụsị. Na ụdị ọhụrụ a, a na-ahapụ ọrụ ndị nwere isi ọrụ na-arụ ọrụ n'ime ọrụ const (a na-ahapụ ịmepụta, ịgafe na nkedo, ma ọ bụghị ịkpọ ọrụ site na pointer); njiri mara maka ọnụọgụ ọnụọgụ nke ọrụ const dị ka T: Detuo; Àgwà ndị na-agbanwe agbanwe (dyn Trait); impl Ụdị àgwà maka arụmụka ọrụ yana ụkpụrụ nloghachi.
  • The iyi ahụ na-ejikwa Stdin, Stdout na Stderr na std :: io ugbu a nwere ndụ ndụ static ("'static") mgbe akpọchiri ya, na-enye ohere maka ịrụ ọrụ dịka "ahapụ = std :: io :: stdout () . mkpọchi ();" site n'inweta aka na ịtọ mkpọchi n'otu okwu.
  • Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
    • Pin :: static_mut
    • Pin :: static_ref
    • Vec :: retain_mut
    • VecDeque :: retain_mut
    • Dee maka Cursor<[u8; N]>
    • std :: os :: unix :: net :: SocketAddr :: site na aha_pathname
    • std :: usoro :: ExitCode
    • std :: usoro :: Nkwụsị
    • std :: eriri :: Jikọọ aka :: agwụla
  • A na-eji àgwà "const", nke na-ekpebi ohere iji ya mee ihe n'ọnọdụ ọ bụla kama ịdịgidesi ike, na ọrụ:
    • <* const T> :: offset na <* mut T> :: offset
    • <* const T> :: wrapping_offset na <* mut T> :: wrapping_offset
    • <* const T>:: tinye na <*mut T>:: tinye
    • <* const T>:: sub na <*mut T>:: sub
    • <* const T> :: wrapping_add na <* mut T> :: wrapping_add
    • <* const T> :: wrapping_sub na <* mut T> :: wrapping_sub
    • <[T]>:: as_mut_ptr
    • <[T]>:: dị ka_ptr_oke
    • <[T]>:: as_mut_ptr_oke

Tụkwasị na nke a, ị nwere ike ịhụ isiokwu a "Nchara: A Critical Retrospective" na nchịkọta nke echiche nke asụsụ nchara mgbe ịdechara koodu 100 puku ahịrị n'ime ya n'oge mmepe nke Xous microkernel sistemụ arụmọrụ eji na firmware. Ọdịmma na-agụnye syntax siri ike nghọta, ezughị ezu na ịga n'ihu na mmepe nke asụsụ, enweghị ihe na-ewuli elu, nsogbu ndị a na-ahụkarị na ntụkwasị obi ịdabere na Crates.io, na mkpa ọ dị ịnọgide na-enwe ụfọdụ ịdọ aka ná ntị iji dee koodu echedoro. Akụkụ ndị karịrị ihe a tụrụ anya na-agụnye ngwaọrụ maka ịmegharị koodu yana ịrụgharị "hacks" agbakwunyere n'oge prototyping ngwa ngwa.

isi: opennet.ru

Tinye a comment