Доступно обновление Rust 1.23

Rust 1.23

Вышла новая версия Rust — современного языка системного программирования, ориентированного на безопасность, скорость и параллелизм. Обновления Rust выпускаются каждые несколько недель, поэтому новые версии приносят относительно немного изменений.

Основные улучшения в Rust 1.23 — в области инструментов, а не самого языка.

Компилятор

Компилятор Rust теперь не генерирует код копирования аргументов там, где этого можно избежать; это серьёзная оптимизация, в результате которой использование памяти в самом компиляторе Rust, скомпилированном с помощью новой версии самого себя, уменьшилось на 5–10 %.

Cargo

Документация к Cargo, менеджеру пакетов и системе сборки проектов на Rust, раньше создавалась отдельно от остальной документации Rust (и была доступна на сайте crates.io). Теперь документация к Cargo приведена к тому же формату, в котором написана остальная документация Rust, а также включена в комплект поставки Rust вместе с остальной документацией.

Генерация документации

Также ведётся процесс переключения генератора документации rustdoc (который можно запустить, например, командой cargo doc) с устаревшего, неподдерживаемого и полного багов средства рендеринга Markdown под названием hoedown, написанного на C, на новый, стабильный и обладающий гораздо лучшей поддержкой стандарта CommonMark рендерер под названием pulldown, написанный на Rust. rustdoc 1.23 по умолчанию рендерит markdown обоими инструментами и выдаёт предупреждение, если результаты отличаются. Узнать про процесс перехода на pulldown и следить за его прогрессом можно по этой ссылке.

В результате изменений в реализации объектов типажей (trait objects) стало возможным удалить последний случай специальной обработки типажа Send компилятором — теперь он полностью реализован в стандартной библиотеке.

Кроме того, в стандартную библиотеку Rust было добавлено несколько новых реализаций типажей и оптимизирована работа нескольких методов. Подробный список изменений можно найти в GitHub-репозитории проекта.

Сергей Бугаев