Команда Rust рада сообщить о новой версии языка — 1.75.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.75.0 вам достаточно выполнить команду:


rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.


Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.


Что стабилизировано в 1.75.0


async fn и возврат impl Trait в трейтах


Как было объявлено на прошлой неделе, Rust 1.75 поддерживает использование async fn и -> impl Trait в трейтах. Однако этот выпуск поставляется с некоторыми ограничениями, которые описаны в анонсе.


Ожидается, что эти ограничения будут сняты в будущих версиях.


API для адресной арифметики в байтах


Раньше сырые указатели (*const T и *mut T) поддерживали в основном операции адресной арифметики, выражавшиеся в единицах T. Например, <*const T>::add(1) добавляет size_of::<T>() байтов к адресу указателя. В некоторых случаях удобнее работать со смещениями указателей, выраженными в байтах, и эти новые API не требуют при вызове сначала приводить указатели к *const u8/*mut u8.



Оптимизация компоновки кода в rustc


Компилятор Rust продолжает ускоряться: в этом выпуске добавлено использование BOLT в бинарных версиях, что в среднем на 2% ускоряет время работы в наших тестах. Этот инструмент оптимизирует компоновку кода библиотеки librustc_driver.so, содержащей большую часть кода rustc, что позволяет лучше использовать кэш инструкций.


Кроме того, теперь мы собираем rustc с -Ccodegen-units=1, что предоставляет больше возможностей для оптимизации в LLVM. Согласно нашим тестам, эта оптимизация принесла дополнительный выигрыш по времени в среднем на 1,5%.


В текущем выпуске эти оптимизации ограничены платформой x86_64-unknown-linux-gnu, но мы ожидаем, что со временем они будут расширены и охватят больше платформ.


Стабилизированные API



Следующие API теперь можно использовать в контексте const:



Прочие изменения


Проверьте всё, что изменилось в Rust, Cargo и Clippy.


Кто работал над 1.75.0


Многие люди собрались вместе, чтобы создать Rust 1.75.0. Без вас мы бы не справились. Спасибо!


От переводчиков


С любыми вопросами по языку Rust вам смогут помочь в русскоязычном Телеграм-чате или же в аналогичном чате для новичковых вопросов. Если у вас есть вопросы по переводам или хотите помогать с ними, то обращайтесь в чат переводчиков.


Данную статью совместными усилиями перевели Browning, TelegaOvoshey и funkill.

Комментарии (1)


  1. MixSloboda
    30.12.2023 09:32

    Зачем переводить три строчки кода с обилием ссылок на конкретику в оригинале, что за графоманство