Релиз Rust 1.91.0

30 октября 2025 года состоялся релиз языка программирования Rust 1.91. Вклад в разработку этого обновления внесли 235 программистов со всего мира. Предыдущая стабильная версия решения состоялась в середине сентября. Версия проекта Rust 1.80 вышла в июле 2024 года. Релиз Rust 1.85.0 (Rust 2024) состоялся 20 февраля. Выпуск Rust 1.87.0 и празднование десяти лет после выхода Rust 1.0 произошло в мае 2025 года.

Язык Rust сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Основные изменения и дополнения в Rust 1.90 (Rust, Cargo и Clippy):

повышение статуса платформы aarch64-pc-windows-msvc до уровня Tier-1. Это выводит поддержку Windows на архитектуре ARM в языке программирования Rust на самый высокий уровень, наравне с другими распространенными операционными системами и архитектурами. Статус Tier-1 для Windows на 64-битной архитектуре ARM/AArch64 в Rust 1.91 также означает доступность предварительно собранных бинарных файлов для новых версий;

порты aarch64-pc-windows-gnullvm и x86_64-pc-windows-gnullvm получили статус Tier-2 с поддержкой инструментов разработки;

теперь проверяется код на наличие висячих указателей на локальные переменные (now lints against dangling raw pointers from local variables);

добавлено lint-предупреждение «integer_to_ptr_transmutes», информирующее о преобразовании целых чисел в указатели с помощью функции std::mem::transmute;

в пакетном менеджере Cargo стабилизирована поддержка параметра «build.build-dir», определяющего каталог для хранения временных сборочных артефактов, создаваемых cargo и rustc на этапе сборки;

для ABI sysv64, win64, efiapi и aapcs стабилизирована поддержка объявления функций с переменным числом аргументов в стиле C;

стабилизирована поддержка inline-ассемблера для архитектуры LoongArch32.

компилятор обновлён до ветки LLVM 21;

в разряд стабильных переведена новая порция API:

Path::file_prefix

AtomicPtr::fetch_ptr_add

AtomicPtr::fetch_ptr_sub

AtomicPtr::fetch_byte_add

AtomicPtr::fetch_byte_sub

AtomicPtr::fetch_or

AtomicPtr::fetch_and

AtomicPtr::fetch_xor

{integer}::strict_add

{integer}::strict_sub

{integer}::strict_mul

{integer}::strict_div

{integer}::strict_div_euclid

{integer}::strict_rem

{integer}::strict_rem_euclid

{integer}::strict_neg

{integer}::strict_shl

{integer}::strict_shr

{integer}::strict_pow

i{N}::strict_add_unsigned

i{N}::strict_sub_unsigned

i{N}::strict_abs

u{N}::strict_add_signed

u{N}::strict_sub_signed

PanicHookInfo::payload_as_str

core::iter::chain

u{N}::checked_signed_diff

core::array::repeat

PathBuf::add_extension

PathBuf::with_added_extension

Duration::from_mins

Duration::from_hours

impl PartialEq for PathBuf

impl PartialEq for PathBuf

impl PartialEq for Path

impl PartialEq for Path

impl PartialEq for String

impl PartialEq for String

impl PartialEq for str

impl PartialEq for str

Ipv4Addr::from_octets

Ipv6Addr::from_octets

Ipv6Addr::from_segments

impl Default for Pin<Box> where Box: Default, T: ?Sized

impl Default for Pin<Rc> where Rc: Default, T: ?Sized

impl Default for Pin<Arc> where Arc: Default, T: ?Sized

Cell::as_array_of_cells

u{N}::carrying_add

u{N}::borrowing_sub

u{N}::carrying_mul

u{N}::carrying_mul_add

BTreeMap::extract_if

BTreeSet::extract_if

impl Debug for windows::ffi::EncodeWide

str::ceil_char_boundary

str::floor_char_boundary

impl Sum for Saturating

impl Sum for Saturating

impl Product for Saturating

impl Product for Saturating

признак «const» применён в функциях:

::each_ref

::each_mut

OsString::new

PathBuf::new

TypeId::of

ptr::with_exposed_provenance

ptr::with_exposed_provenance_mut

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии