Rust 1.55 Programming Language Release

Ang pagpagawas sa sistema sa programming language nga Rust 1.55, nga gitukod sa proyekto sa Mozilla, apan karon naugmad ubos sa pagdumala sa independenteng non-profit nga organisasyon nga Rust Foundation, gimantala. Ang lengguwahe nagtutok sa kaluwasan sa panumduman, naghatag ug awtomatik nga pagdumala sa panumduman, ug naghatag ug mga paagi aron makab-ot ang taas nga paralelismo sa buluhaton nga walay paggamit ug tigkolekta sa basura o runtime (ang runtime gikunhoran ngadto sa batakang pagsugod ug pagmentinar sa standard library).

Ang awtomatik nga pagdumala sa panumduman sa Rust nagluwas sa developer gikan sa mga sayup kung nagmaniobra sa mga pointer ug nanalipod batok sa mga problema nga motumaw tungod sa ubos nga lebel sa pagmaniobra sa panumduman, sama sa pag-access sa usa ka lugar sa panumduman pagkahuman na-freeze, pagtangtang sa mga null pointer, pag-overrun sa buffer, ug uban pa. Sa pag-apod-apod sa mga librarya, paghatag og mga pagtukod ug pagdumala sa mga dependency, ang proyekto nagpalambo sa Cargo package manager. Gisuportahan ang crates.io repository alang sa pag-host sa mga librarya.

Panguna nga mga inobasyon:

  • Ang tagdumala sa pakete sa Cargo adunay katakus sa paghiusa sa mga doble nga sayup ug mga pasidaan nga mahitabo sa panahon sa pagtukod. Kung nagpatuman sa mga mando sama sa "pagsulay sa kargamento" ug "pagsusi sa kargamento --all-target" nga nagresulta sa daghang mga pagtukod sa usa ka pakete nga adunay lainlaing mga parameter, ang tiggamit karon gipakita usa ka katingbanan sa panghitabo sa usa ka nagbalikbalik nga problema, imbes nga ipakita. daghang managsama nga mga pasidaan kung nagbalikbalik nga pagtukod sa parehas nga butang. file. $ kargamento +1.55.0 check β€”all-target Pagsusi sa foo v0.1.0 nga pasidaan: wala magamit ang function: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = note: '#[warn(dead_code)]' on by default warning: 'foo' (lib) generated 1 warning warning: 'foo' (lib test) nakamugna ug 1 warning (1 duplicate) Nahuman dev [unoptimized + debuginfo] target (s) sa 0.84s
  • Ang floating point parsing code sa standard library gibalhin sa paggamit sa mas paspas ug mas tukma nga Eisel-Lemire algorithm, nga nakasulbad sa pipila ka naobserbahan kaniadto nga mga problema sa rounding ug parsing nga mga numero nga adunay daghan kaayong numero.
  • Ang katakus sa pagtino sa wala masira nga mga han-ay sa mga templates na-stabilize ("X.." gihubad nga usa ka range nga nagsugod sa kantidad nga X ug natapos sa labing taas nga kantidad sa integer type): match x as u32 { 0 => println! (β€œzero!”), 1.. => println!("positibo nga numero!"), }
  • Gipalapdan nga mga variant sa error nga nasakup sa std::io::ErrorKind (giklasipikar ang mga sayup sa mga kategorya sama sa NotFound ug WouldBlock). Kaniadto, ang mga kasaypanan nga wala mohaum sa kasamtangan nga mga kategorya nahulog sa ErrorKind::Uban nga kategorya, nga gigamit usab alang sa mga sayup sa third-party nga code. Adunay karon usa ka bulag nga internal nga kategorya nga ErrorKind:: Uncategorized alang sa mga sayup nga dili mohaum sa mga kasamtangan nga mga kategorya, ug ang ErrorKind:: Ang ubang mga kategorya limitado sa mga sayup nga dili mahitabo sa standard library (standard library functions nga mobalik io:: Error dili na mogamit sa ErrorKind:: category Other).
  • Usa ka bag-ong bahin sa API ang gibalhin sa kategorya nga stable, lakip ang mga pamaagi ug pagpatuman sa mga kinaiya nga na-stabilize:
    • Bound:: cloned
    • Hugaw::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • TingaliUninit:: pagsulat
    • laray:: mapa
    • ops::ControlFlow
    • x86::_pinakagamay
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_pinakagamay64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Ang "const" nga hiyas, nga nagtino sa posibilidad sa paggamit niini sa bisan unsang konteksto imbes nga mga constant, gigamit sa str::from_utf8_unchecked nga pamaagi.
  • Ang ikatulo nga lebel sa suporta gipatuman alang sa powerpc64le-unknown-freebsd nga plataporma. Ang ikatulo nga lebel naglakip sa batakang suporta, apan walay automated nga pagsulay, pagmantala sa opisyal nga pagtukod, o pagsusi kon ang code mahimo bang matukod.

Source: opennet.ru

Idugang sa usa ka comment