Вихід Rust 1.97: нова стабільна версія мови програмування
Вихід Rust 1.97: нова стабільна версія мови програмування
Команда Rust анонсувала вихід Rust 1.97, останньої стабільної версії мови програмування. Однією з основних змін є те, що символічна мангling-схема v0 тепер увімкнена за замовчуванням у стабільному Rust.
Зміни в символічній манглинг-схемі
Раніше Rust використовував підхід манглінгу на основі Itanium ABI, який також використовує C++. Ця схема мала недоліки для Rust, такі як відсутність прямого збереження інстанціацій загальних параметрів і необхідність кастомного деманглінгу в деяких випадках через непослідовності.
Нова схема v0 є специфічною для Rust і була доступна як опція з моменту виходу Rust 1.59 за допомогою прапора компілятора -Csymbol-mangling-version=v0. Вона також була за замовчуванням на nightly з листопада 2025 року. Тепер з Rust 1.97 вона стає стандартною для стабільних збірок.
Поліпшення в Cargo
Ще однією корисною зміною є те, що Cargo отримав вбудовану підтримку управління тим, як попередження впливають на успішність збірки. До цього часу проекти зазвичай використовували RUSTFLAGS=-Dwarnings у CI-середовищах, щоб перетворювати попередження на помилки. З Rust 1.97 Cargo може керувати цією поведінкою безпосередньо.
Розробники можуть тимчасово зупиняти попередження під час виправлення інших помилок, запустивши: CARGO_BUILD_WARNINGS=allow cargo check. У CI проекти можуть використовувати: CARGO_BUILD_WARNINGS=deny.
Цей підхід має ключову перевагу: оскільки Cargo управляє поведінкою, кеш збірки залишається дійсним. Це спрощує налаштування попереджень тимчасово без тригера непотрібних повторних збірок.
Оновлення в обробці виходу компілятора
Rust 1.97 також оновлює обробку виходу компілятора rustc. Раніше rustc приховував повідомлення компоновника, коли компоновка проходила успішно, що могло приховувати реальні проблеми. Тепер компілятор за замовчуванням відображає вихід stderr компоновника як попередження.
Наприклад, якщо компоновник повідомляє, що ігнорує застаріле оптимізаційне налаштування, rustc тепер показує це як попередження, а не приховує. Команда Rust зазначає, що кілька дефектів вже були виправлені на nightly завдяки цій зміні.
Нова лінтація повідомлень компоновника
Крім того, нова лінтація linker_messages увімкнена за замовчуванням, але обробляється окремо від загальної групи попереджень. Згідно з розробниками, це розрізнення є навмисним, оскільки вихід компоновника варіюється між платформами і менш контрольований, ніж стандартна діагностика компілятора. Розробники можуть приглушити небажані попередження компоновника через секцію лінтів у Cargo.toml.
Нові стабілізовані API в Rust 1.97
Знову ж таки, як і в кожному стабільному випуску Rust, версія 1.97 також містить нові стабілізовані API. Серед них Default for RepeatN, Copy for ffi::FromBytesUntilNulError, Send for std::fs::File на UEFI та кілька методів цілих чисел, таких як isolate_highest_one і bit_width. Крім того, char::is_control тепер стабільний у контекстах константи.
Для отримання додаткової інформації, будь ласка, ознайомтеся з анонсом. Як завжди, існуючі користувачі Rust можуть оновитися через rustup, запустивши rustup update stable.




