[Open source, Программирование, Системное программирование, Компиляторы, Rust] Rust 1.49.0: aarch64 и улучшения во фреймворке тестирования (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Команда Rust рада сообщить о выпуске новой версии, 1.49.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.49.0 вам достаточно выполнить следующую команду:
rustup update stable
Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Что вошло в стабильную версию 1.49.0
В этом выпуске мы улучшили поддержку платформ и улучшили фреймворк тестирования. Смотрите подробные примечания к выпуску, чтобы узнать о других изменениях, не представленных в данном анонсе.
64-bit ARM Linux перешёл в Tier 1
Компилятор Rust поддерживает широкий спектр платформ, но команда Rust не может поддерживать все их на одном уровне. Для более явного указания уровня поддержки каждой платформы, мы используем многоуровневую систему:
- Tier 3 — технически, платформы поддерживаются компилятором, но мы не проверяли собирается ли на них код или проходят ли тесты, и мы не предоставляем каких-либо бинарных артефактов, как часть наших релизов.
- Платформы из Tier 2 гарантированно собираются, но мы не запускаем для них тесты: предоставляемые артефакты могут быть не рабочими или быть с багами.
- Для платформ из Tier 1 предоставляются наибольшие гарантии и мы запускаем все тесты для этих платформ для каждого изменения, влитого в компилятор. Также мы предоставляем для них собранные артефакты.
Начиная с Rust 1.49.0 платформа aarch64-unknown-linux-gnu передвигается на уровень поддержки Tier 1, предоставляя наши наибольшие гарантии для пользователей Linux, запущенных на 64-bit ARM системах! Мы ожидаем, что данное изменение принесёт пользу для всех: от встраиваемых систем до обычных компьютеров и серверов.
Это важный этап для нашего проекта, поскольку это первая не-x86 платформа, получившая Tier 1 поддержку: мы надеемся, этот шаг откроет путь для большего количества платформ, которые смогу достичь нашего высшего уровня поддержки.
Обратим внимание, что Android не затрагивается данным изменением, так как он представлен другой платформой, находящейся в Tier 2.
64-bit ARM macOS и Windows переходят в Tier 2
В Rust 1.49.0 ещё две платформы достигли Tier 2:
- Платформа aarch64-apple-darwin предоставляет поддержку Rust на системах Apple M1.
- aarch64-pc-windows-msvc предоставляет поддержку Rust на 64-bit ARM устройствах, работающих под Windows.
Теперь разработчики могут установить обе эти платформы при помощи rustup! Команда Rust не запускает тесты для данных платформ, так что они могут содержать баги или быть нестабильными.
Фреймворк для тестирования захватывает вывод из потоков
Встроенный в Rust фреймворк для тестирования довольно минималистичен, но это не значит, что его нельзя улучшить! Представьте, что тест выглядит примерно так:
#[test]
fn thready_pass() {
println!("fee");
std::thread::spawn(|| {
println!("fie");
println!("foe");
})
.join()
.unwrap();
println!("fum");
}
Вот как выглядел запуск этого теста до Rust 1.49.0:
❯ cargo +1.48.0 test
Compiling threadtest v0.1.0 (C:\threadtest)
Finished test [unoptimized + debuginfo] target(s) in 0.38s
Running target\debug\deps\threadtest-02f42ffd9836cae5.exe
running 1 test
fie
foe
test thready_pass ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests threadtest
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Вы можете заметить, что вывод из потоков напечатался и смешался с выводом самого фреймворка. Было бы неплохо, если бы каждый println! работал также, как тот, что напечатал "fum"? Что ж, таково поведение в Rust 1.49.0:
❯ cargo test
Compiling threadtest v0.1.0 (C:\threadtest)
Finished test [unoptimized + debuginfo] target(s) in 0.52s
Running target\debug\deps\threadtest-40aabfaa345584be.exe
running 1 test
test thready_pass ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests threadtest
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Но не расстраивайтесь, если тест упадёт, вы увидите всё, что он хотел вывести. Добавив в конец теста panic!, вы можете увидеть примерно такую ошибку:
❯ cargo test
Compiling threadtest v0.1.0 (C:\threadtest)
Finished test [unoptimized + debuginfo] target(s) in 0.52s
Running target\debug\deps\threadtest-40aabfaa345584be.exe
running 1 test
test thready_pass ... FAILED
failures:
---- thready_pass stdout ----
fee
fie
foe
fum
thread 'thready_pass' panicked at 'explicit panic', src\lib.rs:11:5
В частности, средство запуска тестов обеспечивает захват вывода и сохраняет его в случае сбоя теста.
Изменения в стандартной библиотеке
В Rust 1.49.0 были стабилизированы следующие 3 функции:
И ещё две функции стали const:
Смотрите подробные примечания к выпуску для более детальной информации.
Другие изменения
Синтаксис, пакетный менеджер Cargo и анализатор Clippy также претерпели некоторые изменения.
Участники 1.49.0
Множество людей собрались вместе, чтобы создать Rust 1.49.0. Мы не смогли бы сделать это без всех вас. Спасибо!
От переводчиков
С любыми вопросами по языку Rust вам смогут помочь в русскоязычном Телеграм-чате или же в аналогичном чате для новичковых вопросов. Если у вас есть вопросы по переводам или хотите помогать с ними, то обращайтесь в чат переводчиков.
Так же можете поддержать нас на OpenCollective.
Данную статью совместными усилиями перевели andreevlex, funkill, ozkriff, blandger и fan-tom.
===========
Источник:
habr.com
===========
===========
Автор оригинала: The Rust Release Team
===========Похожие новости:
- [Программирование, Разработка игр, Изучение языков] Обзор GameLisp: нового языка для написания игр на Rust
- Выпуск языка программирования Rust 1.49
- [Разработка веб-сайтов, Программирование, Java] Пять причин, по которым следует использовать Apache Wicket (перевод)
- [Программирование, Реверс-инжиниринг, Читальный зал, История IT, Софт] Причуды обратной совместимости
- [Python, Программирование, Data Mining, Алгоритмы, Машинное обучение] ИИ итоги уходящего 2020-го года в мире машинного обучения
- [Программирование, Системное программирование, Промышленное программирование, Rust] Так ли токсичен синтаксис Rust?
- [Промышленное программирование, Программирование микроконтроллеров] OPC UA для CPU S7-1200 (FW4.4). Настройка сервера
- [Python, Программирование, Машинное обучение] Обеспечить январь настроением
- [Open source, Отладка, Angular, Визуализация данных, Rust] Легкие обновления
- [Программирование, Робототехника, Игры и игровые приставки, Логические игры, Электроника для начинающих] 5 игрушек, чтобы ребёнок почувствовал программирование
Теги для поиска: #_open_source, #_programmirovanie (Программирование), #_sistemnoe_programmirovanie (Системное программирование), #_kompiljatory (Компиляторы), #_rust, #_clippy, #_cargo, #_rustc, #_rustdoc, #_rustfmt, #_rustfix, #_release, #_stable, #_jazyki_programmirovanija (языки программирования), #_stabilnaja_versija (стабильная версия), #_vypusk_versij (выпуск версий), #_sistemnoe_programmirovanie (системное программирование), #_novosti_tehnologij (новости технологий), #_perevod (перевод), #_open_source, #_programmirovanie (
Программирование
), #_sistemnoe_programmirovanie (
Системное программирование
), #_kompiljatory (
Компиляторы
), #_rust
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:08
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Команда Rust рада сообщить о выпуске новой версии, 1.49.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.49.0 вам достаточно выполнить следующую команду: rustup update stable
Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Что вошло в стабильную версию 1.49.0 В этом выпуске мы улучшили поддержку платформ и улучшили фреймворк тестирования. Смотрите подробные примечания к выпуску, чтобы узнать о других изменениях, не представленных в данном анонсе. 64-bit ARM Linux перешёл в Tier 1 Компилятор Rust поддерживает широкий спектр платформ, но команда Rust не может поддерживать все их на одном уровне. Для более явного указания уровня поддержки каждой платформы, мы используем многоуровневую систему:
Начиная с Rust 1.49.0 платформа aarch64-unknown-linux-gnu передвигается на уровень поддержки Tier 1, предоставляя наши наибольшие гарантии для пользователей Linux, запущенных на 64-bit ARM системах! Мы ожидаем, что данное изменение принесёт пользу для всех: от встраиваемых систем до обычных компьютеров и серверов. Это важный этап для нашего проекта, поскольку это первая не-x86 платформа, получившая Tier 1 поддержку: мы надеемся, этот шаг откроет путь для большего количества платформ, которые смогу достичь нашего высшего уровня поддержки. Обратим внимание, что Android не затрагивается данным изменением, так как он представлен другой платформой, находящейся в Tier 2. 64-bit ARM macOS и Windows переходят в Tier 2 В Rust 1.49.0 ещё две платформы достигли Tier 2:
Теперь разработчики могут установить обе эти платформы при помощи rustup! Команда Rust не запускает тесты для данных платформ, так что они могут содержать баги или быть нестабильными. Фреймворк для тестирования захватывает вывод из потоков Встроенный в Rust фреймворк для тестирования довольно минималистичен, но это не значит, что его нельзя улучшить! Представьте, что тест выглядит примерно так: #[test]
fn thready_pass() { println!("fee"); std::thread::spawn(|| { println!("fie"); println!("foe"); }) .join() .unwrap(); println!("fum"); } Вот как выглядел запуск этого теста до Rust 1.49.0: ❯ cargo +1.48.0 test
Compiling threadtest v0.1.0 (C:\threadtest) Finished test [unoptimized + debuginfo] target(s) in 0.38s Running target\debug\deps\threadtest-02f42ffd9836cae5.exe running 1 test fie foe test thready_pass ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Doc-tests threadtest running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Вы можете заметить, что вывод из потоков напечатался и смешался с выводом самого фреймворка. Было бы неплохо, если бы каждый println! работал также, как тот, что напечатал "fum"? Что ж, таково поведение в Rust 1.49.0: ❯ cargo test
Compiling threadtest v0.1.0 (C:\threadtest) Finished test [unoptimized + debuginfo] target(s) in 0.52s Running target\debug\deps\threadtest-40aabfaa345584be.exe running 1 test test thready_pass ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests threadtest running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Но не расстраивайтесь, если тест упадёт, вы увидите всё, что он хотел вывести. Добавив в конец теста panic!, вы можете увидеть примерно такую ошибку: ❯ cargo test
Compiling threadtest v0.1.0 (C:\threadtest) Finished test [unoptimized + debuginfo] target(s) in 0.52s Running target\debug\deps\threadtest-40aabfaa345584be.exe running 1 test test thready_pass ... FAILED failures: ---- thready_pass stdout ---- fee fie foe fum thread 'thready_pass' panicked at 'explicit panic', src\lib.rs:11:5 В частности, средство запуска тестов обеспечивает захват вывода и сохраняет его в случае сбоя теста. Изменения в стандартной библиотеке В Rust 1.49.0 были стабилизированы следующие 3 функции: И ещё две функции стали const: Смотрите подробные примечания к выпуску для более детальной информации. Другие изменения Синтаксис, пакетный менеджер Cargo и анализатор Clippy также претерпели некоторые изменения. Участники 1.49.0 Множество людей собрались вместе, чтобы создать Rust 1.49.0. Мы не смогли бы сделать это без всех вас. Спасибо! От переводчиков С любыми вопросами по языку Rust вам смогут помочь в русскоязычном Телеграм-чате или же в аналогичном чате для новичковых вопросов. Если у вас есть вопросы по переводам или хотите помогать с ними, то обращайтесь в чат переводчиков. Так же можете поддержать нас на OpenCollective. Данную статью совместными усилиями перевели andreevlex, funkill, ozkriff, blandger и fan-tom. =========== Источник: habr.com =========== =========== Автор оригинала: The Rust Release Team ===========Похожие новости:
Программирование ), #_sistemnoe_programmirovanie ( Системное программирование ), #_kompiljatory ( Компиляторы ), #_rust |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:08
Часовой пояс: UTC + 5