LINUX.ORG.RU

Rust 1.49

 


2

6

Опубликован релиз 1.49 языка программирования Rust.

Компилятор Rust поддерживает широкий спектр систем, но команда Rust не может обеспечить одинаковый уровень поддержки для всех из них.

Чтобы чётко обозначить, насколько поддерживается каждая система, используется система уровней:

  • Уровень 3. Система поддерживается компилятором, но не предоставляются готовые сборки компилятора и не прогоняются тесты.

  • Уровень 2. Предоставляются готовые сборки компилятора, но не прогоняются тесты

  • Уровень 1. Предоставляются готовые сборки компилятора и проходят все тесты.

Список платформ и уровней поддержки: https://doc.rust-lang.org/stable/rustc/platform-support.html

Новое в релизе 1.49

  • Поддержка 64-bit ARM Linux переведена на уровень 1 (первая система, отличная от систем на x86, получившая поддержку уровня 1)

  • Поддержка 64-bit ARM macOS переведена на уровень 2.

  • Поддержка 64-bit ARM Windows переведена на уровень 2.

  • Добавлена поддержка MIPS32r2 на уровне 3. (используется для микроконтроллеров PIC32)

  • Встроенный тестовый фреймворк теперь выводит консольный вывод, сделанный в другом потоке.

  • Перенесены из Nightly в Stable три функции стандартной библиотеки:

  • Две функции теперь помечены const (доступны на этапе компиляции):

  • Повышены требования к минимальной версии LLVM, теперь это LLVM9 (было LLVM8)

>>> Подробности

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от vlad9486

6 лет. Не представляю зачем нужно больше

Знаю место, успешно эксплуатирующее код с 2000 года(когда был куплен продукт, т.ч. ему лет на несколько больше). Правда простой С, зато без варнингов там мягко говоря никогда не было. И даты выбрасывания до сих пор не видно.

DonkeyHot ★★★★★ ()
Ответ на: комментарий от alienclaster

быть усложненными к использованию «плохие» практики.

только это большой вопрос: плохое/хорошее

однажды какой-то кретин назвал goto плохой практикой

rsync ★★ ()
Ответ на: комментарий от rsync

однажды какой-то кретин назвал goto плохой практикой

Но там ведь был контекст для такого заявления, а именно - структурное программирование как стиль.

alienclaster ★★★ ()
Ответ на: комментарий от rsync

вот посикс сокеты это полезное или вредное?

Хороший пример. В идеале в языке должно быть мощное, кросс-платформенное, асинхронное сетевое API с zero-cost abstractions.

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

vertexua ★★★★☆ ()
Ответ на: комментарий от moonmadness

О боги, да всем насрать на эту высосанную из пальца «проблему». А если тебе нет, держи, пердолься на здоровье ¯_(ツ)_/¯

anonymous-angler ()
Ответ на: комментарий от best_of_goyim

А тангенсоиды под конкретную задачу разрабатывают новый камень))

saibogo ★★★ ()
Ответ на: комментарий от vlad9486

Многие заводы, АЭС, крупные промышленные предприятия и просто крупные предприятия в принципе не рассматривают программные продукты, чьё время жизни меньше 10-15 лет. У того же БМВ используется ПО, написанное в 60-е годы прошлого столетия, просто это ПО (написанное на фортране) рассчитывает критично важные компоненты, от которых зависят человеческие жизни. И такие вещи не будут переписывать каждые 5 лет.

ma1uta ★★ ()
Ответ на: комментарий от ma1uta

Они переписывать не будут по одно простой причине - деньги. Переписывание требует вложение денег, а новый софт дополнительных денег не принесёт. Потому и сидят на софте написаном 30-40 лет назад. И даже громоздят виртуалки старого железа на новые системы, чтобы не переписывать старый код.

Всё остальное фантазии фанатиков и школьников.

WatchCat ★★★★★ ()
Ответ на: комментарий от WatchCat

Они переписывать не будут по одно простой причине - деньги.

Не только деньги. Причём я даже намекнул об этом в своём сообщении.

ma1uta ★★ ()
Ответ на: комментарий от ma1uta

И такие вещи не будут переписывать каждые 5 лет.

Ну старые стандарты(редакции) остаются в компиляторах. По крайней мере в Rust.

Вот Swift в этом совсем плох. В текущем swift 5.3 доступен откат максимум к swift 4. (https://docs.swift.org/swift-book/GuidedTour/Compatibility.html)

А например, в OS X El Capitan(2015 года OS, последняя для многих маков на Core 2 Duo) доступен только Swift 3 :(

fsb4000 ★★★★ ()

поддерживает широкий спектр систем, но команда Rust не может обеспечить одинаковый уровень

Это как «мы даже умеем делать пиццу, но пока только из баклажанов». СМЫСЛ?? Люди не должны лазить по вашим дебрям, чтобы узнать, почему на их платформе ниструя не работает. Есть 100% поддержка - заявляем. Нет поддержки - молчим в тряпочку и пилим-пилим!

matumba ★★★★★ ()
Ответ на: комментарий от fsb4000

У Apple в принципе нет понятия о совместимости. Все и так сидят на последней версии.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от fsb4000

Warning-free code on edition N must compile on edition N+1 and have the same behavior.

А для deprecated фич есть аналогичные гаранитии, скажем, то что объявлено deprecated в 2019 не будет компилироваться только компилятором со следующей редaкции ( 2021 ), а не послезавтра?

seiken ★★★★★ ()
Ответ на: комментарий от Lrrr

Почему в среде линуксоидов его не выкидывают на мороз, как сишарп какой-нибудь?

Так и сишарп не сказать, чтобы на мороз выкидывают. Хотя в свете окукливания MonoDevelop не очень понятно, какие инструменты для программирования на нём использовать.

hobbit ★★★★★ ()
Ответ на: комментарий от WatchCat

Это да. А переписывание ради переписывания не нужно.

ma1uta ★★ ()
Ответ на: комментарий от Siborgium

Осталось теперь объяснить зачем нужны трёх этажные темплейты. Ты же понимаешь для людей не посвященных все эти аргументы звучат непонятно и следовательно как срач. Например чтобы создать тупль из нескольких типов, можно использовать вложенные тупли. Ну как делали в плюсах до появления вариадик темплейтов или хаскель. Другая фишка плюсовых темплейтов что они динамически типизированы. Т.е тайпчекаюстя уже после инстанциирования. Т.е. можно писать лаконично как в питоне, но компилируется долго и ошибки на километр. С другой стороны концепты чуть должны исправить это дело. И сделать паттерн матчинг без уродсково сфинае. Вот паттерн матчинг по дженерикам в расте слабоват, по сравнению с хаскель или цпп. Но как это все формализировать я не знаю, потому что на практике в расте можно и через макрос накостылить в каком то случае. Т.е. чтобы ощутить разницу надо что то гораздо сложнее хелло вордов сваять в обоих языках. Вряд ли лоровские комментаторы достаточно пощупали обе технологии.

technic93 ()
Ответ на: комментарий от hobbit

Хотя в свете окукливания MonoDevelop…

Что-то не понял, не слышал, как там MonoDevelop окуклился? Ссылка есть, где про это почитать?

cluge ()
Ответ на: комментарий от cluge

А ты попробуй собери: https://github.com/mono/monodevelop

Последние версии, которые собираются не на маке это 7.8.x от апреля 2019 года.

Васяны форки создали:

https://github.com/Cataurus/MonoDevelopWin

https://github.com/lextm/monodevelop-windows

https://github.com/dotdevelop/dotdevelop

Но ничего не смогли портировать.

А так вот тут почитай если хочешь: https://github.com/mono/monodevelop/issues/8006

и последний коммит там год назад. А Visual Studio for Mac(aka Monodevelop) вышла пару недель назад: https://docs.microsoft.com/ru-ru/visualstudio/releasenotes/vs2019-mac-relnotes

fsb4000 ★★★★ ()
Последнее исправление: fsb4000 (всего исправлений: 2)
Ответ на: комментарий от anonymous

Я с этим совсем устал ждать Red и понемного думаю над своим диалектом

Потом кто-то устанет ждать твой диалект.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от DarkEld3r

И архитектуры, которые предоставляет CI и просто размер тестов, вот в их блоге что написано:

One of the major pain points for compiler contributors over the past few years has been waiting for PRs to be merged. We value having an always-green master branch, and to ensure that, we test and merge just one PR at a time, with the other approved ones waiting in the queue. Our CI is extensive too, with 57 machines building and testing the compiler across all the platforms we support. On our previous system, each of those builders took between three to four hours to finish. Combined with testing one PR at a time, this often causes PRs to wait in the queue for days before being tested.

Making the CI setup faster is a permanent goal of the Infrastructure Team, and GitHub Actions provided us with a great opportunity to improve landing time: GitHub offered to sponsor a fully managed, private pool of 8-core VMs to run our builds on, which is a big improvement compared to the 2-core VMs we were previously using. GitHub Actions also provides most of the features we loved about Azure Pipelines while being integrated with GitHub’s permissions and UI, which made the switch even more fruitful.

We’d like to thank GitHub for sponsoring our CI builders and Microsoft for the Azure Pipelines capacity we used over the past year.

https://blog.rust-lang.org/inside-rust/2020/07/23/rust-ci-is-moving-to-github-actions.html

fsb4000 ★★★★ ()
Ответ на: комментарий от Rewand

Rust — попытка получить максимально безопасный код, задав максимально строгие правила на этапе проектирования. Для драйверов и крайне ответственного кода может и подходит (хотя, например, Ada ничуть не хуже).

Что-то мне подсказывает, что и раст и аду ты видел очень издалека.

И зачем этот хайп вокруг странной пародии на D?

Звучит смешно.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от acroobat

Глянул я ваш раст, такое же дерьмо, как и c++.

А что еще могло получиться из статически типизированного алголоподобного языка?

alienclaster ★★★ ()
Ответ на: комментарий от Rewand

Rust еще и просто современный язык, точка.

С ним сразу идет единственный и главный пакетный менеджер, фреймворк тестов, language server для IDE, линтеры, форматтеры - все - все стандартное.

Когда софт простой, например мы пишем простую утилиту командной строки то можно писать достаточно простой код, падать в панику при любой ошибке просто дописывая ко всему expect или ? и эргономика будет не хуже чем у вообще любого другого языка, все еще при нативной производительности. Где вылезет какая-то штука с памятью можно просто влепить clone(). Это все не сложно.

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

Не стоит самый сложный код на Rust ассоциировать с самым простым кодом. Совершенно разные случаи и писать простые програмы на Rust очень легкое занятие

vertexua ★★★★☆ ()
Ответ на: комментарий от Rewand

Какие реальные преимущества я получу при переходе с «маргинального D» на «немаргинальный божественный Rust»?

Ну это тоже преимущество. Языки не существуют в вакууме. Хайп - это фича языка. Она дает тебе именно реальные преимущества того что экосистема и поддержка будет живой.

vertexua ★★★★☆ ()
Ответ на: комментарий от vertexua

это факт, сейчас на расте пишут то что раньше писали на питоне. Не зря царь говорил про скриптуху, ой не зря :)))

Lrrr ()
Ответ на: комментарий от Lrrr

И хорошо что пишут.

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

vertexua ★★★★☆ ()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от nemec784

Интересная инфа: rust - 9.7 % , c/c++ - 40.7%. Про асамблер вообще не знал.

acroobat ()
Ответ на: комментарий от vertexua

Когда софт простой, например мы пишем простую утилиту командной строки то можно писать достаточно простой код

Только из-за одной системы типов это уже сложно. А еще и памятью управлять. Нет никакого профита писать простые утилиты на расте когда есть голанг. Их пишут только ради самоцели «выучить раст». Но выучить раст на должном уровне как раз и не удается на таких простых задачах.

bread ()
Ответ на: комментарий от bread

Нет никакого профита писать простые утилиты на расте когда есть голанг

Чушь. Я много писал на Go, сейчас много пишу на Rust. И простые программы, и компоненты сложных систем. И имею сказать, что Rust — весьма практичный язык: пишется быстро, отладки мало, читается потом легко. Не хуже Go в этом плане, который тоже практичный — выбирай на вкус.

hbee ★★★ ()
Ответ на: комментарий от vertexua

Ну же, тонны профита

Да какая разница. Один язык выбрал более явный способ обработки ошибок, чем другой. Это мелочи. Самое главное — оба языка отказались от злоебучих исключений. Одно это оправдывает применение любого из них.

hbee ★★★ ()
Последнее исправление: hbee (всего исправлений: 1)
Ответ на: комментарий от vertexua

вот только чтобы это ? сработало, оборачивающая это функция должна возвращать что-нибудь типа Result<(), Box<dyn Error>>. Уже не так красиво, да? Еще и предполагает трогание кучи, что далеко не всегда вариант.

Lrrr ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей