Tim programera rado vam predstavlja Rust 1.36!
Što je novo u Rustu 1.36?
A sada detaljnije:
- U Rustu 1.36 konačno stabiliziran trait Future.
- Crate alloc.
Počevši od Rusta 1.36, dijelovi std koji ovise o globalnom alokatoru (npr. Vec) nalaze se u crateu alloc. Sada std reekspožira te dijelove. Više o tome. - MaybeUninit umjesto mem::uninitialized.
U prethodnim izdanjima mem::uninitialized omogućavala je zaobilaženje provjere inicijalizacije, korištena je za lenju alokaciju nizova, ali je ova funkcionalnost prilično opasna (više informacija), stoga je stabiliziran tip MaybeUninit, koji je sigurniji.
I budući da je MaybeUninit sigurnija alternativa, počevši od Rusta 1.38, mem::uninitialized će postati zastarjela funkcija.
Ako želite saznati više o neinicijaliziranoj memoriji, možete pročitati zapis u blogu (Alexis Beingessner). - NLL za Rust 2015.
U najavi Rusta 1.31.0 programeri su nam govorili o NLL (Non-Lexical Lifetime), poboljšanju jezika koje čini borrow checker pametnijim i prijateljskijim prema korisniku. Primjer:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // Ovo nije bilo dozvoljeno prije 1.31.0.
}U 1.31.0 NLL je radio samo u Rustu 2018, uz obećanje da će programeri dodati podršku i u Rust 2015.
Ako želite saznati više o NLL, možete pročitati više u ovoj objavi na blogu (Felix Klocks). - Nova opcija za Cargo — —offline.
U Rustu 1.36 stabilizirana je nova opcija za Cargo. Opcija —offline govori Cargo da koristi lokalno keširane zavisnosti, kako bi ih kasnije mogli koristiti bez interneta. Kada potrebne zavisnosti nisu dostupne offline, a internet je ipak potreban, Cargo će vratiti grešku. Kako bi prethodno preuzeli zavisnosti, možete koristiti komandu cargo fetch, koja će preuzeti sve zavisnosti. - Ovdje možete pročitati detaljniji pregled promjena.
Također postoje promjene u standardnoj biblioteci:
- Sada makros dbg!() može primati više argumenata.
- Određeni broj API-ja sada je označen const:
- Novi API-ji koji su stabilizirani:
- Druge promjene u standardnoj biblioteci možete pronaći ovdje.
Ostale promjene Rust, Cargo i Clippy.
Izvor: linux.org.ru
