Голые функции открывают новые горизонты для low-level разработки.
Вышла новая версия языка программирования Rust 1.88.0, представляющая несколько значимых улучшений для разработчиков. Команда Rust опубликовала обновление 26 июня 2025 года с набором функций, которые упростят написание более удобного и безопасного кода.
Главным новшеством стала возможность объединения условий с помощью let-цепочек. Теперь программисты могут использовать оператор && для связывания let-выражений внутри if и while блоков, что позволяет смешивать их с булевыми выражениями. Это нововведение убирает различие между обычными if и if let конструкциями, делая код более читаемым. Раньше для проверки нескольких условий требовалось вкладывать if let и if блоки друг в друга, что создавало громоздкие конструкции. Функция доступна только в редакции Rust 2024, поскольку зависит от изменений области видимости временных переменных.
Версия 1.88.0 также вводит поддержку "голых" функций, которые позволяют писать код без автоматически генерируемых компилятором пролога и эпилога. Это дает разработчикам полный контроль над сгенерированным машинным кодом функции. Такие функции помечаются атрибутом #[unsafe(naked)] и содержат единственный вызов naked_asm!. Голые функции используются в низкоуровневых приложениях, таких как операционные системы и встраиваемые системы.
В области конфигурации компиляции появилась поддержка булевых литералов true и false в cfg предикатах. Это предоставляет более прямой способ указать условия компиляции вместо неявных конструкций вроде cfg(all()) и cfg(any()). Новый синтаксис работает с атрибутами cfg и cfg_attr, встроенным макросом cfg!, а также в конфигурационных файлах Cargo.
Cargo получил долгожданную функцию автоматической очистки кэша в домашней директории. При сборке проектов Cargo загружает и кэширует зависимости, которые ранее никогда не удалялись, что приводило к неограниченному росту использования дискового пространства. Теперь система сборки автоматически удаляет файлы, загруженные из сети, если к ним не обращались более трех месяцев, и файлы из локальной системы через месяц неиспользования. Автоматическая очистка не происходит при работе в автономном режиме.
Обновление стабилизировало множество API, включая Cell::update, реализации Default для указателей, новые методы для работы с массивами по частям и улучшения в области процедурных макросов. Некоторые ранее стабильные API теперь также работают в константных контекстах.
Платформа i686-pc-windows-gnu была понижена до второго уровня поддержки. Это не повлияет на пользователей немедленно, поскольку компилятор и стандартные инструменты по-прежнему будут распространяться через rustup, но в будущем может привести к накоплению ошибок из-за менее тщательного тестирования.
Rust 1.88.0 продолжает традицию регулярных выпусков каждые шесть недель, поддерживая стабильность и предсказуемость развития языка. Пользователи могут обновиться с помощью команды rustup update stable, а новички могут установить Rust через официальный сайт проекта.
Первое — находим постоянно, второе — ждем вас