Спустя месяц после выхода Rust 1.58.1 разработчики выпускают новую версию — 1.59.0. В ней они поработали над производительностью и новой функциональностью. Рассмотрим главные изменения.
Встроенный ассемблер. Rust теперь поддерживает ассемблер прямо в коде. Это позволит многим приложениям контролировать их выполнение на низком уровне или получать доступ к специализированным машинным инструкциям.
Например, код для систем на архитектуре x86-64 может выглядеть так:
Пока Rust поддерживает ассемблер для следующих архитектур:
- x86 и x86-64
- ARM
- AArch64
- RISC-V
Деструктурированное присваивание. Кортежи, срезы и шаблоны структур теперь можно использовать как левую часть присваивания. Это сделает присваивание более согласованным со связкой let. Разработчики отмечают, что деструктурирование с такими операторами, как +=, не работает.
Константные дефолтные и чередующиеся дженерики. Теперь можно указывать дефолтные значения для констант дженерик-типов. Например, так:
Ранее типы параметров должны были идти перед всеми константными параметрами. Это ограничение было упрощено, чтобы позволить пользователям чередовать их.
Что ещё? Разработчики предупредили о будущих сообщениях о несовместимости, сделали бинарные файлы меньше, отключили инкрементальную компиляцию по умолчанию и стабилизировали некоторые API.
Подробнее изучить все обновления можно на странице блога Rust.