Команда Rust рада сообщить о новой версии языка — 1.90.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.90.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что стабилизировано в 1.90.0

Теперь LLD — линковщик по умолчанию на x86_64-unknown-linux-gnu

Целевая платформа x86_64-unknown-linux-gnu теперь будет по умолчанию использовать линковщик LLD для сборки крейтов Rust. Это должно улучшить производительность линковки по сравнению со стандартным линковщиком Linux (BFD), особенно при работе с большими исполняемыми файлами, файлами с большим объёмом отладочной информации, а также при инкрементальной пересборке.

Для абсолютного большинства случаев LLD должен быть обратно совместим с BFD, и вы не заметите никаких различий, кроме сокращённого времени компиляции. Однако если вы всё же столкнётесь с новыми проблемами при компоновке, вы всегда можете отключить LLD, используя флаг компилятора -C linker-features=-lld. Его можно добавить либо в привычную переменную окружения RUSTFLAGS, либо в файл конфигурации проекта .cargo/config.toml, например так:

[target.x86_64-unknown-linux-gnu]
rustflags = ["-Clinker-features=-lld"]

Если вы столкнётесь с какими-либо проблемами, связанными с линковщиком LLD, — пожалуйста, сообщите нам. Более подробную информацию о переходе на LLD и механизме отключения, а также некоторые результаты тестов производительности вы можете прочитать здесь.

Cargo получает нативную поддержку публикации рабочих пространств

Теперь поддерживается команда cargo publish --workspace, которая автоматически публикует все крейты в рабочем пространстве в правильной последовательности (с учётом зависимостей между ними).

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

Нативная интеграция позволяет проверке публикации в Cargo запускать сборку всех крейтов, предназначенных для публикации, так, как если бы они уже были опубликованы, в том числе во время «тестовых прогонов». Обратите внимание, что публикации по-прежнему не являются атомарными — сетевые ошибки или сбои на стороне сервера могут привести к частичной публикации рабочего пространства.

Понижение x86_64-apple-darwin до Tier 2 с инструментами хоста

GitHub скоро прекратит предоставлять бесплатные раннеры macOS x86_64 для публичных репозиториев. Apple также анонсировала свои планы по прекращению поддержки архитектуры x86_64.

В соответствии с этими изменениями, мы понижаем таргет x86_64-apple-darwin с Tier 1 с инструментами хоста до Tier 2 с инструментами хоста. Это означает, что для этого таргета, включая такие инструменты, как rustc и cargo, будет гарантирована сборка, но не гарантируется прохождение нашего автоматизированного набора тестов.

Для пользователей это изменение не окажет немедленного влияния. Сборки как стандартной библиотеки, так и компилятора по-прежнему будут распространяться проектом Rust для использования через rustup или альтернативные методы установки, пока таргет остаётся в Tier 2. Со временем, вероятно, уменьшение тестового покрытия для этого таргета приведёт к поломкам или потере совместимости без дополнительных объявлений.

Стабилизированные API

Следующие API теперь можно использовать в контексте const:

Поддержка платформ

  • x86_64-apple-darwin теперь на 2 уровне поддержки

Дополнительную информацию о уровнях поддержки платформ в Rust можно найти на странице поддержки.

Прочие изменения

Проверьте всё, что изменилось в Rust, Cargo и Clippy.

Кто работал над 1.90.0

Многие люди собрались вместе, чтобы создать Rust 1.90.0. Без вас мы бы не справились. Спасибо!

От переводчиков

С любыми вопросами по языку Rust вам смогут помочь в русскоязычном Телеграм-чате или же в аналогичном чате для новичковых вопросов. Если у вас есть вопросы по переводам или хотите помогать с ними, то обращайтесь в чат переводчиков.

Комментарии (0)


  1. Dhwtj
    20.09.2025 09:52

    В результате, лучше и проще совместимость с Си на уровне FFI, проще безопасно работать с индексами и смещениями

    Я так понял