Hoʻokuʻu ʻia ʻo Rust 1.52

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka ʻōlelo hoʻonohonoho ʻōnaehana ʻo Rust 1.52, i hoʻokumu ʻia e ka papahana Mozilla, akā i kēia manawa ua hoʻomohala ʻia ma lalo o ka mana o ka hui kūʻokoʻa waiwai ʻole ʻo Rust Foundation. Hoʻopili ka ʻōlelo i ka palekana hoʻomanaʻo, hāʻawi i ka hoʻokele hoʻomanaʻo maʻalahi, a hāʻawi i ke ala e hoʻokō ai i ka parallelism hana kiʻekiʻe me ka ʻole o ka hoʻohana ʻana i ka ʻōpala a i ʻole ka wā holo (e hoʻemi ʻia ka manawa holo i ka hoʻomaka kumu a me ka mālama ʻana i ka waihona maʻamau).

Hoʻopau ka hoʻokele hoʻomanaʻo hoʻomanaʻo a Rust i nā hewa i ka wā e hoʻopunipuni ai i nā kuhikuhi a pale i nā pilikia e puka mai ana mai ka hoʻoponopono hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ke komo ʻana i kahi ʻāpana hoʻomanaʻo ma hope o ka hoʻokuʻu ʻia ʻana, nā kuhikuhi kuhikuhi null, overruns buffer, etc. No ka hāʻawi ʻana i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi, ke kūkulu nei ka papahana i ka luna pūʻolo Cargo. Kākoʻo ʻia ka waihona crates.io no ka mālama ʻana i nā hale waihona puke.

Nā hana hou nui:

  • Убрана привязка к порядку выполнения команд «cargo check» и «cargo clippy». Раньше вызов «cargo clippy» после «cargo check» не приводил к запуску утилиты clippy (linter) из-за отсутствия разделения кэшей для данных режимов проверки. Теперь эта проблема решена и порядок вызова «cargo clippy» и «cargo check» перестал иметь значение.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы:
    • Arguments::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::mai_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_once
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i kēlā me kēia pōʻaiapili ma mua o nā mea mau, hoʻohana ʻia i nā ʻano:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Добавлена lint-проверка unsafe_op_in_unsafe_fn для определения обрамления unsafe-блоками unsafe-кода, используемого в unsafe-функциях.
  • Разрешено приведение mutable-указателей на массивы в форму указателей на тип, что и у элемента массива. let mut x: [usize; 2] = [0, 0]; let p = &mut x as *mut usize; let p = &mut x as *const usize;
  • В clippy (linter) добавлено 9 новых проверок.
  • В пакетном менеджере cargo для пакетов реализована поддержка поля «manifest_path» в JSON. В репозиторий crates.io добавлена поддержка указания информации о лицензиях в формате SPDX 3.11.
  • Разрешено указание нескольких фильтров при выполнении тестов, например запуск «cargo test — foo bar» запустит все тесты, соответствующие маскам «foo» и «bar».
  • Применяемый по умолчанию инструментарий LLVM обновлён до версии LLVM 12.
  • Реализован третий уровень поддержки для платформ s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl и powerpc-unknown-openbsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka