Бесплатно Экспресс-аудит сайта:

26.03.2024

Rust 1.77.0: Строки в стиле C, асинхронная рекурсия и многое другое

Команда Rust представила новую версию языка 1.77.0, которая облегчает создание программного обеспечения и взаимодействие с языком.

Обновление доступно пользователям через утилиту rustup. Если у вас уже установлена предыдущая версия Rust, обновление до версии 1.77.0 можно выполнить командой $ rustup update stable. Для новых пользователей доступна установка через rustup – ссылку можно найти на официальном сайте вместе с подробными заметками о выпуске.

В версии 1.77.0 были внесены различные улучшения, среди которых стоит выделить следующие:

  • Поддержка строк в стиле языка C (c"abc"), что упрощает написание кода для взаимодействия с интерфейсами на иностранных языках, требующих строк, которые заканчиваются нулём. Проверка на отсутствие нулевых байтов внутри строки теперь выполняется на этапе компиляции.
  • Возможность рекурсии в функциях async fn. Ранее из-за ограничений компилятора асинхронные функции не могли вызывать сами себя. Теперь это стало возможным благодаря использованию косвенных вызовов, что позволяет писать более гибкий асинхронный код.
  • Стабилизация макроса offset_of! для доступа к смещению в байтах полей структур, что облегчает работу с данными на низком уровне, минимизируя риск введения неопределённого поведения в код.
  • Включение опции strip = "debuginfo" по умолчанию в профилях сборки Cargo, не предусматривающих отладочную информацию, что сокращает размер итогового исполняемого файла за счёт исключения отладочной информации из стандартной библиотеки.

Кроме того, в версии 1.77.0 были стабилизированы новые API, включая методы для работы с массивами, сетевыми адресами, округлением чисел с плавающей запятой, а также улучшения для работы со срезами и управлением доступом к данным.