Написать пост

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

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

Вышла новая версия языка Rust 1.24. Ключевыми изменениями стали: появление в стабильной ветке инструмента rustfmt, поддержка инкрементальной компиляции, а также ускорение работы методов str::find и [u8]::contains.

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

Особенности нового релиза

Инструмент rustfmt, позволяющий автоматически форматировать исходный код, написанный на Rust, в заданном стиле, теперь доступен на стабильной версии Rust. Раньше для его использования требовалось дополнительно устанавливать ночную сборку компилятора Rust, поддерживающую ещё не стабилизированные возможности. Для установки rustfmt с помощью rustup достаточно набрать:

			$ rustup component add rustfmt-preview
		

В этом релизе по умолчанию включена первая стадия поддержки инкрементальной компиляции, уже полтора года находящейся в разработке. В отличие от языков C / C++ / Objective-C, в которых единицей компиляции является один файл с исходным кодом, в Rust единицей компиляции является библиотека (crate); такой подход обладает несколькими преимуществами, но требует полной перекомпиляции каждой библиотеки при каждом изменении. Теперь компилятор Rust поддерживает инкрементальную компиляцию, что позволяет ему перекомпилировать только изменившиеся участки кода. Продолжается работа над реализацией более полной поддержки инкрементальной компиляции на всех ее стадиях.

Работа метода str::find, позволяющего найти позицию заданного Unicode-символа в переданной строке, была ускорена в 10 раз за счёт использования нового оптимизированного алгоритма. Аналогичное улучшение для метода [u8]::contains, позволяющего проверить, содержится ли байт с заданным значением в переданном участке памяти, ускорило его работу в 3 раза.

В Rust 1.24 была стабилизирована возможность вызова функций, вычисляемых во время компиляции (const fn). Для объявления таких функций всё ещё требуется использовать нестабильные возможности, доступные только в ночных сборках компилятора; стабильная поддержка этой возможности по-прежнему находится в процессе разработки и будет реализована в одной из следующих версий.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
569 открытий569 показов