Rust 1.91.0: полная поддержка 64-битной ARM на Windows и линт на висящие указатели
30.10.2025Вышел Rust 1.91.0. Цель aarch64-pc-windows-msvc повышена до первого уровня поддержки — теперь на 64-битных ARM-системах под Windows даются полные гарантии, включая прогон всех тестов. Добавлен предупреждающий линт на возврат сырых указателей на локальные переменные.
Первый уровень для ARM64 Windows
Первый уровень — это не только сборка: это ежедневный прогон всех тестов в CI на настоящем железе и отношение к любому сбою как к ошибке компилятора.
Заодно aarch64-pc-windows-gnullvm и x86_64-pc-windows-gnullvm подняты до второго уровня с инструментами; вспомогательные компоненты появятся позже.
Линт на висящие указатели
Проверка заимствований не даёт вернуть ссылку на освобождённое место — но сырые указатели она не отслеживает. Возврат *const T, указывающего на стековую переменную, приводил к использованию освобождённой памяти, и компилятор молчал.
Теперь это предупреждение по умолчанию. Сам по себе такой код не считается небезопасным — ошибка реальная, но инструмент пока только предупреждает.
Что стабилизировано
Path::file_prefix— имя файла без расширения,PathBuf::add_extensionиwith_added_extension;BTreeMap::extract_ifиBTreeSet::extract_if— удаление элементов во время обхода с безопасным доступом к коллекции между шагами;core::iter::chain— соединение двух итераторов в один;core::array::repeat— массив, заполненный повторением одного значения;- семейство строгих операций для целых, включая
strict_add_signed,strict_sub_signedиstrict_abs, — операции, которые в отладочной сборке паникуют при переполнении вместо того, чтобы оборачивать результат; Duration::from_minsиDuration::from_hours;AtomicPtr::fetch_ptr_addи подобные — атомарное изменение указателя по шагу;Cell::as_array_of_cells;str::ceil_char_boundaryиfloor_char_boundary— округление до границы символа;PanicHookInfo::payload_as_str,Ipv4Addr::from_octets,Ipv6Addr::from_segments, сравнения междуPathи строками.
В константных контекстах стабилизированы each_ref и each_mut для массивов, OsString::new, PathBuf::new и TypeId::of.
Оригинал
Announcing Rust 1.91.0 от 30 октября 2025 года
Упоминаний: 1 · Просмотров: 3