Rust 1.36

Echipa de dezvoltatori este încântată să vă prezinte Rust 1.36!

Ce este nou în Rust 1.36?
Trait-ul Future a fost stabilizat, printre noutăți: crate alloc, MaybeUninit, NLL pentru Rust 2015, o nouă implementare a HashMap și o nouă opțiune —offline pentru Cargo.


Și acum, mai multe detalii:

  • În Rust 1.36 finalmente a fost stabilizat trait-ul Future.
  • Crate alloc.
    Începând cu Rust 1.36, părțile std care depind de alocatoarele globale (de exemplu, Vec) sunt incluse în crate-ul alloc. Acum std reexportează aceste părți. Mai multe despre aceasta.
  • MaybeUninit în loc de mem::uninitialized.
    În versiunile anterioare, mem::uninitialized vă permitea să ocoliți verificarea inițializării, și era utilizat pentru alocarea lenientă a array-urilor, dar această funcție este destul de periculoasă (mai multe), de aceea tipul MaybeUninit a fost stabilizat, care este mai sigur.
    Și pentru că MaybeUninit este o alternativă mai sigură, începând cu Rust 1.38, mem::uninitialized va fi marcată ca funcție învechită.
    Dacă doriți să aflați mai multe despre memoriile neinițializate, puteți citi articolul de pe blog (Alexis Beingessner).
  • NLL pentru Rust 2015.
    În anunțul Rust 1.31.0 dezvoltatorii ne-au vorbit despre NLL (Non-Lexical Lifetime), o îmbunătățire a limbajului care face ca borrow checker să fie mai inteligent și mai prietenos cu utilizatorul. Exemplu:
    fn main() {
    let mut x = 5;
    let y = &x;
    let z = &mut x; // Acest lucru nu era permis înainte de 1.31.0.
    }

    În 1.31.0, NLL a funcționat doar în Rust 2018, cu promisiunea că dezvoltatorii vor adăuga suport și pentru Rust 2015.
    Dacă doriți să aflați mai multe despre NLL, puteți citi mai multe în această postare de pe blog (Felix Klocks).

  • Noua opțiune pentru Cargo — —ofline.
    În Rust 1.36 a fost stabilizată o nouă opțiune pentru Cargo. Opțiunea —offline îi spune lui Cargo să folosească dependențele cache locale, pentru a putea fi utilizate ulterior fără internet. Când dependențele necesare nu sunt disponibile offline, iar internetul este totuși necesar, Cargo va returna o eroare. Pentru a descărca anticipat dependențele, se poate utiliza comanda cargo fetch, care va descărca toate dependențele.
  • Aici puteți citi un rezumat mai detaliat al modificărilor.

De asemenea, există și modificări în biblioteca standard:

Alte modificări Rust, Cargo și Clippy.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster