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

Rust 1.67.0: #[must_use] для Future, смена реализации mpsc

Время на прочтение2 мин
Количество просмотров3.4K
Автор оригинала: The Rust Release Team

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


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


rustup update stable

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


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


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


#[must_use] влияет на async fn


Асинхронные функции с аннотацией #[must_use] теперь применяют этот атрибут к выходному значению возвращаемой impl Future. Сам трейт Future всегда аннотирован атрибутом #[must_use], так что все типы, реализующие Future, автоматически становятся #[must_use]. Напомним, что ранее не было способа указать, что выходные данные Future сами по себе являются значимыми и должны как-либо использоваться.


Начиная с 1.67 компилятор предупреждает, если выходные данные никак не используются.


#[must_use]
async fn bar() -> u32 { 0 }

async fn caller() {
    bar().await;
}

warning: unused output of future returned by `bar` that must be used
 --> src/lib.rs:5:5
  |
5 |     bar().await;
  |     ^^^^^^^^^^^
  |
  = note: `#[warn(unused_must_use)]` on by default

Обновлена реализация std::sync::mpsc


Начиная с версии 1.0 стандартная библиотека Rust содержит каналы со множеством производителей и одним потребителем. С текущего выпуска они будут основаны на пакете crossbeam-channel. Этот выпуск не содержит изменений в API, однако такая реализация исправляет некоторые ошибки и улучшает производительность и поддерживаемость.


Благодаря этому пользователи не заметят значительных изменений в поведении.


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



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



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


Участники 1.67.0


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


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


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


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

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

Публикации