Екипът на разработчиците с радост ви представя Rust 1.36!
Какво ново в Rust 1.36?
А сега по-подробно:
- В Rust 1.36 накрая стабилизирахме трейта Future.
- Крейт alloc.
Започвайки от Rust 1.36, части от std, които зависят от глобалния алокатор (например, Vec), се намират в крейта alloc. Сега std реекспортира тези части. Повече за това. - MaybeUninit вместо mem::uninitialized.
В предишни версии mem::uninitialized ви позволяваше да заобикаляте проверката за инициализация, използваше се за ленивата алокация на масиви, но тази функция е доста опасна (по-подробно), затова типът MaybeUninit беше стабилизиран, който е по-безопасен.
И така, тъй като MaybeUninit е по-безопасна алтернатива, от Rust 1.38 mem::uninitialized ще бъде остаряла функция.
Ако искате да научите повече за неинициализирана памет, можете да прочетете записа в блога (Alexis Beingessner). - NLL за Rust 2015.
В анонса Rust 1.31.0 разработчиците говориха за NLL (Non-Lexical Lifetime), подобрение за езика, което прави проверката за заемане по-умна и по-дружелюбна към потребителя. Пример:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // Това не беше позволено преди 1.31.0.
}В 1.31.0 NLL работеше само в Rust 2018, с обещание, че разработчиците ще добавят поддръжка и в Rust 2015.
Ако искате да научите повече за NLL, можете да прочетете повече в този запис в блога (Felix Klocks). - Нов флаг за Cargo — —offline.
В Rust 1.36 стабилизирахме нов флаг за Cargo. Флагът —offline казва на Cargo да използва локално кеширани зависимости, за да може по-късно да се използват без интернет. Когато нужните зависимости не са налични офлайн и ако интернет все пак е необходим, Cargo ще върне грешка. За да изтеглите предварително зависимостите, можете да използвате командата cargo fetch, която ще изтегли всички зависимости. - Тук можете да прочетете по-подробен обзор на промените.
Има и промени в стандартната библиотека:
- Сега макросът dbg!() може да приема повече от един аргумент.
- Някои API сега са обозначени с const:
- Нови API, които бяха стабилизирани:
- Други промени в стандартната библиотека можете да намерите тук..
Други промени Rust, Cargo и Clippy.
Източник: linux.org.ru
