Zespół programistów jest podekscytowany możliwością wprowadzenia Rusta 1.36!
Co nowego w Rust 1.36?
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:
- Makro dbg!() może teraz przyjmować wiele argumentów.
- Kilka interfejsów API jest teraz oznaczonych jako const:
- Nowe API, które zostały ustabilizowane:
- Inne zmiany w bibliotece standardowej można znaleźć tutaj tutaj.
Inne zmiany Rdza, Ładunek и Clippy.
Źródło: linux.org.ru