foilsithe scaoileadh teanga ríomhchláraithe an chórais Meirge 1.44, a bhunaigh an tionscadal Mozilla. Díríonn an teanga ar shábháilteacht chuimhne, soláthraíonn sé bainistíocht cuimhne uathoibríoch, agus soláthraíonn sé uirlisí chun comhthreomhaireacht tasc ard a bhaint amach gan úsáid a bhaint as bailitheoir truflais agus runtime.
Cuireann bainistíocht cuimhne uathoibríoch Rust deireadh le hearráidí nuair a bhíonn leideanna á n-ionramháil agus cosnaíonn sé i gcoinne fadhbanna a eascraíonn as ionramháil cuimhne ísealleibhéil, mar shampla rochtain a fháil ar réigiún cuimhne tar éis é a shaoradh, dereferences pointeoir nialasach, róchaiteachas maoláin, etc. Tá bainisteoir pacáiste á fhorbairt chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais an tionscadail a bhainistiú. Cargo, rud a ligeann duit na leabharlanna atá ag teastáil don chlár a fháil i gcliceáil amháin. Tacaítear le stór chun leabharlanna a óstáil cliathbhoscaí.io.
В тексте анонса нового выпуска разработчики Rust ввязались в политику и демонстративно отказались публиковать полноценный обзор изменений в Rust 1.44 в знак солидарности с протестующими против полицейского насилия, указав, что этот вопрос важнее обмена техническими знаниями. Основные nuálaíochtaí:
В пакетный менеджер 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. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.
Aistríodh cuid nua de APInna chuig an gcatagóir cobhsaí, lena n-áirítear cobhsaithe
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.
Feidhmeanna leathnaithe na gnáthleabharlainne:
Добавлен специальный вариант «vec![]», напрямую отражаемый в Vec::new(), что позволяет использовать «vec![]» в контексте вместо констант.
В convert::Infallible добавлена реализация (impl) типажа Hash.
В 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.