Rusto 1.36

La evoluiga teamo estas ĝoja enkonduki Rust 1.36!

Kio estas nova en Rust 1.36?
Estonta trajto stabiligita, de nova: alloc crate, MaybeUninit , NLL por Rust 2015, nova efektivigo de HashMap kaj nova flago -senrete por Kargo.


Kaj nun pli detale:

  • Fine en Rust 1.36 stabiligita trajto Estonteco.
  • Krate alloc.
    Ekde Rust 1.36, partoj de la std kiuj dependas de la tutmonda alsignilo (kiel ekzemple Vec ), estas en la alokkesto. Nun std reeksportos ĉi tiujn partojn. Pli pri ĉi tio.
  • Eble Unuo anstataŭ mem::neinicialigita.
    En antaŭaj eldonoj, mem::uninitialized permesis al vi preterpasi la komencan kontrolon, ĝi estis uzata por maldiligenta tabela asigno, sed ĉi tiu funkcio estas sufiĉe danĝera (pli da informoj), do la tipo MaybeUninit estis stabiligita , kiu estas pli sekura.
    Nu, ekde MaybeUninit estas pli sekura alternativo, tiam ekde Rust 1.38, mem::neinicialigita estos malrekomendita trajto.
    Se vi volas lerni pli pri nekomencigita memoro, vi povas legi ĉi tiun blogaĵon de Alexis Beingessner.
  • NLL por Rust 2015.
    En la anonco Rusto 1.31.0 La programistoj rakontis al ni pri NLL (Non-Lexical Lifetime), plibonigo por la lingvo, kiu igas la pruntkontrolilon pli inteligenta kaj pli uzebla. Ekzemplo:
    fn ĉefa () {
    lasu mut x = 5;
    estu y = &x;
    estu z = &mut x; // Ĉi tio ne estis permesita antaŭ 1.31.0.
    }

    En 1.31.0, NLL nur funkciis en Rust 2018, kun la promeso, ke la programistoj aldonos subtenon en Rust 2015.
    Se vi volas scii pli pri NLL, vi povas legi pli en ĉi tio blogaj enskriboj (Félix Klocks).

  • La nova flago por Kargo estas —senrete.
    Rusto 1.36 stabiligis novan flagon por Kargo. La --offline-flago diras al Cargo uzi loke kaŝmemorigitajn dependecojn por ke ili povu esti uzataj eksterrete poste. Kiam la necesaj dependecoj ne disponeblas eksterrete, kaj se la Interreto ankoraŭ bezonas, tiam Kargo resendos eraron. Por antaŭ-elŝuti dependecojn, vi povas uzi la komandon cargo fetch, kiu elŝutos ĉiujn dependecojn.
  • estas vi povas legi pli detalan superrigardon de la ŝanĝoj.

Ekzistas ankaŭ ŝanĝoj en la norma biblioteko:

Aliaj ŝanĝoj rustiĝi, kargo и Clippy.

fonto: linux.org.ru

Aldoni komenton