Какая версия у rust

Обновлено: 07.07.2024

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

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

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

Как узнать текущую версию Rust?

Существует два способа узнать установленную версию игры. Первый способ – внутриигровой. Находясь в игре вам нужно посмотреть в нижнюю центральную часть экрана. Там вы увидите несколько цифр. Эти цифры и есть текущая версия.

Версия игры Rust

Версия игры Rust

Второй способ – через Steam. Особенность этого способа в том, что он подойдёт для всех игр, запуск которых осуществляется через Steam.

Продукт может содержать контент, не подходящий
для всех возрастов или для просмотра на работе.

“Contains violence and caveman themed nudity. In-game nudity, blood, player-made signs, voice chat and text chat can be disabled from the in-game options menu.”

Эта информация предназначена исключительно для проверки и не будет сохранена.

© 2021 Valve Corporation. Все права защищены. Все торговые марки являются собственностью соответствующих владельцев в США и других странах.

как узнать версию клиента раст

Для того чтобы узнать какая у вас версия клиента раст достаточно взглянуть в правый верхний угол . К примеру на картинке, что вы видите выше, версия игры rust от 31 декабря 2013 года. Чтобы быть в курсе последних версий rust и своевременно скачивать, посещайте наш раздел СКАЧАТЬ RUST.

Теперь вы знаете как узнать версию rust.

Понравился пост «как узнать версию клиента раст.» из категории Rust Статьи, Rust Гайды, хочешь поделиться мнением, задать вопрос? Прокомментируй пост! Считаешь данная публикация будет интересна другим? Поделись с друзьями! Нажми на кнопку социальной сети.

Большинство поддерживаемых на сегодняшний день игр регулярно выпускают обновления, в которых меняют какие-то элементы. Вместе с этими обновлениями меняется и версия игры. Facepunch Studios, разработчики игры Rust, выпускают глобальное обновление для своего проекта раз в месяц, а по мимо этого раз в неделю выпускают Community update, в которых появляются новые скины. Так же, в первые две недели после глобального обновления, можно ждать Hotfix – патч, в котором исправляются многие баги.

Как обновить игру? Что будет если пренебрегать обновлением?

Обновляется Rust через Steam. Если вышло какое-либо обновление, то вы не сможете запустить игру до тех пор, пока не обновите её. Но что будет, если на момент выхода обновления вы уже будете в игре? Ответ довольно прост – вы попросту не сможете зайти на какой-либо сервер. Если вы уже играли на сервере, то вы сможете играть до тех пор, пока сервер не будет отключён и обновлён.

Вы можете установить в клиенте Steam параметр, по которому Rust будет обновляться по мере доступности обновлений. То есть если вышло обновление, Rust сразу начнёт обновляться, игнорируя другие загрузки (Остальные загрузки будут приостановлены). Для включения данного параметра перейдите в свойства игры. Затем открывайте категорию «Обновления». Затем просто переключайте «Всегда обновлять эту игру» на «Автоматически обновлять в первую очередь».

Автоматическое обновление игры

Автоматическое обновление игры

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

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

Данную статью совместными усилиями перевели andreevlex, TelegaOvoshey, blandger, nlinker и funkill.


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

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

Константные обобщения (Const Generics MVP)

До этого выпуска Rust позволял параметризовать типы по времени жизни или по типам. Например, если бы мы хотели получить struct , которая является обобщённой для массива, мы бы написали следующее:

Если затем мы используем FixedArray<u8> , компилятор создаст мономорфизированную версию FixedArray , которая выглядит так:

Этот полезный функционал позволяет писать повторно используемый код без дополнительных затрат во время выполнения. Однако до этого выпуска у нас не было возможности легко объединять значения таких типов. Это наиболее заметно в массивах, где длина указывается в определении типа ( [T; N] ). Теперь в версии 1.51.0 вы можете писать код, который будет обобщённым для значений любого числа, типа bool или char ! (Использование значений struct и enum по-прежнему не стабилизировано.)

Это изменение позволяет создать массив, обобщённый по типу и длине. Давайте посмотрим на пример определения и то, как его можно использовать.

Теперь если мы используем Array<u8, 32> , компилятор создаст мономорфизированную версию Array , которая выглядит так:

Константные обобщения добавляют важный новый инструмент для разработчиков библиотек, чтобы создавать новые, мощные и безопасных API во время компиляции. Если вы хотите узнать больше о константных обобщениях, можете почитать статью в блоге «Const Generics MVP Hits Beta» для получения дополнительной информации об этой функции и её текущих ограничениях. Нам не терпится увидеть, какие новые библиотеки и API вы создадите!

Стабилизация array::IntoIter

Как часть стабилизации константных обобщений, мы также стабилизировали использующее их новое API — std::array::IntoIter . IntoIter позволяет вам создать поверх массива итератор по значению. Ранее не было удобного способа итерироваться по самим значениям, только по ссылкам.

Обратите внимание, что это было добавлено вместо .into_iter() как отдельный метод, так как сейчас оно ломает текущее соглашение о том, что .into_iter() относится к срезам по ссылочному итератору. Мы изучаем возможности в будущем сделать такой код более эргономичным.

Новый распознаватель функциональности Cargo

Управление зависимостями — сложная задача, и одна из самых сложных её частей — выбор версии зависимости, когда от неё зависят два разных пакета. Здесь учитывается не только номер версии, но и то, какая функциональность была включена или выключена для пакета. По умолчанию Cargo объединяет функциональные флаги (features) для одного пакета, если он встречается в графе зависимостей несколько раз.

Например, у вас есть зависимость foo с функциональными флагами A и B, которые используются пакетами bar and baz , но bar зависит от foo+A , а baz — от foo+B . Cargo объединит оба флага и соберёт foo как foo+AB . Выгода здесь в том, что foo будет собран только один раз и далее будет использован и для bar , и для baz .

Но у этого решения есть и обратная сторона. Что, если функциональный флаг подключён как build-зависимость, но не совместим с конечной целью сборки?

Это была давняя проблема в Cargo, и с этим выпуском появилась новая опция resolver в вашем Cargo.toml , где вы можете установить resolver="2" , чтобы попробовать новый подход к разрешению функциональных флагов. Вы можете ознакомиться с RFC 2957 для получения подробного описания поведения, которое можно резюмировать следующим образом.

  • Dev dependencies — когда пакет используется совместно как обычная зависимость и dev, возможности dev-зависимости включаются только в том случае, если текущая сборка включает dev-зависимости.
  • Host Dependencies — когда пакет совместно используется как обычная зависимость и зависимость сборки или процедурный макрос, features для нормальной зависимости сохраняются независимо от зависимости сборки или процедурного макроса.
  • Target dependencies — когда у пакета включены зависимые от платформы features, и он присутствует в графе сборки несколько раз, будут включены только features, подходящие текущей платформе сборки.

Хотя это может привести к компиляции некоторых пакетов более одного раза, это должно обеспечить гораздо более интуитивный опыт разработки при использовании функций с Cargo. Если вы хотите узнать больше, вы также можете прочитать раздел «Feature Resolver» в Cargo Book для получения дополнительной информации. Мы хотели бы поблагодарить команду Cargo и всех участников за их тяжёлую работу по разработке и внедрению нового механизма!

Разделение отладочной информации

Хоть это и нечасто освещается в релизах, команда Rust постоянно работает над сокращением времени компиляции. В этом выпуске вносится самое крупное улучшение за долгое время для Rust на macOS. Отладочная информация исходного кода содержится в собранном бинарнике, и за счет этого программа может дать больше информации о том, что происходит во время исполнения. Раньше в macOS отладочная информация собиралась в единую директорию .dSYM при помощи утилиты dsymutil , что могло занимать много времени и дискового пространства.

Сбор всей отладочной информации в эту директорию помогал найти её во время выполнения, особенно если бинарник перемещался. Однако у такого решения есть и обратная сторона: если вы сделали небольшое изменение в вашей программе, то dsymutil необходимо запустить над всем собранным бинарником, чтобы собрать директорию .dSYM . Иногда это могло сильно увеличить время сборки, особенно для крупных проектов, поскольку надо перебирать все зависимости, но это важный шаг, без которого стандартная библиотека Rust не знает, как загружать отладочную информацию на macOS.

Недавно обратная трассировка в Rust была переключена на другой бэкенд, который поддерживает загрузку отладочной информации без запуска dsymutil . Она была стабилизирована, чтобы убрать запуск dsymutil . Это может значительно ускорить сборки, которые включают отладочную информацию, и уменьшить размер занимаемого пространства. Мы не проводили обширных тестов, но у нас есть множество отчётов сборок, которые стали с таким поведением на macOS намного быстрее.

Вы можете включить новое поведение, установив флаг -Csplit-debuginfo=unpacked при запуске rustc или задав опцию split-debuginfo в unpacked раздела [profile] в Cargo. С опцией "unpacked" rustc будет оставлять объектные файлы ( .o ) в директории сборки вместо их удаления и пропустит запуск dsymutil . Поддержка бэктрейсов Rust достаточно умна, чтобы понять, как найти эти .o файлы. Такие инструменты, как lldb, также знают, как это делается. Это должно работать до тех пор, пока вам не понадобится переместить бинарники в другое место и сохранить отладочную информацию.

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

Итого: в этом выпуске было стабилизировано 18 новых методов для разных типов, например slice и Peekable . Одним из примечательных дополнений является стабилизация ptr::addr_of! и ptr::addr_of_mut! , которая позволяет вам создавать сырые указатели для полей без выравнивания. Ранее это было невозможно, так как Rust требовал, чтобы &/&mut были выровнены и указывали на инициализированные данные. Из-за этого преобразование &addr as *const _ приводило к неопределённому поведению, так как &addr должно быть выровнено. Теперь эти два макроса позволяют вам безопасно создать невыровненные указатели.

Следующие методы были стабилизированы:

Другие изменения

Участники 1.51.0

Множество людей собрались вместе, чтобы создать Rust 1.51.0. Мы не смогли бы сделать это без всех вас. Спасибо!

Читайте также: