Rust 1.54 scaoileadh teanga cláir

Tá scaoileadh na teanga ríomhchláraithe córais Rust 1.54, a bhunaigh an tionscadal Mozilla, ach atá forbartha anois faoi choimirce na heagraíochta neamhspleách neamhbhrabúis Rust Foundation, foilsithe. Díríonn an teanga ar shábháilteacht chuimhne, soláthraíonn sí bainistíocht cuimhne uathoibríoch, agus soláthraíonn sé na modhanna chun comhthreomhaireacht ard-tasc a bhaint amach gan úsáid a bhaint as bailitheoir truflais nó am rite (laghdaítear an t-am rite go dtí túsú bunúsach agus cothabháil na leabharlainne caighdeánach).

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. Chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais a bhainistiú, tá an tionscadal ag forbairt bainisteoir pacáiste lasta. Tacaítear leis an stór crates.io chun leabharlanna a óstáil.

Príomh-nuálaíochtaí:

  • Добавлена возможность использования внутри атрибутов макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса «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» для скрытия зависимостей процедурных макросов.

Foinse: oscailtenet.ru

Add a comment