Релиз Rust 1.90.0

18 сентября 2025 года состоялся релиз языка программирования Rust 1.90. Вклад в разработку этого обновления внесли 532 программиста со всего мира. Версия проекта Rust 1.80 вышла в июле 2024 года. Релиз Rust 1.85.0 (Rust 2024) состоялся 20 февраля. Выпуск Rust 1.87.0 и празднование десяти лет после выхода Rust 1.0 произошло в мае 2025 года. 26 июня вышла версия Rust 1.88.0. Версия Rust 1.89.0 опубликована в начале августа 2025 года.

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

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из‑за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т. п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

По информации OpenNET, основные изменения и дополнения в Rust 1.90 (Rust, Cargo и Clippy):

в Linux на компьютерах с архитектурой x86_64 для динамического связывания crate-пакетов по умолчанию задействован компоновщик LLD от проекта LLVM. Применение LLD по сравнению с компоновщиком BFD привело к повышению производительности связывания больших исполняемых файлов и проектов с большим объёмом отладочной информации, а также ускорению инкрементальной пересборки. В большинстве случаев LLD обратно совместим с BFD;

В пакетном менеджере cargo в команде «publish» реализована опция «—workspace», позволяющая автоматически опубликовать все пакты из выбранного рабочего пространства (набор пакетов, использующий один файл Cargo.lock и общий каталог результатов сборки), сохраняя порядок следования пакетов и учитывая зависимости между ними;

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

u{n}::checked_sub_signed;

u{n}::overflowing_sub_signed;

u{n}::saturating_sub_signed;

u{n}::wrapping_sub_signed;

impl Copy for IntErrorKind;

impl Hash for IntErrorKind;

impl PartialEq for CStr;

impl PartialEq for CStr;

impl PartialEq<Cow> for CStr;

impl PartialEq for CString;

impl PartialEq for CString;

impl PartialEq<Cow> for CString;

impl PartialEq for Cow;

impl PartialEq for Cow;

impl PartialEq for Cow.

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

::reverse;

f32::floor;

f32::ceil;

f32::trunc;

f32::fract;

f32::round;

f32::round_ties_even;

f64::floor;

f64::ceil;

f64::trunc;

f64::fract;

f64::round;

f64::round_ties_even.

для целевых платформ на базе библиотеки Musl, находящихся на третьем уровне поддержки, включено по умолчанию динамическое связывание: mips64-unknown‑linux‑muslabi64, powerpc64-unknown‑linux‑musl, powerpc‑unknown‑linux‑musl, powerpc‑unknown‑linux‑muslspe, riscv32gc‑unknown‑linux‑musl, s390x‑unknown‑linux‑musl и thumbv7neon‑unknown‑linux‑musleabihf;

целевая платформа «x86_64-apple‑darwin» переведена с первого уровня поддержки на второй (Apple планирует прекратить поддержку архитектуры x86_64). Первый уровень поддержки подразумевает формирование бинарных сборок, проведение досконального тестирования и предоставление наивысшей гарантии поддержки платформы — каждое изменение в компиляторе проверяется выполнением полного тестового набора. Второй уровень поддержки подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора.

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

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