Avaldatud programmeerimiskeel Rust 1.55

Välja on antud süsteemiprogrammeerimise keele Rust 1.55 versioon, mille on arendanud Mozilla, kuid praegu on selle arendamine usaldatud sõltumatule mittetulundusühingule Rust Foundation. Keel on keskendunud mäluga turvalisele töötlemisele, pakub automaatset mäluhaldust ning võimaldab saavutada kõrget tööde parallelismi, olles samas ilma prügikoristaja ja runtime'ita (runtime piirdub põhi-initialiseerimise ja standardraamatukogu toetamisega).

Rustis tagab automaatne mälu haldus arendajale kaitse, vabastades ta erinevate näidikute käsitlemise vigadest ja kaitstes mäluga madalat tööd tehes tekkivate probleemide eest, nagu juurdepääs vabastatud mälu alale, nullviidete lahtimuukimine, puutumatuse ületamine jne. Raamatukogude jagamiseks, ehitamise tagamiseks ja sõltuvuste haldamiseks arendatakse pakihaldur Cargo. Raamatukogude majutamiseks toetatakse reposiiti crates.io.

Põhilised uuendused:

  • Cargo paketihalduris on võimalik ühendada tõrgete ja hoiatuste dublette, mis tekivad ehitamise käigus. Käivitatavate käskude, nagu 'cargo test' ja 'cargo check --all-targets', puhul, mis toovad kaasa paketi korduva ehitamise erinevate parameetritega, kuvatakse kasutajale nüüd kokkuvõtlik teave korduva probleemi ilmnemise kohta, selle asemel et kuvada mitu sama hoiatust ühe ja sama faili uuesti ehitamisel. $ cargo +1.55.0 check --all-targets Kontrollimine foo v0.1.0 hoiatus: funktsioon ei ole kunagi kasutusel: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = märkus: '#[warn(dead_code)]' on vaikimisi hoiatus: 'foo' (raamatukogu) genereeris 1 hoiatuse hoiatus: 'foo' (raamatukogu test) genereeris 1 hoiatuse (1 dubleeritud) Lõpetatud dev [optimeerimata + debuginfo] siht(v) 0.84s
  • Ujuva koma numbrite analüüsi kood standardraamatukogus on ümber kirjutatud, et kasutada kiiruselt ja täpsuselt paremat Eisele-Lemire'i algoritmi, mille rakendamine lahendas mõned varem täheldatud ümardamis- ja väga suurt numbrit sisaldavate numbrite analüüsi probleemid.
  • Parandatud on võimalus määrata sulgemata vahemikke malli sisestamise ajal ("X.." tõlgendatakse vahemikuna, mis algab väärtusest X ja lõpeb täisarvu maksimaalse väärtusega): match x as u32 { 0 => println!("null!"), 1.. => println!("positiivne number!"), }
  • On laiendatud viga variantide nimekirja, mida katab std::io::ErrorKind (klassifitseerib vead kategooriate järgi, nagu NotFound ja WouldBlock). Varem kuulusid vead, mis ei mahtunud olemasolevate kategooriate alla, ErrorKind::Other kategooriasse, mida rakendati ka kolmandate osapoolte koodiveade jaoks. Nüüd on mitte olemasolevatesse kategooriatesse kuuluvate veade jaoks loodud eraldi sise kategooria ErrorKind::Uncategorized, samas kui ErrorKind::Other kategooria on piiratud ainult standardteegis tekkivate vigadega (standardteegi funktsioonid, mis tagastavad io::Error, ei kasuta enam ErrorKind::Other kategooriat).
  • Stabiilsete versioonide hulka on lisatud uus komplekt API-sid, sealhulgas on stabiliseeritud meetodid ja tüüpide rakendused:
    • Bound::cloned
    • Drain::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::write
    • array::map
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Märkus «const», mis määrab võimaluse kasutada igas kontekstis konstandina, on rakendatud meetodis str::from_utf8_unchecked.
  • Kolmandat taset toetust on rakendatud platvormile powerpc64le-unknown-freebsd. Kolmas tase tähendab põhitoetust, kuid ilma automatiseeritud testimise, ametlike kogumite väljaandmise ja koodi koostamise võimaluse kontrollimiseta.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster