Мининовости
Мелкие изменения: стабилизация API, новые методы и impl, правки Cargo.
В редакции Rust 2024 меняется поведение impl Trait в позиции возврата по умолчанию: правила захвата упрощаются, чтобы лучше соответствовать ожиданиям. Добавляется и гибкий синтаксис для явного управления захватом.
Открыт RFC «Generic Integers V2», возвращающийся к идее обобщённых целочисленных типов.
В Redox отказались от прежнего формата путей схем (scheme-name:resource) в пользу Unix-формата /scheme/scheme-name/resource. bjorn3 перевёл большинство системных компонентов на новый формат и удалил код со старым.
Открыт RFC, разрешающий применять #[derive(Default)] к варианту перечисления с полями, помечая его как вариант по умолчанию.
Открыт RFC об упрощении лёгких клонов — в том числе переноса замыканий и async-блоков без лишней обёртки.
Рабочая группа по async объявила, что RFC 3668 «Async Closures» одобрен Lang team, и приглашает тестировать async-замыкания на nightly Rust. В посте объясняется, зачем они нужны, какие есть ограничения сейчас и как их попробовать.
Принят RFC о named path bases в Cargo: в конфигурационных файлах вводятся общие базовые каталоги, к которым можно относить пути зависимостей.
Открыт RFC, исключающий dev-зависимости из индекса crates.io.
Открыт RFC со структурированным синтаксисом зависимостей признаков (features) от пакетов в Cargo.toml.
Форк Rust обновлён до версии от 2024-05-11 (починены многие программы и крейты), нативный компилятор Rust приведён в соответствие кросс-компилятору, нативный LLVM — к версии 18.1.4, а форк Mesa3D обновлён до стабильной 24.0.8.
Открыт RFC, разрешающий реализовывать трейты для типов вне крейта, где объявлен трейт или тип, — с явным разрешением.
Принят RFC, вводящий тип MaybeDangling: ссылки и Box, завёрнутые в него, не обязаны удовлетворять требованиям, зависящим от памяти — например «разыменуемость» и noalias.
На nightly rustc по умолчанию использует rust-lld для цели x86_64-unknown-linux-gnu — это заметно сокращает время линковки.
Открыт RFC, разрешающий объявлять статическую переменную в одном крейте, а определять её значение — в другом.
Открыт RFC, разрешающий явно указывать, для какого типа применяется impl Trait в позиции аргумента.