Rust 1.97.0: манглинг символов, вывод линкера и поддержка запрета предупреждений в Cargo
RustLangRu 9 минут назад Rust 1.97.0: манглинг символов, вывод линкера и поддержка запрета предупреждений в Cargo Простой 3 мин 377 Программирование * Системное программирование * Open source * Rust * Компиляторы *...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
В сфере искусственного интеллекта произошло заметное событие. RustLangRu 9 минут назад Rust 1. 0: манглинг символов, вывод линкера и поддержка запрета предупреждений в Cargo Простой 3 мин 377 Программирование * Системное программирование * Open source * Rust * Компиляторы * Дайджест Перевод Автор оригинала: The Rust Release Team Команда Rust рада объявить о новом выпуске Rust 1. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1. 0 вам достаточно выполнить команду:$ rustup update stable Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску 1. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly).
Технические детали
Пожалуйста, сообщайте обо всех встреченных вами ошибках. Что вошло в стабильный 1. 0Манглинг символов v0 включен по умолчаниюКогда Rust компилируется в объектные и бинарные файлы, у каждого элемента (функции, статики и т.
) глобально должно быть уникальное «имя символа» (symbol), которое его идентифицирует. Чтобы избежать конфликтов при линковке разных программ на Rust, компилятор применяет манглинг (кодирование имён символов): к исходному имени элемента добавляется дополнительный контекст — путь модуля, определяющий крейт, обобщённые параметры и другое. Исторически этот манглинг основывался на Itanium ABI, который (иногда) также используется в C++.
Новая схема манглинга устраняет ряд недостатков предыдущей:Инстанциации обобщённых параметров сохраняют свои значения, а не отслеживаются только через хешНесогласованности: не все части использовали Itanium ABI, поэтому по-прежнему был необходим собственный деманглинг (декодирование имён)Начиная с Rust 1. 59 компилятор поддерживает выбор специализированной для Rust схемы манглинга через -Csymbol-mangling-version=v0. С ноября 2025 года эта схема включена по умолчанию на nightly, а в версии 1.
Отраслевые последствия
97 — и в стабильном Rust. Устаревшую схему манглинга теперь можно включить только на nightly; в текущих планах полностью её убрать. Поддержка запрета предупреждений в CargoВ CI принято запрещать предупреждения.
Исторически это обычно делалось через RUSTFLAGS=-Dwarnings. 97 Cargo сам управляет тем, как предупреждения влияют на успешность сборки: либо заглушает их (уровень allow), либо показывает без провала сборки (по умолчанию warn), либо запрещает их (уровень deny). Поскольку поведение задаётся конфигурацией Cargo, использование этой возможности не инвалидирует кэш сборки — временно включить её легко.
Например, если предупреждения мешают шумом, пока вы правите ошибки после рефакторинга, можно выполнить CARGO_BUILD_WARNINGS=allow cargo check и временно их заглушить. В CI задания могут вместо этого выставлять CARGO_BUILD_WARNINGS=deny, чтобы запретить предупреждения.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





