Weşana Zimanê Bernamesaziyê Rust 1.54

Serbestberdana zimanê bernamesaziya pergalê Rust 1.54, ku ji hêla projeya Mozilla ve hatî damezrandin, lê naha di bin banê rêxistina ne-qezenc a serbixwe Rust Foundation de hatî pêşve xistin, hate weşandin. Ziman balê dikişîne ser ewlehiya bîranînê, rêveberiya bîranînê ya otomatîkî peyda dike, û amûran peyda dike ku meriv paraleliya peywira bilind bêyî karanîna berhevkarek çopê an dema xebitandinê peyda bike (dema xebitandinê ji destpêkirina bingehîn û domandina pirtûkxaneya standard re kêm dibe).

Rêvebiriya bîranîna otomatîkî ya Rust di dema manîpulekirina nîşankeran de xeletiyan ji holê radike û li hember pirsgirêkên ku ji manîpulasyona bîranînê ya nizm derdikevin diparêze, wek mînak gihîştina herêmek bîranînê piştî ku ew azad bû, veqetandinên nîşangirên betal, zêdekirina tampon, hwd. Ji bo belavkirina pirtûkxaneyan, misogerkirina civîn û birêvebirina pêwendiyan, proje rêveberê pakêtê Cargo pêşve dike. Depoya crates.io ji bo pirtûkxaneyên mêvandar têne piştgirî kirin.

Nûvekirinên sereke:

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

Source: opennet.ru

Add a comment