Выпуск Rust 1.23

Original author: The Rust Core Team
  • Translation

Команда 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.

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 22

    –2
    Перевод trait как «типаж» мне выносит мозг. Рядом кто-то переводил коммиты гита как «фиксации». Вы специально это?
      +1

      Простите, а что такого мозговыносящего в адекватных переводах? Или вы тупые кальки предпочитаете?

      • UFO just landed and posted this here
      +7

      Очень маленькая новость, судя по всему следующая будет больше — несколько вещей на 1.24 "съехали" по срокам.


      Тем временем я вернулся к относительно активной работе над своей пошаговой игрой на расте — https://github.com/ozkriff/zemeroth — вроде бы оно постепенно начинает напоминать что-то играбельное. Есть шансы что хоть этот проект не попадет на "кладбище недоделок".

        +1

        У вас же там вроде бы были танчики и вертолетики, ЕМНИП. Концепция поменялась?:)

          +3

          Ага, было такое, но летом пришел к выводу что переоценил свои силы и решил пилить проектик значительно меньший по амбициям, но такой что бы я его точно смог закончить — https://ozkriff.github.io/2017-08-17--devlog.html :)

            +2

            Мудро:) Успеха вам!

        +5
        Памяти действительно стал потреблять меньше. Было 3200KB, стало 2500KB. Мелоч, а приятно.
          0
          Спасибо за перевод!
            –8
            почти нет изменений. Язык медленно умирает?
              +2

              Ты это серьёзно?..

                –3
                Да. Напишите список крупных изменений С# и Rust за последний год.
                Я нуб, но на мой взгляд С# развивается быстрее.

                Да, Rust проходит стабилизацию и т д.
                Самое стабильное ПО — то чью разработку прекратили.
                  +1

                  "Язык N развивается быстрее" — это уже совсем другое утверждение. Особенно забавно сравнение с C#, с которым раст вообще никак не конкурирует. В таком случае, можем на джаву посмотреть или на любой другой язык, у которого "релизный цикл" больше года — ещё веселее будет.


                  Мне бы, пожалуй, хотелось бы, чтобы определённые вещи в расте реализовали поскорее, но на стагнацию происходящее совершенно не похоже.

                    –2
                    Знаете парадокс черной королевы?
                    Что бы оставаться на месте надо бежать со всех ног, а что бы еще и достичь пункта назначения надо бежать еще быстрее.

                    Я надеялся увидеть ответ, что Rust живет, развивается… С конкретикой. Но судя по реакции я просто высказал отгоняемые мысли.
                      +2

                      С какой ещё конкретикой? Можно просто зайти в чейнжлог и почитать. Всё остальное, в том числе оценка изменений, субъективно. Можно, например, поспорить, насколько полезно ускорение времени компиляции, которой уделяется много внимания в последнее время. Но зачем?


                      Я надеялся увидеть ответ, что Rust живет, развивается… С конкретикой. Но судя по реакции я просто высказал отгоняемые мысли.

                      Я надеялся на вменяемый диалог, но судя по всему, это просто троллинг, ага.

                    +1
                    Но в статье изменения не за последний год, а за последние 6 недель. Покажите Changelog C# за последние 6 недель для сравнения.
                      –2
                      Я смотрел ченжлог за последний год.
                      Именно после этого и возник пост.

                      Но спорить больше не вижу смысла.
                +4

                Термин "типаж" довольно необычен, однако, сразу на интуитивном уровне дает понимание концепции trait'ов:


                • это не что-то строгое, когда мы наследуемся от типа, и уже никуда не можем уйти из иерархии и предопределенного поведения (свобода лишь в пределах добавления нового поведение и полиформизма, если таковой есть);
                • это лишь то, что в определенном разрезе наши объекты будут соответствовать определенному "типажу" — иметь определенные черты, и при этом эти объекты не будут вписаны в какую-то строгую иерархию типов, определяющих эти черты, что дает свободу в определении типа (типов), от которых будут создаваться объекты;
                • другими словами, trait'ы похожи на mixin'ы — они примешиваются к типу при его определении (в то время, как "миксины" могут примешиваться и к объектам).
                  +2

                  Историческая справка. Перевод trait как "типаж" возник при чтении первой книги по Scala и был выбран при следующих ограничениях в порядке приоритета: он должен был быть


                  1. ассоциирован с дословным переводом (черта)
                  2. и функциональной нагрузкой (тип),
                  3. не перерегруженным,
                  4. желательно кратким (2 слога)
                  5. и в чём-то созвучным с оригиналом (первая буква "т").

                  Этот перевод выиграл у конкурента "черта", который обладал только пунктами 1, 3 и 4.

                  +2
                  «нацеленный на безопасность, скорость и параллельное выполнение кода»
                  После 3-го января 2018-го эта фраза никогда не будет прежней
                    0
                    Думаете Intel и другие разработчики процессоров сразу же пересядут на Rust? Учитывая что программирование касаемо hardware довольно небезопасно, то сплошь и рядом придётся писать блоки unsafe кода.
                      +2

                      Теперь есть аппаратные дырки, поэтому об обычных можно не беспокоиться?

                    Only users with full accounts can post comments. Log in, please.