Rust 1.36

Il team di sviluppatori è lieto di presentarvi Rust 1.36!

Cosa c'è di nuovo in Rust 1.36?
Stabilizzato il trait Future, tra le novità: crate alloc, MaybeUninit, NLL per Rust 2015, nuova implementazione HashMap e nuovo flag —offline per Cargo.


Ma ora entriamo nei dettagli:

  • In Rust 1.36 finalmente è stato stabilizzato il trait Future.
  • Crate alloc.
    A partire da Rust 1.36, le parti di std che dipendono dal global allocator (ad esempio, Vec), si trovano nel crate alloc. Ora std riesporta queste parti. Maggiori dettagli su questo.
  • MaybeUninit invece di mem::uninitialized.
    Nelle versioni precedenti mem::uninitialized ti permetteva di bypassare il controllo di inizializzazione, utilizzato per l'allocazione pigra di array, ma questa funzione è piuttosto pericolosa (maggiori dettagli), quindi è stato stabilizzato il tipo MaybeUninit, che è più sicuro.
    E poiché MaybeUninit è un'alternativa più sicura, a partire da Rust 1.38, mem::uninitialized verrà deprecato.
    Se vuoi saperne di più sulla memoria non inizializzata, puoi leggere il post del blog (Alexis Beingessner).
  • NLL per Rust 2015.
    Nell'annuncio Rust 1.31.0 gli sviluppatori ci hanno parlato di NLL (Non-Lexical Lifetime), un miglioramento del linguaggio che rende il borrow checker più intelligente e amichevole. Esempio:
    fn main() {
    let mut x = 5;
    let y = &x;
    let z = &mut x; // Questo non era permesso prima di 1.31.0.
    }

    In 1.31.0 NLL funzionava solo in Rust 2018, promettendo che gli sviluppatori avrebbero aggiunto supporto anche per Rust 2015.
    Se vuoi saperne di più su NLL, puoi leggere di più in questo post del blog (Felix Klocks).

  • Nuovo flag per Cargo — —offline.
    In Rust 1.36 è stato stabilizzato un nuovo flag per Cargo. Il flag —offline dice a Cargo di utilizzare le dipendenze memorizzate in cache localmente, per poterle utilizzare successivamente senza internet. Quando le dipendenze necessarie non sono disponibili offline, e se è comunque necessaria la connessione internet, Cargo restituirà un errore. Per scaricare preventivamente le dipendenze, puoi utilizzare il comando cargo fetch, che scaricherà tutte le dipendenze.
  • Qui puoi leggere una panoramica più dettagliata delle modifiche.

Ci sono anche modifiche nella libreria standard:

Altre modifiche Rust, Cargo e Clippy.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster