Rust был обновлен с новой версией, которая имеет два новых API наряду с улучшениями в const fn. Новый релиз совпадает с подробностями от команды Rust core о том, как она видит развитие Rust в будущем.
Rust был разработан, чтобы предложить безопасный, быстрый и параллельный язык без сборщика мусора. Для достижения этой цели он построен таким образом, что проблемы обнаруживаются во время компиляции, что означает, что его можно безопасно использовать для системного программирования. Rust изначально спонсировался Mozilla и предназначен для использования в ситуациях, включая встраивание в другие языки, написание программ с определенными требованиями к пространству и времени, а также написание низкоуровневого кода, такого как драйверы устройств и операционные системы.
Улучшения в const fn расширяют основные языковые функции, которые можно использовать в const fn. Список включает в себя if, if let и match, а также while, while let и цикл. Теперь вы также можете использовать операторы && и || в const fn, а также выполнять приведение к срезу. Разработчики говорят, что, хотя использование всего этого было возможно за пределами const fn, они добавляют много вычислительной мощности во время компиляции. Например, ящик const-sha1 может позволить вам вычислять хэши SHA-1 во время компиляции. Это привело к 40-кратному повышению производительности привязок Microsoft WinRT для Rust.
Еще одно улучшение связано с улучшением сообщений об ошибках, появившихся в мартовском выпуске Rust. Это вызвало панику в unwrap и связанных с ним функциях, и реализация не была стабильной. Rust 1.46 стабилизирует эту функцию. Если вы пишете такую функцию, как unwrap, которая может вызвать панику, теперь вы можете добавить атрибут #[track_caller], который будет использоваться средством форматирования паники по умолчанию в качестве местоположения в сообщении об ошибке.
В этом выпуске были стабилизированы два новых API — :Option::zip был расширен, чтобы иметь возможность архивировать несколько элементов, и vec::Drain::as_slice, который возвращает оставшиеся элементы этого итератора в виде среза.
Новый релиз был выпущен вскоре после объявления основной командой Rust и Mozilla о планах создания фонда Rust. Цель основной команды Rust-запустить первую итерацию фонда к концу года. До этого Mozilla объявила о планах реструктуризации компании и увольнения около 250 человек, в том числе активных участников проекта Rust и сообщества Rust.