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

Выпуск Rust 1.23

Время на прочтение3 мин
Количество просмотров8.5K
Автор оригинала: The Rust Core Team

Команда Rust рада сообщить о новой версии Rust: 1.23.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.


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


$ rustup update stable

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


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


Новый год, новый Rust! Нашим первым улучшением является избавление от избыточных копий в некоторых ситуациях. С этими изменениями потребление памяти rustc уменьшилось на 5-10%, но результаты для ваших приложений могут отличаться.


Команда документации прошла долгий путь для того чтобы rustdoc использовал CommonMark. До этого rustdoc не гарантировал какой движок отрисовки markdown он использовал. В рамках этого выпуска мы все еще визуализируем документацию нашим прошлым движком — Hoedown — но параллельно визуализируем еще и совместимым с CommonMark движком, выдавая предупреждения при различных результатах. Нам еще не встречались ситуации, где нельзя было бы изменить синтаксис документа так, чтобы он удовлетворял обоим движкам сразу. Участник команды документации Guillaume Gomez написал заметку об этом в своем журнале, где показаны некоторые часто встречающиеся отличия движков и способы их обхода. В будущем выпуске CommonMark движок будет использоваться по умолчанию. Предупреждение появилось в ночной версии в мае прошлого года и было включено по умолчанию с октября прошлого года, поэтому многие пакеты (crates) уже исправили встретившиеся проблемы.


Еще немного о документации: исторически, документация по Cargo была немного странной. Вместо того чтобы располагаться на doc.rust-lang.org, она была расположена на doc.crates.io. С этим выпуском это изменится: теперь вы можете найти документацию Cargo на doc.rust-lang.org/cargo. Мы добавим перенаправление с doc.crates.io на эту страницу. Кроме того, документация была преобразована в наш "книжный" формат.


Подробности смотрите в примечаниях к выпуску.


Стабилизации стандартной библиотеки


Начиная с Rust 1.0, существует типаж (trait) AsciiExt, который предоставляет относящуюся к ASCII функциональность для u8, char, [u8] и str. Чтобы использовать его, вам нужно было написать подобный код:


use std::ascii::AsciiExt;

let ascii = 'a';
let non_ascii = '';
let int_ascii = 97;

assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
assert!(int_ascii.is_ascii());

В Rust 1.23 эти методы объявлены непосредственно для типов, поэтому вам больше не нужно импортировать типаж. Благодаря нашим гарантиям стабильности этот типаж все еще существует, так что если вы хотите поддерживать версии Rust ниже 1.23, вы можете написать:


#[allow(unused_imports)]
use std::ascii::AsciiExt;

… чтобы подавить соответствующее предупреждение. Когда вы откажитесь от поддержки старых версий Rust, обе строчки можно будет удалить и все продолжит работать.


Так же, было стабилизировано несколько API:



Подробности смотрите в примечаниях к выпуску.


Cargo features


cargo check теперь может проверять ваши модульные тесты.


cargo uninstall теперь может удалять больше одного пакета одной командой.


Подробности смотрите в примечаниях к выпуску.


Разработчики 1.23.0


Множество людей участвовало в разработке Rust 1.23. Мы не смогли бы этого добиться без участия каждого из вас. Спасибо!


Авторы перевода: @BORN2LOSE и ozkriff.

Теги:
Хабы:
Всего голосов 38: ↑36 и ↓2+34
Комментарии22

Публикации

Истории

Работа

Rust разработчик
10 вакансий

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

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань