LINUX.ORG.RU
ФорумTalks

В Ubuntu 25.10 решено заменить GNU Coreutils на uutils, написанные на Rust

 , , , uutils


0

4

Замена коснётся более ста утилит, входящих в состав Сoreutils, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. В настоящее время утилиты uutils уже применяются по умолчанию в дистрибутиве Apertis, основанном на Debian, а также в независимом дистрибутиве AerynOS (SerpentOS). Опубликованный на прошлой неделе выпуск пакета uutils coreutils 0.0.30 успешно проходит 507 тестов (в прошлом выпуске 506, в позапрошлом - 476) из эталонного тестового набора GNU Coreutils. 69 тестов завершилось неудачей, а 41 тест был пропущен. В ближайшие недели также планируется приступить к работе над заменой в Ubuntu утилит su и sudo на пакет sudo-rs. Из рассматриваемых проектов дополнительно упоминаются zlib-rs и ntpd-rs.

Если эксперимент будет признан удачным, то uutils также будут задействованы по умолчанию в LTS-ветке Ubuntu 26.04.

★★★★★

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

Проблема в том, что у меня нет бд. У меня урезанная игровая песочница и все «БД» я реализую сам, как могу на lua5.1. Работой с таблицами lua.

Там свои нюансы работы. Жесткие ограничения, которые приходится обходить костылями. Костыли сильно все замедляют и это нужно оптимизировать бла бла.

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

Сейчас при создании экземпляра класса у меня в нем содержатся все реализации работы со всеми вариантами таблиц. А при композиции - каждый будет содержать только свое.

Видишь, я уже придумал удобство композиции и сократил расходы. Кто молодец? Надо еще подумать.

LightDiver ★★★★★
()

Совсем уже шизанулись. Теперь и coreutils у всех будут разные. Линукс окончательно скатывается в радужный цирк. Куда бежать?

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

Я конечно раст ненавижу, но тут дело не в ЯП, а в том, что на ровном месте разводят зоопарк ещё и в coreutils. Вот нафига? Мало что ли в линуксе такого говна, решили еще один самосвал разгрузить на голову несчастного юзера. Космонавт просто гений конечно, как он вообще свои миллиарды заработал с такиим талантом всё скатывать в СГ, это загадка.

bread
()

uutils coreutils 0.0.30

Штабильно! 100 тестов фейлится, ничо и так сойдет! Гребаные наркоманы.

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

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

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

Браузера на расте так и не увидели за 10 лет, какое уж там ядро. На этом языке попросту невозможно написать ничего сложнее сабжевых утилит. Даже ИИ тут сломается.

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

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

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

а не нравится разница размеров и у вас миллиарды - храните например в разных массивах, каждый под свои размеры.

alysnix ★★★
()

Из убунты похоже хотят сделать ещё один андроид. Вот только непонятно кто это купит.

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

с питона на раст. Во-первых, там гуй лучше

Что за гуй в расте? Ни одного нормального биндинга не нашел, кроме недоделанных гтк и кьюта…

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

Мы убрали слово return и убрали лишнюю точку с запятой. Все. Избавились от мусора.

О да, ради этого стоило пилить новый языг :)

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

А давайте скатимся на обсуждение Rust, я очень интересуюсь, когда узнал, что printLn!() оказалсо макросом…

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

egui - красивое такое приятное и минималистичное. С поддержками тем системных и все такое.

На питоне юзал tk. Оно очень уж корявое внешне.

Вот так было на питоне на тк: https://s.iimg.su/s/14/g7vU6cYNPe1Ee0tQBmtomdLZPf9GWxeylDyMP50q.png

Вот так в светлой теме на расте на egui: https://s.iimg.su/s/14/MEHUV8MDYfiZ98Vq766slhEUhVCv9GSWP4ZvdRih.png

Вот так в темной теме на расте на egui: https://s.iimg.su/s/14/LJjIhf7xevD8RrliIgog11xAF5qtAkQ63OrjUUrI.jpg

Чтобы такое сделать в питоне, пришлось бы тянуть десятки метров Qt наверное. А в раст получилось по размерам столько же сделать, сколько и на питоне. Плюс минус бинарник 5 метров.

https://www.egui.rs/ Вон потыкай. Удобно сделали прямо на сайте.

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

А там ведь только это изменено, а все остальное как и в си?

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

Говорю же - надо просто привыкнуть к синтаксису.

Человек вообще такое существо, что ко всему привыкает.

Но вопрос, зачем делать плохо чтобы потом к этому привыкать, остаётся открытым.

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

А кто сказал, что это плохо? Привыкать надо к любому синтаксису. Ты привык к другому, а к этому еще нет.

У каждого языка свои особенности по той или иной причине. Тебе нужно просто запомнить как эти особености использовать.

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

Ты привык к другому, а к этому еще нет.

Я как человек, который писал много на чем, начиная от ассемблера, и заканчивая Ruby, могу позволить себе иметь своё мнение.

И мнение такое: лаконичные синтаксисы — говно. Чем лаконичнее, тем больше говно.

Все эти «скобочные последователи Си» пошли не по тому пути.

ЯП должны быть предназначены в первую для удобства чтения или лишь во вторую - для удобства набора.

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

Так он не лаконичный. Просто убрали лишнее в конце функции. Это конец. И так понятно, что это конец. Если это конец - можно лишнее не использовать.

Во всех остальных случаях нужно использовать все.

своих таких нюансов много везде. Вон в том же js какая то странная неприязнь запятых в конце. Обязательно нужно удалять «лишние».

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

Так он не лаконичный. Просто убрали лишнее в конце функции. Это конец. И так понятно, что это конец. Если это конец - можно лишнее не использовать.

Можно вообще ничего не использовать, кроме скобочек. Называется S-выражения.

Но можно != оптимально.

Вон в том же js какая то странная неприязнь запятых в конце.

У js синтаксис спроектирован через жопу, потому что его буквально сделали на коленке за несколько дней.

своих таких нюансов много везде.

Совсем слабое оправдание.

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

Я уже в который раз сталкиваюсь с какой то странной противоестественной агрессией со стороны профессионалов к тому, что для них новое или/и необычное. Очень агрессивное неприятие всего нового.

Вообще в этой профессии очень странное поведение, но повсеместное. Казалось бы - профессия требует изучать все время новое и меняться под реалии, но..

LightDiver ★★★★★
()

Самое смешное, что на данный момент этих uutils нет даже в репах текущей Ubuntu LTS лол:

$ apt search uutils
Sorting... Done
Full Text Search... Done
librust-uucore-dev/noble 0.0.23-2build1 amd64
  Uutils ~ 'core' uutils code library (cross-platform) - Rust source code

librust-uucore-procs-dev/noble 0.0.23-1 amd64
  Uutils ~ 'uucore' proc-macros - Rust source code

librust-uutils-term-grid-dev/noble 0.3.0-1 amd64
  Formatting strings into a grid layout - Rust source code

Очень обдуманное, взвешенное и протестированное решение :)

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

Казалось бы - профессия требует изучать все время новое и меняться под реалии, но..

Во фразе «изучать новое и меняться под реалии» содержится подмена понятий. Что нового в очередном синтаксисе? Ровным счётом ничего.

Учить еще один всратый синтаксис после того, как ты их повидал пару десятков - не интересно. Если надо будет, то хоть на Алголе что-нибудь напишем. Но энтузиазм в связи с очередной формой записи синтаксических деревьев испытывать? Не.

Теперь насчёт нового. Если полистать мои комменты, то можно увидеть много энтузиазма относительно технологий или концепций, которые я в своё время счёл действительно новыми и перспективными, например:

  • Ruby
  • Docker
  • ZeroNet
  • Syncthing
  • Linear types

А мы сейчас находимся в теме, где «coreutils переписали на Rust». Ну это чисто на поржать. Пишите, Шура, пишите.

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

А руби так же быстр, как раст?

Ты привел некорректный пример. Си и Раст примерно на одном уровне. а руби - высокоуровневый язык.

Это просто инструменты. Если ты устал изучать новые инструменты, возможно тебе нужна замена на того, кто не устал.. Посмотри сериал «Клиника». Там есть серия по этому поводу.

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

А мы сейчас находимся в теме, где «coreutils переписали на Rust». Ну это чисто на поржать. Пишите, Шура, пишите.

…Врываюсь на белом коне…

Ты чё смеешься, дура? Rust - это божественный ЯП, натыривший идей.

5 главных отличий Rust от других языков программирования

Система владения и заимствования — В Rust есть уникальная система владения (ownership) с жесткими правилами, которая гарантирует безопасность памяти без сборщика мусора. Каждое значение имеет единственного владельца, и когда владелец выходит из области видимости, значение автоматически освобождается. Это кардинально отличается от управления памятью в C++ (ручное) или Java/Python (сборка мусора).
Безопасность без компромиссов — Rust предотвращает целые классы ошибок на этапе компиляции: гонки данных, разыменование нулевых указателей, переполнение буфера, и использование после освобождения (use-after-free). Компилятор просто не позволит создать программу с такими ошибками, что выделяет Rust среди языков аналогичной производительности.
Система типажей (traits) — Вместо объектно-ориентированного наследования Rust использует типажи (traits), которые похожи на интерфейсы в других языках, но более гибкие. Они позволяют добавлять поведение к любому типу, даже к тем, которые вы не создавали, что невозможно в традиционных ООП языках.
Макросы на основе шаблонов — Макросы в Rust гораздо более мощные и безопасные, чем обычные препроцессорные макросы в C/C++. Они позволяют генерировать код на этапе компиляции, но с проверками типов и гигиеничностью, что предотвращает много проблем, характерных для макросов в других языках.
Отсутствие неявных преобразований типов — Rust требует явного преобразования типов, что делает код более предсказуемым. В отличие от языков вроде JavaScript или C, где типы могут неявно преобразовываться (например, из строки в число), в Rust такие преобразования должны быть указаны программистом явно, что устраняет целый класс неочевидных ошибок.

Эти особенности делают Rust уникальным языком, который обеспечивает производительность на уровне C/C++, но с гарантиями безопасности, которые обычно доступны только в языках с более низкой производительностью.
Eulenspiegel
()
Последнее исправление: Eulenspiegel (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Ты привел некорректный пример. Си и Раст примерно на одном уровне. а руби - высокоуровневый язык.

У меня не было цели сравнивать Руби и Раст. Я отвечал на тезис «Очень агрессивное неприятие всего нового.»

А руби так же быстр, как раст?

Это неправильный вопрос. Правильный вопрос: в каких областях какой из них обеспечивает большую производительность труда программиста.

Это просто инструменты.

Да. И я говорю: вот у этого инструмента без всякой нужды ручка сделана так, чтобы пользователя по пальцам бить. А мне в ответ: «Очень агрессивное неприятие всего нового».

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

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

Изначальная ошибка - считать конструкцию неудачной.

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

Если тебе надо работать с этим инструментом, просто придумай как это использовать. Варианты всегда найдутся.

Ты же не ругаешь вилку за то, что ею сложно есть суп? Вот разработчики говрят: мы сделали вилку, чтобы вам было удобно есть макароны. Тут приходишь ты и говоришь: а я ею ел суп и укололся - вилка говно.

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

новыми и перспективными, например:

Ruby

Во-первых, что нового и тем более перспективного в руби?

Во-вторых, чем растовский подход с возратом значения так неприятен после нового и перспективного руби: The last evaluated statement in a method is its return value, allowing the omission of an explicit return statement?

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

The last evaluated statement in a method is its return value, allowing the omission of an explicit return statement?

это из лиспотни еще идет. стандартная синтаксическая фича функциональщины, что все есть «выражение» и любое «выражение» имеет значение.

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

Во-первых, что нового и тем более перспективного в руби?

Ну так это в какие времена было. Я был молод и глуп xD

Вероятно, прям как LightDiver сейчас.

Во-вторых, чем растовский подход с возратом значения так неприятен после нового и перспективного руби: The last evaluated statement in a method is its return value, allowing the omission of an explicit return statement?

Аксиома Эскобара. Это плохие решения.

wandrien ★★★
()

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

s-warus ★★★★
()

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

s-warus ★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

я на ab замерял запросов меньше просто при наличии snap, в докере nginx находится или снаружи нет разницы.

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

замерял запросов меньше просто при наличии snap

Что значит при наличии snap? Установлено через snap или просто snap присутствует в системе?

MoldAndLimeHoney
()

На космонавта, который поддержал ссанкции мне плевать.

А вот авторам uutils респект и уважуха!

Они не стали лезть в чужой проект со своими высерами, а поступили, как взрослые люди.

Молодцы!

Ждём, когда на Rust напишут аналог LLVM )))

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от wandrien

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

s-warus ★★★★
()

Это всё делается чтобы постепенно вытеснять GPL лицензии. И чтобы сам проект GNU и его идеология забывались.

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

Как будто это что-то плохое.

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

Вот есть целое микроядро совместимое с Linux ABI по лицензии MIT: https://github.com/managarm/managarm. Там недавно systemd запустили. Wayland уже давно работает.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от s-warus

Очень странные вещи ты рассказываешь. А сколько памяти на серверах?

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

И мнение такое: лаконичные синтаксисы — говно. Чем лаконичнее, тем больше говно.

Мдя, вот так вся жизнь и прошла в говне (perl, C). Имхо, синтаксис фигня, а вот семантика решает, как говорил наш царь. В этом смысле раст это чудовищная химера, куда натолкали вообще всё модное, ну и плюсовым синтаксисом присыпали, чтобы совсем нескучно было. Я удивляюсь что за мутанты на этом добровольно пишут и нахваливают. Но им еще предстоит серьезное разочарование, как мне кажется. На хеловорлдах может это и кажется весело. Как с перлом, первые 100 строк клёво, потом всё больнее и больнее.

bread
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)