Языки программирования

В Rust 1.82 появилась подкоманда Cargo info

В Rust 1.82 появилась подкоманда Cargo info

Rust 1.82, новейшая версия популярного безопасного для памяти языка программирования, удовлетворяет давний запрос на отображение информации в реестре менеджера пакетов Cargo. Также с Rust 1.82 Apple macOS на 64-битной платформе Arm теперь предлагает наивысшую гарантию функциональности Rust.

Обновление было анонсировано 17 октября. Разработчики, использующие предыдущую версию Rust, могут получить доступ к обновлению, выполнив команду rustup update stable.

Для Cargo в Rust добавлена подкоманда cargo info, показывающая информацию о пакете в реестре. Эта возможность запрашивалась почти 10 лет. За эти годы были написаны сторонние расширения, подобные этому; эта реализация была разработана как cargo-information, прежде чем слиться с самим Cargo.

Также в Rust 1.82, aarch64-apple-darwin для macOS на 64-битных процессорах Arm теперь является целью Rust первого уровня, с наивысшей гарантией правильной работы. Каждое изменение в репозитории Rust должно пройти полное тестирование на каждой цели уровня 1, прежде чем оно будет слито. Эта цель была представлена как tier 2 в Rust 1.49, что сделало ее доступной в rustup. Новая веха ставит цель aarch64-apple-darwin в один ряд с 64-битными целями Arm Linux и x86 macOS, Linux и Windows. Кроме того, цели для Mac Catalyst, технологии Apple для запуска iOS-приложений на Mac, теперь относятся ко второму уровню.

Rust 1.82 вышел вслед за выпуском 5 сентября Rust 1.81, в котором был стабилизирован признак Error в основной библиотеке Rust. Кроме того, в Rust 1.82:

  • Rust теперь поддерживает синтаксис use<...> в определенных границах impl Trait для управления тем, какие общие параметры времени жизни перехватываются. Типы Return-position impl Trait (RPIT) в Rust захватывают определенные общие параметры. Захват общего параметра позволяет использовать его в скрытом типе. Это, в свою очередь, влияет на проверку заимствований.
  • Родной синтаксис для создания необработанного указателя присутствует.
  • Ответственность за правильность всех сигнатур, содержащихся в блоке extern, лежит на тех, кто его пишет; таким образом, теперь разработчики могут писать unsafe extern. Преимуществом этого является то, что элементы внутри блока unsafe extern могут быть помечены как безопасные для использования.
  • Некоторые атрибуты Rust, такие как no-mangle, могут быть использованы для того, чтобы вызвать неопределенное поведение без какого-либо опасного блока. Если бы это был обычный код, то требовалось бы помещать их в небезопасный блок {}, но до сих пор атрибуты не имели сопоставимого синтаксиса. Чтобы отразить, что эти атрибуты могут подорвать гарантии безопасности Rust, теперь они считаются «небезопасными» и должны быть написаны следующим образом: #unsafe(no_mangle)] pub fn my global_function (){}
  • Шаблоны, соответствующие пустым типам, теперь можно опускать.
  • Rust 1.82 стандартизирует набор правил для поведения значений NaN (не число).
  • Операнд const в сборке теперь позволяет использовать целые числа в качестве непосредственных без предварительного хранения в регистре.

Читайте также

TypeScript улучшает проверку никогда не инициализированных переменных

Компания Microsoft объявила о выходе бета-версии TypeScript 5.7, в которую внесены такие улучшения, как усиленная проверка переменных, которые никогда не были инициализированы перед использованием, и переписывание путей для относительных путей.

Библиотека CameraX для Android получила расширение функциональности двойной камеры

Разработчики Android смогут воспользоваться обновлением библиотеки CameraX, которое улучшает функцию Dual Concurrent Camera. Усовершенствование, представленное в релизе 1.5.0-alpha01, упрощает реализацию одновременной потоковой съемки с двух разных камер.