...

пятница, 5 июня 2020 г.

Выпуск Rust 1.44.0: cargo tree, async/await в no_std, Unicode 13 и vec![] в const-контексте

Данный анонс является компиляцией черновика анонса и подробных примечаний к выпуску. Официальный анонс короче, чем обычно:


This is a shorter blog post than usual: in acknowledgement that taking a stand against the police brutality currently happening in the US and the world at large is more important than sharing tech knowledge, we decided to significantly scale back the amount of promotion we're doing for this release.

The Rust Core Team

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

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

rustup update stable

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


Что вошло в стабильную версию 1.44.0

Выпуск Rust 1.44 не содержит значительных изменений: мы полировали существующее и стабилизировали несколько API в стандартной библиотеке.

cargo tree — очень старое и популярное дополнение для Cargo, которое выводит в консоль зависимости проекта в виде дерева. Его первый выпуск был в декабре 2015 и к настоящему моменту у него уже около 50000 загрузок мы решили добавить его в Cargo.

  mdbook v0.3.2 (/Users/src/rust/mdbook)
├── ammonia v3.0.0
│   ├── html5ever v0.24.0
│   │   ├── log v0.4.8
│   │   │   └── cfg-if v0.1.9
│   │   ├── mac v0.1.1
│   │   └── markup5ever v0.9.0
│   │       ├── log v0.4.8 (*)
│   │       ├── phf v0.7.24
│   │       │   └── phf_shared v0.7.24
│   │       │       ├── siphasher v0.2.3
│   │       │       └── unicase v1.4.2
│   │       │           [build-dependencies]
│   │       │           └── version_check v0.1.5
...

Из этого примера мы видим, что mdbook зависит от пакета ammonia, который в свою очередь зависит от html5ever, а он уже от log, mac, markup5ever и так далее.

Также вы можете использовать cargo tree -d (сокращение для cargo tree --duplicates) для отображения зависимостей разных версий одного и того же пакета. Она отобразит записи для всех версий всех зависимостей и инвертированное дерево зависимостей, показывающее как каждая версия была получена.

Этот выпуск также отмечает расширение возможностей использования async/await: теперь их можно использовать в no_std контексте. До этого реализация временно требовала локальной памяти потока. В этом выпуске данное ограничение было убрано, а значит наличие libstd больше не обязательно при использовании async/await.


Изменения в стандартной библиотеке

vec![] теперь может быть использован в const-контексте. Обратите внимание, что так можно создать только пустой вектор: vec![] скомпилируется, а vec![1, 2, 3] — нет.

Добавлена поддержка Unicode 13.

Vec<T> теперь реализует From<[T; N]> при N меньшем 32.

Дополнительно мы стабилизировали 11 новых API:


Другие изменения


Синтаксис, пакетный менеджер Cargo и анализатор Clippy также претерпели некоторые изменения.


Участники 1.44.0

Множество людей собрались вместе, чтобы создать Rust 1.44.0. Мы не смогли бы сделать это без всех вас, спасибо!


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

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

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий