רוסט ס אָטאַמאַטיק זכּרון פאַרוואַלטונג ילימאַנייץ ערראָרס ווען מאַניפּיאַלייטינג פּוינטערז און פּראַטעקץ קעגן פּראָבלעמס ערייזינג פון נידעריק-מדרגה זכּרון מאַניפּיאַליישאַן, אַזאַ ווי אַקסעס אַ זכּרון געגנט נאָך באפרייט, נאַל טייַטל דיפעראַנסיז, באַפער אָוווערראַנז, עטק. א פּעקל פאַרוואַלטער איז דעוועלאָפּעד צו פאַרשפּרייטן לייברעריז, ענשור פֿאַרזאַמלונג און פירן דיפּענדאַנסיז דורך די פּרויעקט. לאַסט, אַלאַוינג איר צו באַקומען די לייברעריז דארף פֿאַר די פּראָגראַם אין איין גיט. א ריפּאַזאַטאָרי איז געשטיצט צו באַלעבאָס לייברעריז crates.io.
В тексте анонса нового выпуска разработчики Rust ввязались в политику и демонстративно отказались публиковать полноценный обзор изменений в Rust 1.44 в знак солидарности с протестующими против полицейского насилия, указав, что этот вопрос важнее обмена техническими знаниями. Основные ינאָווויישאַנז:
В пакетный менеджер Cargo интегрирована команда «cargo tree», выводящая древовидный граф зависимостей. Также добавлена опция «—duplicates» («cargo tree -d»), позволяющая оценить зависимости в разных версиях одного пакета.
Для приложений, не привязанных к std («#![no_std]»), реализована поддержка методов асинхронного программирования, основанных на функции «async», блоке async move { … } и операторе «.await», которые упрощают написание обработчиков, не блокирующих основной поток команд.
В парсер добавлена поддержка расширяемой схемы определения иерархии модулей. Например, следующая конструкция не приведёт к выводу ошибки, несмотря на фактическое отсутствие модуля «foo/bar/baz.rs» (семантически конструкция по-прежнему недопустима и может вызвать ошибку, но изменения можно увидеть и разобрать на уровне макросов и условной компиляции):
#[cfg(FALSE)]
mod foo {
mod bar {
mod baz;
}
}
В компиляторе rustc добавлена возможность использования флага «-C codegen-units» в инкрементальном режиме. Переработана реализация catch_unwind, которая теперь не оказывает влияния на производительность, если отключён процесс «размотки» (unwinding) и не возникает исключений.
Обеспечен третий уровень поддержи для платформ aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos и x86_64-apple-tvos. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.
א נייַע חלק פון אַפּיס איז טראַנספערד צו די סטאַביל קאַטעגאָריע, אַרייַנגערעכנט סטייבאַלייזד
PathBuf::with_capacity,
PathBuf::capacity,
PathBuf::clear,
PathBuf::reserve,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Layout::align_to,
Layout::pad_to_align,
Layout::array и
Layout::extend.
עקסטענדעד פאַנגקשאַנז פון די נאָרמאַל ביבליאָטעק:
Добавлен специальный вариант «vec![]», напрямую отражаемый в Vec::new(), что позволяет использовать «vec![]» в контексте вместо констант.
В convert::Infallible добавлена реализация (impl) типажа האַש.
В OsString реализованы умные указатели DerefMut и IndexMut, возвращающие «&mut OsStr».
В proc_macro::LexError реализованы fmt::Display и Error.
Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в методах from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes и to_ne_bytes для всех целочисленных типов.
Добавлена поддержка генерации статических библиотек в формате «.a» вместо «.lib» для GNU-платформ для Windows.
Минимальные требования к LLVM подняты до версии LLVM 8.