Izstrādātāju komanda ar prieku piedāvā jums Rust 1.36!
Kas jauns Rust 1.36?
Tagad sīkāk:
- Rust 1.36 beidzot ir stabilizējusi trait Future.
- Crate alloc.
Sākot ar Rust 1.36, std daļas, kas ir atkarīgas no globālā alokātora (piemēram, Vec), atrodas crate alloc. Tagad std atkārtoti eksports šīs daļas. Vairāk par to. - MaybeUninit vietā mem::uninitialized.
Iepriekšējās versijās mem::uninitialized ļāva jums apiet inicializācijas pārbaudi, ko izmantoja, lai slinki alocētu masīvus, bet šī funkcija ir diezgan bīstama (sīkāk), tāpēc tips MaybeUninit ir stabilizēts, kas ir drošāks.
Tā kā MaybeUninit ir drošāka alternatīva, tad, sākot ar Rust 1.38, mem::uninitialized tiks atzīta par novecojušu funkciju.
Ja vēlaties uzzināt vairāk par neinitializētu atmiņu, varat izlasīt ierakstu emuārā (Alexis Beingessner). - NLL Rust 2015.
Paziņojumā Rust 1.31.0 izstrādātāji stāstīja par NLL (Non-Lexical Lifetime), uzlabojumu valodai, kas padara aizņēmumu pārbaudītāju gudrāku un lietotājam draudzīgāku. Piemērs:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // Tas pirms 1.31.0 nebija atļauts.
}Versijā 1.31.0 NLL darbojās tikai Rust 2018, ar solījumu, ka izstrādātāji nodrošinās atbalstu arī Rust 2015.
Ja vēlaties uzzināt vairāk par NLL, varat izlasīt vairāk šajā ierakstā emuārā (Felix Klocks). - Jaunais flags Cargo — —offline.
Rust 1.36 stabilizēja jauno flagu Cargo. Flags —offline saka Cargo, lai izmantotu lokāli kešētās atkarības, lai to vēlāk varētu izmantot bez interneta. Kad nepieciešamās atkarības nav pieejamas oflinā, un ja tomēr nepieciešams internets, Cargo atgriezīs kļūdu. Lai iepriekš lejupielādētu atkarības, varat izmantot komandu cargo fetch, kas lejupielādēs visas atkarības. - Šeit jūs varat izlasīt detalizētu pārskatu par izmaiņām.
Tāpat ir arī izmaiņas standarta bibliotēkā:
- Tagad makro dbg!() var pieņemt vairākus argumentus.
- Dažas API tagad ir atzīmētas kā const:
- Jauni API, kas ir stabilizēti:
- Citas izmaiņas standarta bibliotēkā varat atrast šeit.
Citi uzlabojumi Rust, Cargo un Clippy.
Avots: linux.org.ru
