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

В Rust 1.82 улучшена поддержка Apple

В Rust 1.82 улучшена поддержка Apple

В соответствии с шестинедельным циклом выпуска Rust вышла версия 1.82 с более высоким уровнем поддержки Apple и новой подкомандой Info для Cargo.

Rust популярен в таких ситуациях, как встраивание в другие языки, написание программ с особыми требованиями к пространству и времени, а также написание низкоуровневого кода.

Расширенная поддержка разработчиков, ориентированных на операционные системы Apple, начинается с повышения уровня поддержки macOS на 64-битных ARM до Tier 1, что является наивысшей гарантией корректной работы Rust. Разработчики говорят, что для достижения этого уровня поддержки каждое изменение в репозитории Rust должно пройти полное тестирование на каждой цели уровня 1, прежде чем оно будет слито. Новая веха ставит цель aarch64-apple-darwin в один ряд с 64-битными ARM Linux и X86 macOS, Linux и Windows.

Команда Rust также объявила, что цели Mac Catalyst теперь сертифицированы как Tier 2. Mac Catalyst - это технология Apple, позволяющая запускать iOS-приложения на Mac.
В целом, менеджер пакетов Cargo в Rust теперь имеет подкоманду info для отображения информации о пакете в реестре, что, по словам команды Rust, удовлетворяет давнюю просьбу, которой недавно исполнилось десять лет. За прошедшие годы было написано несколько сторонних расширений, чтобы предоставить альтернативу этому недостатку.

В этом выпуске также добавлена поддержка синтаксиса use<..> для управления тем, какие общие параметры времени жизни перехватываются. Захват общего параметра позволяет использовать этот параметр в скрытом типе, что, в свою очередь, влияет на проверку заимствований. Однако до сих пор параметры времени жизни не перехватывались в непрозрачных типах для голых функций, а также для функций и методов присущих имплантов, если эти параметры времени жизни не упоминались синтаксически в непрозрачном типе. Новая поддержка исправляет это.

Последнее изменение, заслуживающее внимания, появилось в Rust 1.80 с добавлением Lazy Cell и Lazy Lock, которые откладывают инициализацию своих данных до первого обращения к ним. Они похожи на типы OnceCell и OnceLock, но функция инициализации включена в ячейку. Это завершает стабилизацию функциональности, перешедшей в стандартную библиотеку из популярных ящиков lazy_static и once_cell. LazyLock - потокобезопасный вариант, что делает его подходящим для таких мест, как статические значения, а LazyCell делает то же самое без потоковой синхронизации.

Версия 1.82 Rust доступна уже сейчас.

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