Мининовости
Мелкие изменения: стабилизация API, новые методы и impl, правки Cargo.
Открыт RFC, предлагающий вынести core::marker::Freeze в границы типов — признак того, что значение можно перемещать в read-only память без внутренней изменяемости.
Открыт RFC, разрешающий объявлять функцию в одном крейте, но реализовывать — в другом.
Открыт RFC о блоках тел функций — записи определения функции через = { .. }.
Открыт RFC, предлагающий писать async T и gen T в позициях, где сейчас допустим impl Trait — как эквиваленты impl Future<Output = T> и impl Iterator<Item = T>.
Начиная с Rust 1.80 (и nightly-2024-05-05) каждый достижимый #[cfg] автоматически проверяется на соответствие ожидаемым именам и значениям конфигурации. Это помогает ловить опечатки в условиях сборки.
Принят RFC, который с редакции 2024 резервирует запись строкового литерала #"foo"#. Сами литералы пока не вводятся — синтаксис просто занят под будущие изменения.
nice_graphic написал LSP-сервер для скриптового языка Ion, используемого в Redox.
После стабилизации WASI 0.2 Rust вводит отдельные цели: в 1.78 появляются wasm32-wasip1 (Tier 2) и wasm32-wasip2 (Tier 3). wasm32-wasip1 — по сути переименование прежней wasm32-wasi.
Устранено давнее расхождение с C в выравнивании 128-битных целых на x86-32 и x86-64: изменения входят в Rust 1.77 и 1.78. У исправления есть последствия для кода, полагающегося на прежнее выравнивание, — их стоит учесть при обновлении.
Принят RFC, добавляющий в Rust семейство флагов и атрибутов patchable-function-entry, уже известных компиляторам clang и gcc. Они оставляют в начале и конце функции пустые слоты, куда можно вставить обработчик.
Открыт RFC, по которому cargo install по умолчанию использует lockfile устанавливаемого пакета, а не собирает с последними версиями зависимостей.
С выпуском Rust 1.78 (май 2024) минимальные требования для Tier-1-инструментов под Windows повышаются: минимальной поддерживаемой версией становится Windows 10 для целей *-pc-windows-*.
Открыт RFC с дезигнатором self: -> Type, обозначающим разыменование указателя в самоподобном типе.
Открыт RFC с оператором is, который совмещает проверку шаблона и привязку значений.
Открыт RFC, разрешающий вложенным функциям объявлять собственные параметры типов с областью видимости, ограниченной этой функцией.