21 марта 2024 года состоялся релиз языка программирования Rust 1.77.0, позволяющего каждому создавать надёжное и эффективное программное обеспечение. Исходный код проекта опубликован на GitHub разработчиками из Rust Foundation.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.77.0 достаточно выполнить команду rustup update stable.
Основные обновления и изменения и доработки в Rust 1.77:
добавлена поддержка строк в стиле языка C (C-string), которые хранятся в памяти с завершающим нулевым символом и ассоциированы с типом CStr;
в асинхронно выполняемых функциях, объявленных при помощи выражения «async fn», разрешено использование рекурсии, т.е. подобные функции теперь могут вызывать сами себя;
стабилизирован макрос offset_of!, позволяющий определить байтовое смещение полей структур, перечислений, объединений и кортежей, относительно начала типа;
в пакетном менеджере Cargo в профилях релизов по умолчанию включена очистка файлов от отладочных данных (strip = «debuginfo»), если в профиле Cargo явно не включён режим отладки, т.е. если параметр debug = 0;
включена по умолчанию опция «-Zthir-unsafeck=on», обеспечивающая проверку unsafe для промежуточного представления THIR («Typed High-Level Intermediate Representation»);
добавлена lint-проверка static_mut_refs для вывода предупреждения при использовании ссылок на изменяемые статические значения;
реализована возможность применения типажа «From» для типа «Cow»;
в компиляторе обеспечено выравнивание 16-байтовых типов i128 и u128 для систем x86;
реализован третий уровень поддержки для платформ aarch64-unknown-illumos, hexagon-unknown-none-elf, riscv32imafc-esp-espidf и riscv32im-risc0-zkvm-elf. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода;
в разряд стабильных переведены часть API, в том числе стабилизированы методы и реализации типажей.
Список контрибуторов, которые работали на выпуском Rust 1.77.
Источник: habr.com