Rust 1.97.0: своя схема манглинга символов дошла до стабильной ветки

09.07.2026

Вышел Rust 1.97.0. Собственная схема манглинга символов Rust включена по умолчанию на стабильной ветке, а Cargo научился управлять тем, считать ли предупреждения причиной отказа сборки.

Схема манглинга на стабильной ветке

Возможность выбрать схему v0 существовала с 1.59, а с ноября 2025 года она была включена по умолчанию в ночных сборках. Теперь — и в стабильных.

Причина в том, что унаследованная схема от C++ теряла информацию об инстанцированиях дженерик-параметров и была внутренне непоследовательной. Собственная схема кодирует её полностью и не зависит от внутреннего устройства компилятора. Старая схема остаётся доступной только на ночных сборках, и план — убрать её полностью.

Предупреждения как причина отказа сборки

В Cargo появилась настройка, управляющая тем, как предупреждения влияют на успех сборки: заглушать их, показывать без отказа или превращать в отказ.

Зачем это нужно: до сих пор единственным способом запретить предупреждения был флаг компилятора -Dwarnings, но он же сбрасывает кеш сборки. Новая настройка конфигурации кеш не трогает — отсюда возможность временно включить строгий режим, прогнать сборку и вернуть обратно.

Сообщения линковщика больше не прячутся

rustc перестал скрывать вывод компоновщика при успешной сборке. Теперь сообщения линковщика приходят как предупреждение нового линта. Побочный эффект: на ночных сборках нашли и починили несколько дефектов, которые до этого просто не были видны.

Ложные срабатывания глушатся через [lints.rust] linker_messages = "allow".

Что стабилизировано

Методы поиска битов у целых чисел: highest_one, lowest_one, isolate_highest_one, isolate_lowest_one и bit_width — то же самое для ненулевых типов. Раньше это приходилось делать вручную через перебор или битовые операции.

Также: значение по умолчанию для повторяемого массива и признак управляющего символа в константных контекстах.

На что смотреть

Смена схемы манглинга меняет имена символов в собранном файле. Если проект сравнивает имена функций текстом, разбирает вывод утилит или опирается на имена в декораторах, это нужно проверить.

Оригинал

Announcing Rust 1.97.0 от 9 июля 2026 года

Упоминаний: 1 · Просмотров: 3