В июле этого года начались обсуждения вокруг Rust 2018. Вкратце, запускается цикл долгосрочных этапов, называемых «Выпусками», вокруг которых, в рамках обычных 6-недельных циклов разработки, будут сосредоточены все улучшения и работы: в библиотеках, инструментах и документации Rust. Новые выпуски будут выходить примерно раз в три года: Rust 1.0 был выпуском «Rust 2015», а предстоящий Rust 1.31 будет выпуском «Rust 2018». Каждому выпуску посвящён свой предмет: в Rust 2015 — это была стабильность, в Rust 2018 — это продуктивность.
Rust 2018 уже тестируется некоторое время, и всё выглядит довольно неплохо. До следующей стабильной версии Rust 1.31 ещё есть 6 недель, в связи с чем, разработчики просят попробовать бета-версию.
Есть два способа попробовать Rust 2018: обновить текущий проект, или начать новый. Подробная информация есть в руководстве по выпуску, ниже же приведена быстрая и упрощенная версия.
Разработчики просят сообщать им о всех проблемах, которые возникнут у вас во время тестирования.
Прежде всего, вам надо установить бета-версию Rust из соответствующего канала:
$ rustup install beta
Чтобы использовать бета-версию, вы должны добавить +beta
к командам rustc
или cargo
:
$ rustc +beta --version
$ cargo +beta build
Это позволит вам оставаться на стабильной версии, используя бету только для экспериментов.
Новый проект Rust 2018 начинается следующим образом:
$ cargo +beta new my-sample-project
При этом в файле Cargo.toml
добавляется новая опция edition = "2018"
(отсутствие данной опции равнозначно наличию опции edition = "2015"
):
[package]
name = "my-sample-project"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"
[dependencies]
Вы также можете преобразовать существующий проект в Rust 2018, для этого ни одна из ваших зависимостей не нуждается в обновлении - Rust 2018 и 2015 могут спокойно взаимодействовать.
Для начала надо запустить:
$ cargo fix --edition
Это проверит ваш код и автоматически исправит любые проблемы, которые получится; для тех, что не получилось, в консоли будет напечатано соответствующее предупреждение - для них вам надо обновить код вручную. Каждый раз, исправляя код, запускайте cargo fix --edition
, пока у вас не останется предупреждений. В конце, вы получите код, который будет совместим как c Rust 2015, так и с Rust 2018. После, вам остаётся только обновить файл Cargo.toml
и добавить туда строчку edition = "2018"
:
[package]
name = "my-sample-project"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"
[dependencies]
и запустить cargo +beta build
>>> Подробности