Ruggine 1.36

Il team di sviluppo è entusiasta di presentare Rust 1.36!

Cosa c'è di nuovo in Rust 1.36?
Tratto futuro stabilizzato, dal nuovo: alloc crate, MaybeUninit , NLL per Rust 2015, una nuova implementazione di HashMap e un nuovo flag offline per Cargo.


E ora più in dettaglio:

  • Finalmente in Rust 1.36 stabilizzato caratteristica Futuro.
  • Allocazione cassa
    A partire da Rust 1.36, parti dello std che dipendono dall'allocatore globale (come Vec ), sono nella cassa di assegnazione. Ora std riesporterà queste parti. Maggiori informazioni su questo.
  • ForseUnità invece di mem::uninitialized.
    Nelle versioni precedenti, mem::uninitialized consentiva di aggirare il controllo di inizializzazione, veniva utilizzato per l'allocazione pigra degli array, ma questa funzione è piuttosto pericolosa (più), quindi il tipo MaybeUninit è stato stabilizzato , che è più sicuro.
    Bene, da MaybeUninit è un'alternativa più sicura, a partire da Rust 1.38, mem::uninitialized sarà una funzionalità deprecata.
    Se vuoi saperne di più sulla memoria non inizializzata, puoi leggere questo post sul blog di Alexis Beingessner.
  • NLL per Rust 2015.
    Nell'annuncio Ruggine 1.31.0 Gli sviluppatori ci hanno parlato di NLL (Non-Lexical Lifetime), un miglioramento del linguaggio che rende il controllo dei prestiti più intelligente e più facile da usare. Esempio:
    fn principale() {
    sia mut x = 5;
    sia y = &x;
    sia z = &mut x; // Ciò non era consentito prima della 1.31.0.
    }

    Nella 1.31.0, NLL funzionava solo in Rust 2018, con la promessa che gli sviluppatori aggiungeranno il supporto in Rust 2015.
    Se vuoi saperne di più su NLL, puoi leggere di più qui voci di blog (Felix Klocks).

  • Il nuovo flag per Cargo è —offline.
    Rust 1.36 ha stabilizzato una nuova bandiera per Cargo. Il flag --offline indica a Cargo di utilizzare le dipendenze memorizzate nella cache locale in modo che possano essere utilizzate offline in seguito. Quando le dipendenze necessarie non sono disponibili offline e se Internet è ancora necessaria, Cargo restituirà un errore. Per pre-scaricare le dipendenze, puoi utilizzare il comando cargo fetch, che scaricherà tutte le dipendenze.
  • Qui è possibile leggere una panoramica più dettagliata delle modifiche.

Ci sono anche modifiche nella libreria standard:

Altre modifiche Ruggine, ufficio и Clippy.

Fonte: linux.org.ru

Aggiungi un commento