Как стать автором
Обновить

Релиз Rust 1.78

Время на прочтение2 мин
Количество просмотров2.2K

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, преобразующие срезы в представление с выровненным средним срезом и исходными начальным и конечным срезами, теперь всегда возвращают самую большую среднюю часть;

  • функция Barrier::new() стабилизирована для использования с признаком "const" в любом контексте вместо констант;

  • для целевых платформ x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm и i686-pc-windows-gnullvm теперь требуется как минимум версия Windows 10;

  • реализован третий уровень поддержки для платформ wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf и loongarch64-unknown-linux-musl. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода;

  • реализован второй уровень поддержки целевой платформы Add wasm32-wasip1. Второй уровень поддержки подразумевает гарантию сборки;

  • платформа wasm32-wasi-preview1-threads переименована в wasm32-wasip1-threads. Компилятор переведён на использование LLVM 18. При использовании LLVM 18 для архитектур x86-32 и x86-64 изменён ABI, связанный с типами u128 и i128;

  • в пактом менеджере Cargo стабилизирована 4 версия файлов-блокировок (lockfile v4);

  • в Cargo cтабилизирован глобальный кэш с информацией о последнем использовании данных. Кэш размещается в файле $CARGO_HOME/.global-cache при помощи SQLite, обновляется автоматически и отражает последние изменения, связанные с индексом, crate-файлом, каталогом с кодом, git clone и git checkout.

Список из 441 контрибутора, которые работали на выпуском Rust 1.78.

Теги:
Хабы:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Другие новости

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань