O le faʻasalalauga o le polokalame polokalame Rust 1.54, na faʻavaeina e le poloketi Mozilla, ae o lea ua atiaʻe i lalo o le faʻauluuluga a le faʻalapotopotoga tutoatasi e leai ni tupe mama Rust Foundation, ua lomia. O le gagana e taulaʻi i le saogalemu o mafaufauga, e maua ai le puleaina o manatuaga otometi, ma tuʻuina atu auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaogaina o se lapisi poʻo le taʻavale (ua faʻaititia le taimi i le amataga ma le tausiga o le faletusi masani).
Ole pulega otometi a le Rust e fa'asaoina ai le tagata e faia mea sese pe a fa'aogaina fa'ailoga ma puipuia mai fa'afitauli e tula'i mai ona o le fa'aogaina o mafaufauga maualalo, e pei o le ulufale atu i se vaega e manatua pe a uma ona fa'asa'olotoina, fa'ate'aina null pointers, buffer overruns, etc. Ina ia tufatufa faletusi, tuʻuina atu fausia ma pulea faʻalagolago, o le poloketi e atiina ae le pule o pusa uta. O le crates.io repository e lagolagoina mo le talimalo faletusi.
Autu fa'afouga:
- Добавлена возможность использования внутри атрибутов макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса «macro_rules!»). От функций подобные макросы отличаются символом «!» после имени (macro!(…)) и подстановкой исходного текста макроса вместо генерирования вызова функции. Вызов макросов внутри атрибутов может оказаться полезным для включения в документирующие комментарии содержимого из других файлов. Например, для вставки содержимого файла README и результата выполнения скрипта можно указать: #![doc = include_str!(«README.md»)] #[path = concat!(env!(«OUT_DIR»), «/generated.rs»)] mod generated;
- Стабилизированы встроенные в компилятор функции (Intrinsics) для платформы wasm32, позволяющие использовать инструкции SIMD в WebAssembly. Большая часть функций, таких как v128_bitselect, доступны в режиме «safe», но некоторые функции работающие с указателями (например, v128_load) остаются «unsafe».
- Возвращено применение по умолчанию инкрементальной компиляции, позволяющей пересобирать только изменившиеся части кода, что позволяет значительно сократить время сборки проекта при повторной компиляции после внесения мелких правок. Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок, всплывших после добавления дополнительной проверки загрузки данных из дискового кэша.
- В разряд стабильных переведена новая порция API, в том числе стабилизированы:
- BTreeMap::into_keys
- BTreeMap::into_values
- HashMap::into_keys
- HashMap::into_values
- arch::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point
- В cargo-tree добавлены опции: «—prune <spec>» для удаления пакета из графа зависимостей, «—depth» для вывода только элементов заданного уровня вложенности в дереве зависимостей, «—edges no-proc-macro» для скрытия зависимостей процедурных макросов.
puna: opennet.ru