Релиз Rust 1.78
2 мая 2024 года состоялся релиз языка программирования Rust 1.78.0, позволяющего каждому создавать надёжное и эффективное программное обеспечение. Исходный код проекта опубликован на GitHub разработчиками из Rust Foundation. Предыдущая стабильная версия Rust 1.77 вышла 21 марта.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.78.0 достаточно выполнить команду rustup update stable.
Основные изменения и дополнения в Rust 1.78:
предложено новое пространство имён атрибутов "#[diagnostic]", предоставляющее средства для влияния на выдаваемые компилятором сообщения об ошибках. Первым в новом пространстве реализован атрибут "#[diagnostic::on_unimplemented]", который может использоваться для настройки сообщений об ошибках, выдаваемых в ситуации, когда требуется использовать типаж, который не реализован для типа;
предварительные assert-проверки, применяемые к unsafe-функциями, теперь могут откладываться до стадии генерации кода, что позволяет выполнять данные проверки без необходимости сборки стандартной библиотеки в режиме "#[cfg(debug_assertions)]". Для срабатывания проверок теперь достаточно включения отладочных assert-ов для тестовых или отладочных сборок своего кода;
поведение функций в стандартной библиотеке, влияющих на выравнивание указателей и срезов (slice), теперь предсказуемо во время выполнения и зависит от входных данных. Функция pointer::align_offset, вычисляющая смещение для выравнивания указателя, теперь возвращает usize::MAX только при невозможности выполнения операции. Функции slice::align_to и slice::align_to_mut both, преобразующие срезы в представление с выровненным средним срезом и исходными начальным и конечным срезами, теперь всегда возвращают самую большую
Читать на habr.com