Rdza 1.36

Zespół programistów jest podekscytowany możliwością wprowadzenia Rusta 1.36!

Co nowego w Rust 1.36?
Przyszła cecha ustabilizowana, od nowości: skrzynka alokacyjna, MaybeUninit , NLL dla Rusta 2015, nowa implementacja HashMap oraz nowa flaga -offline dla Cargo.


A teraz bardziej szczegółowo:

  • Wreszcie w Rust 1.36 ustabilizowany cecha Przyszłość.
  • Przydział skrzynki
    Od wersji Rust 1.36 części std zależne od globalnego alokatora (takie jak Vec ), znajdują się w skrzynce alokacji. Teraz std ponownie wyeksportuje te części. Więcej na ten temat.
  • Może Jednostka zamiast mem::uninitialized.
    W poprzednich wersjach mem::uninitialized pozwalało ominąć kontrolę inicjalizacji, było używane do leniwej alokacji tablicy, ale ta funkcja jest dość niebezpieczna (więcej), więc typ MaybeUninit został ustabilizowany , co jest bezpieczniejsze.
    Cóż, od czasu MaybeUninit jest bezpieczniejszą alternatywą, to od wersji Rust 1.38 mem::uninitialized będzie przestarzałą funkcją.
    Jeśli chcesz dowiedzieć się więcej na temat niezainicjowanej pamięci, możesz przeczytać ten wpis na blogu Alexisa Beingessnera.
  • NLL dla Rusta 2015.
    W ogłoszeniu Rdza 1.31.0 Twórcy opowiedzieli nam o NLL (Non-Lexical Lifetime), ulepszeniu języka, dzięki któremu moduł sprawdzania pożyczek jest inteligentniejszy i bardziej przyjazny dla użytkownika. Przykład:
    fn główna() {
    niech mut x = 5;
    niech y = &x;
    niech z = &mut x; // To nie było dozwolone przed wersją 1.31.0.
    }

    W wersji 1.31.0 NLL pracowało tylko w Rust 2018, obiecując, że programiści dodadzą obsługę w Rust 2015.
    Jeśli chcesz dowiedzieć się więcej o NLL, możesz przeczytać więcej w tym Posty na blogu (Feliks Klocks).

  • Nowa flaga Cargo to —offline.
    Rust 1.36 ustabilizował nową flagę dla Cargo. Flaga --offline mówi Cargo, aby korzystał z zależności buforowanych lokalnie, aby można było ich później używać w trybie offline. Gdy niezbędne zależności nie będą dostępne w trybie offline, a Internet będzie nadal potrzebny, Cargo zwróci błąd. Aby wstępnie pobrać zależności, możesz użyć polecenia cargo fetch, które pobierze wszystkie zależności.
  • Tutaj możesz przeczytać bardziej szczegółowy przegląd zmian.

Zmiany zaszły także w bibliotece standardowej:

Inne zmiany Rdza, Ładunek и Clippy.

Źródło: linux.org.ru

Dodaj komentarz