The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск Rust Coreutils 0.4. Расхождение поведения утилиты du в uutils и GNU Coreutils "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск Rust Coreutils 0.4. Расхождение поведения утилиты du в uutils и GNU Coreutils "  +/
Сообщение от opennews (ok), 10-Ноя-25, 11:04 
Опубликован выпуск проекта uutils coreutils 0.4.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=64214

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от localhostadmin (ok), 10-Ноя-25, 11:04   +/
>работать на платформах Windows, Redox и Fuchsia

А зачем это на винде?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #47, #100

2. Сообщение от Аноним (2), 10-Ноя-25, 11:07   –1 +/
>Дополнительно можно отметить расхождение в поведении утилиты "du" из наборов uutils и GNU Coreutils, всплывшее после перехода Ubuntu 25.10 на uutils. Разработчики ещё не решили трактовать ли данное расхождение как ошибку, так как с одной стороны в поведении uutils есть логика и тестовый набор GNU Coreutils не выявляет проблем

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #20, #25, #27, #106, #143

3. Сообщение от Аноним (3), 10-Ноя-25, 11:08   +20 +/
более того... зачем оно вообще ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #8, #131

4. Сообщение от Мурзин (?), 10-Ноя-25, 11:09   –1 +/
Я правильно понимаю, что Столман и компания не правильно считали байты? И им показали как нужно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #10, #13, #74

5. Сообщение от Аноним (3), 10-Ноя-25, 11:10   +7 +/
Не совсем понятно как это чудовище вообще могло что-то облегчить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #66

7. Сообщение от Stanislavvv (ok), 10-Ноя-25, 11:16   +1 +/
Скорее, это совместимость с чем-то более ранним.
Факт в том, что uutils ломают совместимость между системами. Даже если это на самом деле баг, на это может быть что-то завязано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #40, #65

8. Сообщение от Аноним (8), 10-Ноя-25, 11:21   +8 +/
> показывает размеры каждого каталога с вычетом вложенных каталогов, из-за чего их размер получается меньше фактического

Учитывая, что ещё и работает неправильно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #22

9. Сообщение от Шарп (ok), 10-Ноя-25, 11:21   +6 +/
>для предотвращения переполнения стека
>В утилите mkdir устранено переполнение стека

Я правильно понял, что если в случае сишки бичом являлся выход за пределы массива, то растеры рвут стек, потому что создают огромные объекты на нём и лепят рекурсию куда не попадя?

Рекламные буклеты про безопасность начали разваливаться, как только пошло реальное использование.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #15, #17, #24

10. Сообщение от freehck (ok), 10-Ноя-25, 11:22   +5 +/
> Я правильно понимаю, что Столман и компания не правильно считали байты? И им показали как нужно.

Ну вообще-то, если строго посмотреть на цифры, то в GNU Coreutils подсчёт как раз верен: если сначала считается подкаталог, а потом топ-каталог, то в топ-каталоге не учитываются файлы, уже подсчитанные в подкаталоге. А если сначала считается топ-каталог, то подкаталоги уже не считаются.

Честно говоря, я об этом не знал. Но если хорошенько подумать, это вполне логично. А вот то, что uutils выводит неверный total -- это неудобно совсем и 100% является ошибкой.

upd: выяснил, что это поведение -- часть стандарта POSIX. См #40

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #118

11. Сообщение от Аноним (3), 10-Ноя-25, 11:26   +3 +/
правильнее было бы переписать их на python
Ответить | Правка | Наверх | Cообщить модератору

12. Сообщение от Vadim (??), 10-Ноя-25, 11:27   +/
‘-S’
‘--separate-dirs’

    Normally, in the output of du (when not using --summarize), the size listed next to a directory name, d, represents the sum of sizes of all entries beneath d as well as the size of d itself. With --separate-dirs, the size reported for a directory name, d, will exclude the size of any subdirectories.

вот очень похоже на (неявное) использование этого параметра

Ответить | Правка | Наверх | Cообщить модератору

13. Сообщение от Аноним (8), 10-Ноя-25, 11:28   +/
> Я правильно понимаю

Нет. Раст не умеет считать: "total # больше фактического"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #42

14. Сообщение от Жироватт (ok), 10-Ноя-25, 11:30   +1 +/
До спавна местных, недалеко ушедших от LLM евангелистов 3... 2...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #30

15. Сообщение от Аноним (8), 10-Ноя-25, 11:31   +3 +/
> переполнение стека

Это шедевр раста! Умудриться завалить стёк на 64-битной платформе при создании каталогов...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #16, #120

16. Сообщение от Жироватт (ok), 10-Ноя-25, 11:35   +9 +/
БЕЗОПАСТНО завалить стек на 64хбитной платформе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #96

17. Сообщение от Аноним (2), 10-Ноя-25, 11:36   +1 +/
Программировать на Rust нормально не получается, приходится клонировать все объекты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #19

18. Сообщение от Аноним (8), 10-Ноя-25, 11:36   –2 +/
> total # больше фактического

Да... Раст ещё и в арифметике не силён. Ожидаешь "disk usage" - а там ошибка.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #58

19. Сообщение от Аноним (8), 10-Ноя-25, 11:38   +1 +/
> приходится клонировать все объекты.

Дак вот почему они не смогли браузер переписать, и за что их выгнали из Мозилы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

20. Сообщение от Соль земли2 (?), 10-Ноя-25, 11:39   +/
Трудно жить с руками из плеч?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

21. Сообщение от freehck (ok), 10-Ноя-25, 11:39   +4 +/
> Разработчики ещё не решили трактовать ли данное расхождение как ошибку, так как с одной стороны в поведении uutils есть логика и тестовый набор GNU Coreutils не выявляет проблем, но с другой стороны несовместимости с GNU Coreutils предписано обрабатывать как ошибки и поведение Busybox соответствует GNU Coreutils.

Ну понятное дело, что они "ещё думают". Они ведь радостно рапортуют о том, что "обеспечили совместимость на более, чем 80%". А тут происходит столкновение с реальностью, и выясняется, что удовлетворить оригинальному тестовому набору -- это не то же самое, что и обеспечить 100%-ю совместимость с исходным продуктом.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31

22. Сообщение от Аноним (22), 10-Ноя-25, 11:39   –5 +/
Это GNUтая версия показывает неправильно)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #39, #44

23. Сообщение от Аноним (29), 10-Ноя-25, 11:40   +4 +/
Растаманы опять не смогли нормально переписать. На этот раз du - блин, просто возьмите и перепишите чтоб не было расхождения в поведении, для этого же язык и создавался.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #85, #156

24. Сообщение от Соль земли2 (?), 10-Ноя-25, 11:40   –1 +/
Из-за простоты Rust набежало много новичков, которые так делают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #29, #63

25. Сообщение от Аноним (22), 10-Ноя-25, 11:40   +4 +/
Так это GNUтые тесты такие, а не uutils)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #168

27. Сообщение от User (??), 10-Ноя-25, 11:44   +1 +/
Э! Тесты же ж от пакета GNU Coreutil используются - никто их вроде бы на rust переписывать не собирался. Вот что по ходу могут правочки появиться - это да - но на стороне _тестов_ (Читай - GNU) а не уот тут уот.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #33, #53, #62

28. Сообщение от 12yoexpert (ok), 10-Ноя-25, 11:47   +3 +/
сколько лет они уже это переписывают и всё никак не перепишут?
есть же готовый код перед глазами, что сложного?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34, #59, #176

29. Сообщение от Аноним (29), 10-Ноя-25, 11:48   +5 +/
Понятно, это неправильные программисты на расте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #32

30. Сообщение от 12yoexpert (ok), 10-Ноя-25, 11:48   +/
ИИ это всего лишь инструмент, абыр
А в сишке диды, абыр
UB, абырвалг
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #57, #171

31. Сообщение от User (??), 10-Ноя-25, 11:49   +1 +/
Ну в общем определенная логика даже есть. Как проводится сертификация на соответствие требованиям? Ну вот прогоняется тест сьют - все зеленое - на бамажка "соответствует". Ах, тест не все покрывает? Все равно, "соответствует" - вот внесете изменение в тесты, будет несоответствовать - исправим, а пока так.

Логика конечно кривая и гниловатая - но определенно, есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #52

32. Сообщение от 12yoexpert (ok), 10-Ноя-25, 11:50   +/
ну, с учётом того, что на расте пишут исключительно и только веб-синьоры, - да
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #55

33. Сообщение от Аноним (2), 10-Ноя-25, 11:51   +7 +/
Мне казалось, что шутки про весь мир неподходящий для Rust всего лишь шутки...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #36

34. Сообщение от User (??), 10-Ноя-25, 11:53   +/
В 2020м начали. Сколько-то серьёзно вроде с 22го.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

36. Сообщение от User (??), 10-Ноя-25, 12:08   –3 +/
Новость-не-читай-комментарий-оставляй? Тест - GNU'тый - ПРОХОДИТСЯ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #56

38. Сообщение от Аноним (-), 10-Ноя-25, 12:11   +2 +/
> Заявлен уровень совместимости 85.80% (было 83.91%).

Немножечко беременна. Теперь у вас будет валиться 15 задач из сотни. Подумаешь мелочи какие. Чочо, почти 90 тестов не работают? Notabug, релизить надо - фонд отчеты KPI ждет, а то вообще грантов за безопасное переписывание не насыпят.

Ответить | Правка | Наверх | Cообщить модератору

39. Сообщение от Аноним (8), 10-Ноя-25, 12:22   –1 +/
Ты чем читал?

В uutils: total # больше фактического

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #46, #54

40. Сообщение от freehck (ok), 10-Ноя-25, 12:23   +6 +/
> Даже если это на самом деле баг, на это может быть что-то завязано.

Это не баг. Я нашёл.

Вот как описывается du в POSIX.1-2024: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/d...

> A file that occurs multiple times shall be counted and written for only one entry, even if the occurrences are under different file operands.

Иными словами это поведение -- часть стандарта.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #117

42. Сообщение от Аноним (46), 10-Ноя-25, 12:29   +3 +/
>> Я правильно понимаю
> Нет. Раст не умеет считать: "total # больше фактического"

А  /var # меньше фактического
этодругоепониматьнадо?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #45, #73

43. Сообщение от Аноним (8), 10-Ноя-25, 12:31   +/
1540    /var/log
35495   /var
37033   total # больше фактического, но соответствует сумме /var и /var/log

Не соответствует! 1540 + 35495 = 37035, а не 37033!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #136

44. Сообщение от Аноним (8), 10-Ноя-25, 12:34   –1 +/
В uutils:

1540 + 35495 = 37035 != 37033!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

45. Сообщение от Аноним (8), 10-Ноя-25, 12:37   –2 +/
Раст, в uutils: 1540 + 35495 = 37035 != 37033!
Это как?! Даже сложение на расте неправильное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #50

46. Сообщение от Аноним (46), 10-Ноя-25, 12:40   +/
> Ты чем читал?
> В uutils: total # больше фактического

GNU Utils
>> 33955   /var # меньше фактического


-s, --summarize
              display only a total for each argument
-c, --total
              produce a grand total

Ну и бсдшный du :


du -smc /var/log /var
7    /var/log
939    /var
945    total

du -smc /var /var/log  
939    /var
7    /var/log
945    total
# гнутый du
gdu -smc /var/log /var
7    /var/log
932    /var
939    total

gdu -smc /var /var/log  
939    /var
939    total


а так - все хорошо, прекрасная маркиза!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #48

47. Сообщение от Аноним (47), 10-Ноя-25, 12:42   +3 +/
Слышал про MSYS2 или хотя бы Git for windows?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #86, #89

48. Сообщение от Аноним (8), 10-Ноя-25, 12:43   +/
Почему у раста сумма двух чисел не равна их сумме?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #51, #166

49. Сообщение от Ilnarildarovuchemail (?), 10-Ноя-25, 12:44   +/
Зря
Ответить | Правка | Наверх | Cообщить модератору

50. Сообщение от Аноним (46), 10-Ноя-25, 12:48   +2 +/
> Раст, в uutils: 1540 + 35495 = 37035 != 37033!
> Это как?! Даже сложение на расте неправильное.

Не, это ты не умеешь в доку.
--
>  -m      Display block counts in 1048576-byte (1 MiB) blocks.

du -smc /var /var/log  
939    /var
7    /var/log
945    total
--


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #76

51. Сообщение от Аноним (46), 10-Ноя-25, 12:55   +2 +/
> Почему у раста сумма двух чисел не равна их сумме?

Где ты в бсдшном du нашел раст?
И да, спецом для тебя:
-m      Display block counts in 1048576-byte (1 MiB) blocks.
Если сначала считать в байтах, суммировать, а потом округлить в блоки, то сумма вполне может быть != округлять в блоки и считать сумму.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #70

52. Сообщение от freehck (ok), 10-Ноя-25, 12:56   +3 +/
Гниловатая или нет, но с учётом того, что как выяснилось, это поведение -- часть стандарта POSIX (см #40), судя по всему править баг им таки придётся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #154

53. Сообщение от Аноним (81), 10-Ноя-25, 12:58   +/
Растройхетеры опять просчитались, но где?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #94

54. Сообщение от Аноним (22), 10-Ноя-25, 13:00   +/
А зачем комментарий обрезал???))))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #80

55. Сообщение от Аноним (81), 10-Ноя-25, 13:02   –1 +/
Они плохие прораммисты, потому что код без CVE получается? Ясно-понятно...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #64

56. Сообщение от Аноним (2), 10-Ноя-25, 13:02   –1 +/
Тесты проходят, а программа правильно не работает. Чудеса.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #69, #81

57. Сообщение от Жироватт (ok), 10-Ноя-25, 13:07   +2 +/
Валг.
Ну не верю я, что уже года два как однотипные, буквально тасуемые на уровне фраз и предложений посты пишут реальные живые люди, а не мясные/программные боты с весами или методичкой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

58. Сообщение от Аноним (81), 10-Ноя-25, 13:10   +/
> GNU Coreutils показывает в итоговой строке фактический размер, который указанные каталоги занимают на диске, но в раздельном списке показывает размеры каждого каталога с вычетом вложенных каталогов, из-за чего их размер получается меньше фактического. Кроме того, значения, выводимые в GNU Coreutils и Busybox, меняются в зависимости от порядка указания каталогов.

Точно именно у раста в арифметике проблема? Текст новости не читаем?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #77

59. Сообщение от name_not_found (??), 10-Ноя-25, 13:13   +/
В код смотреть нельзя - нарушение gpl. А uutils на gpl переводить нельзя, иначе потом ЕЕЕшить будет дорого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #67

62. Сообщение от Аноним (62), 10-Ноя-25, 13:23   +1 +/
Много раз здесь повторяли. Это просто тесты. Это не тесты на совместимость. Их никто так не писал.

Поэтому упоминание этих тестов в новостях, без оговаривания данного факта, является обманом.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #129

63. Сообщение от iPony128052 (?), 10-Ноя-25, 13:25   +2 +/
> Из-за простоты Rust

Больше Hello World на нём написал?

Я при написании небольшого проекта на Rust после многолетнего опыта на C++ не заметил чего-то простого (относительно).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

64. Сообщение от Аноним (62), 10-Ноя-25, 13:27   +/
> потому что код без CVE получается?

Не получается.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #83

65. Сообщение от bdrbt (ok), 10-Ноя-25, 13:32   –1 +/
Они ничего не ломают, они изначально не заявляли 100% совместимость, но благодаря убуинам которые потащили их в прод не провери, все вопят о "сломанности".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #68, #72, #75

66. Сообщение от ZloySergant (ok), 10-Ноя-25, 13:38   +3 +/
>Не совсем понятно как это чудовище вообще могло что-то облегчить

Раст-то? Пыталось мой желудок, когда я синтаксис увидел.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #105

67. Сообщение от Аноним (2), 10-Ноя-25, 13:39   +/
Разве переписанные программы на другой язык подпадают под действие лицензии GPL?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #93, #152

68. Сообщение от Аноним (62), 10-Ноя-25, 13:41   +1 +/
Вообще то заявлено целью. Не сломано - да. Но, как обычно, не дописано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

69. Сообщение от Аноним (46), 10-Ноя-25, 13:45   +/
> Тесты проходят, а программа правильно не работает. Чудеса.

Ну-ну.


# гну
gdu -smc /var/log /var
7    /var/log
935    /var
942    total

busybox du -smc /var/log /var
7    /var/log
935    /var
941    total

# бсд
du -smc /var/log /var
7    /var/log
942    /var
948    total

# uutils
uu-du -smc /var/log /var
7    /var/log
942    /var
948    total


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #123, #145

70. Сообщение от Аноним (8), 10-Ноя-25, 13:46    Скрыто ботом-модератором–2 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

72. Сообщение от User (??), 10-Ноя-25, 13:48   +2 +/
> Они ничего не ломают, они изначально не заявляли 100% совместимость, но благодаря
> убуинам которые потащили их в прод не провери, все вопят о
> "сломанности".

Вообще-то - 100% совместимость с GNU Coreutils там на github'е в project goals заявлена.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #107

73. Сообщение от Аноним (8), 10-Ноя-25, 13:50   –1 +/
> A file that occurs multiple times shall be counted and written for only one entry

Но раст не знает, что такое стандарты.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

74. Сообщение от Мурзин (?), 10-Ноя-25, 13:50   +1 +/
Спасибо всем, кто растолковал, кто не прав Столман или Растобои. А я подумал, что ну вот, наконец, получили все профит. Ан, нет. Ну и нарушать стандарты, это конечно не правильно. Эх, ну как здесь не сказать, читайте матчасть...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

75. Сообщение от Аноним (2), 10-Ноя-25, 13:51   +2 +/
Заявлена полная совместимость, а любая несовместимость считается ошибкой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

76. Сообщение от Аноним (8), 10-Ноя-25, 13:52   –3 +/
О, не знал, что раст даже целочисленные количества складывать не умеет, но растманы заявляют, что "соответствует сумме", хотя не соответствует по факту. Вы уж определитесь сначала.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #128

77. Сообщение от Аноним (8), 10-Ноя-25, 13:55   –1 +/
> A file that occurs multiple times shall be counted and written for only one entry, even if the occurrences are under different file operands.

у GNU есть стандарт, и делает всё строго по стандарту.

Раст: "мы даже числа правильно складывать не умеем". total # больше фактического, и НЕ соответствует сумме.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #84

78. Сообщение от Медведь (ok), 10-Ноя-25, 13:57   +/
Насколько я помню, в целях проекта заявлено, что любое отличие от оригинала есть баг. Ржавуны, как же так, вы не можете даже переписать логику утилит 1:1?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #175

79. Сообщение от Аноним (79), 10-Ноя-25, 14:00   +/
>  В утилите tsort реализация алгоритма обхода DFS переведена с рекурсивного на итеративный метод работы для предотвращения переполнения стека.

Молодцы, только такие вещи сразу нужно делать. К сожалению, в вузах всё ещё учат делать через стековую рекурсию вместо итеративной вместо того, что бы учить *не* делать.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #97

80. Сообщение от Аноним (8), 10-Ноя-25, 14:03   –4 +/
Ты это хотел увидеть?

> соответствует сумме

НЕ соответствует. Раст: 1540 + 35495 = 37035 != 37033

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #141

81. Сообщение от Аноним (81), 10-Ноя-25, 14:03   –3 +/
Ну так все вопросы к сишникам, что такие кривые тесты написали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #87, #91

83. Сообщение от Аноним (81), 10-Ноя-25, 14:07   +/
Ссылки будут, и как обычно сишник вызвал переполенение в комментариях?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #114, #124

84. Сообщение от Аноним (81), 10-Ноя-25, 14:09   +/
Тем временем GNU:

> размер получается меньше фактического

Ну ясно-понятно...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #95

85. Сообщение от Аноним (81), 10-Ноя-25, 14:10   –1 +/
Увы, но на раст принципиально невозможно перенести все UB/CVE сишного кода, если только unsafe обмазаться ради совместимости с кривым GNU поделием...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #88, #90

86. Сообщение от Аноним (3), 10-Ноя-25, 14:15   –1 +/
ну так там все utils собраны mingw64 зачем там что-то еще ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

87. Сообщение от Медведь (ok), 10-Ноя-25, 14:27   –1 +/
> Ну так все вопросы к сишникам, что такие кривые тесты написали

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

88. Сообщение от Аноним (2), 10-Ноя-25, 14:27   +/
Им бы сперва работоспособность coreutils перенести...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

89. Сообщение от Аноним (89), 10-Ноя-25, 14:29   +/
В Msys2 оригинальные GNU Coreutils.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

90. Сообщение от Аноним (29), 10-Ноя-25, 14:32   +1 +/
Ты что-то как-то очень толсто троллишь. Ты реально думаешь, что отличия в поведении du из-за того что в coreutils UB/CVE? Ну ведь вовсе нет, как бы ты ни пытался отмазать этих вебприматов - они просто не смогли переписать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

91. Сообщение от Аноним (8), 10-Ноя-25, 14:34   –1 +/
Опять сишники в штаны Расту ... Надо же было умудриться, что у раста total не соответствует ни фактически занимаемому месту, ни сумме элементов из-за округлений при целочисленном сложении.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #179

93. Сообщение от name_not_found (??), 10-Ноя-25, 14:36   +1 +/
Производная работа - нельзя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

94. Сообщение от Аноним (8), 10-Ноя-25, 14:36   –3 +/
Где-то тут:

В uutils: ... total # больше фактического

причём НЕ соответствует сумме. Растманы объясняют ошибку целочисленного сложения "округлением".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

95. Сообщение от Аноним (8), 10-Ноя-25, 14:38   +/
> A file that occurs multiple times shall be counted and written for only one entry
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

96. Сообщение от Аноним (89), 10-Ноя-25, 14:40   +/
Главное, чтобы комар... чекер боровов нос не подточил.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

97. Сообщение от Аноним (8), 10-Ноя-25, 14:41   +/
В си почему-то не было переполнения стёка, а в расте - переполнение... Программисты на расте как-то по особенному пишут - намного кривее, чем на си?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #99, #116

98. Сообщение от Аноним (8), 10-Ноя-25, 14:44   –1 +/
В uutils:
35495   /var
37034   total # больше фактического

Очевидно же, что total должен быть 35495 (в GNU всё правильно показывается), а не 37034. К чему в расте сделали виртуальных попугаев, не соответствующих действительности?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #102

99. Сообщение от Аноним (81), 10-Ноя-25, 14:54   +/
Так GNU утилиты сколько лет существуют, естественно там уже много раз оптимизировано. Странно тоже самое требовать от нового проекта.

P.S. хотя CVE до сих под закрывают в GNU utils, что какбы позорно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #110

100. Сообщение от Да ну нахер (?), 10-Ноя-25, 15:01   –1 +/
>А зачем это на винде?

А зачем кривой косой вечно недопереписанный линукс, если можно взять настоящую операционную систему и просто установить на нее нужные утилиты?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #104, #109, #119

101. Сообщение от выбираем сорта (?), 10-Ноя-25, 15:07    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

102. Сообщение от Аноним (115), 10-Ноя-25, 15:12   +1 +/
за 25 лет никогда даже не пытался складывать эти циферки, типа а зачем, если при копировании на другую фс эти циферки станут другими, да и если удалять эти и записывать чтото на их место не факт что влезет, потому что разное кол-во файлов... du -h и там примерно можно прикинуть.

> К чему в расте сделали виртуальных попугаев

В убунте как всегда придумали свой велосипед и пытаются всех на него пересадить, в этом плане они с растом фактически нашли друг друга, чинить то что никогда не ломалось, и радостно об этом рапортовать

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98

104. Сообщение от Аноним (-), 10-Ноя-25, 15:15   –1 +/
> А зачем кривой косой вечно недопереписанный линукс, если можно взять настоящую
> операционную систему и просто установить на нее нужные утилиты?

Затем что:
1) в линухе у меня проекты билдуются - в разы быстрее. А я не маклауд тормозную ос ждать.
2) не делают мозги онлайн акаунтами, активациями, рекламой, AI в блокноте и отсылкой клавиш майкрософту для улучшения качества обслуживания.
3) в винде изначально вообще пакетногом манагера нет и установка софта VS linux это ужасный гемор, занимающий намного больше времени.
4) при попытке собрать что-то типа linux kernel винды вообще пожалуй загнутся нахрен.
5) с автоматизацией, родным тулингом и проч в винде полный кошмар, настолько что они вот в WSL вдарились и прочие msys.

В общем - нормальная операционка для буха Глаши и прочих кассиров с операторами ПК. Если кто хотел взаимодействие с компом на более продвинутом уровне - УПС. Винды это сущий кошмар. И майкрософт как вендор - головняка кусок.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #115

105. Сообщение от Аноним (105), 10-Ноя-25, 15:15   –2 +/
Неосиляторы как всегда ругают синтаксис
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

106. Сообщение от Аноним (-), 10-Ноя-25, 15:17   +1 +/
> Почему язык, который должен был облегчить программирование только усложнил его?

Ну что вы как маленький, решая 1 проблему - создали 100 новых. И получился такой себе брейнфак 2.0. Хотя современные C++ могут заспорить за это звание. Но это не точно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

107. Сообщение от Аноним (107), 10-Ноя-25, 15:20   +/
> Вообще-то - 100% совместимость с GNU Coreutils там на github'е в project
> goals заявлена.

Обещать - не значит жениться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #112

108. Сообщение от Аноним (105), 10-Ноя-25, 15:21   +1 +/
А что местные ыксепрты молчат?
>так как с одной стороны в поведении uutils есть логика и тестовый набор GNU Coreutils не выявляет проблем, но с другой стороны несовместимости с GNU Coreutils предписано обрабатывать как ошибки и поведение Busybox соответствует GNU Coreutils

Фактически это значит, что в любой момент логика gnu может поменяться, и тесты это не отловят.

Ответить | Правка | Наверх | Cообщить модератору

109. Сообщение от Медведь (ok), 10-Ноя-25, 15:22   +/
Навскидку: https://habr.com/ru/news/962756/
Упс, как же так? Это же НАСТОЯЩАЯ ОС!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

110. Сообщение от Аноним (115), 10-Ноя-25, 15:24    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

111. Сообщение от Аноним (111), 10-Ноя-25, 15:32   –1 +/
Отличная новость.
Шaвки тявкают, а караван продолжает идти.
Обкатают на убунте - начнут выкидывать гнурак и из более консервативных дистров.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #132

112. Сообщение от User (??), 10-Ноя-25, 15:37   +/
>> Вообще-то - 100% совместимость с GNU Coreutils там на github'е в project
>> goals заявлена.
> Обещать - не значит жениться.

"Горизонт, Петька - он как КОММУНИЗМ - удаляется по мере вашего к нему приближения..."

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #177

113. Сообщение от Анонимусс (?), 10-Ноя-25, 15:37   –1 +/
> У утилитах stdbuf и uptime реализована поддержка платформы OpenBSD.
> Улучшена сборка и тестирование на платформе FreeBSD.

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

Ответить | Правка | Наверх | Cообщить модератору

114. Сообщение от Медведь (ok), 10-Ноя-25, 15:41   +/
https://www.cvedetails.com/vulnerability-list/vendor_id-1902...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

115. Сообщение от Аноним (115), 10-Ноя-25, 15:43   –1 +/
боюсь что даже буху Глаше винда не оченьто и подходит, иначе зачем им тп и админы которых они дергают на каждый чих.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #167

116. Сообщение от Аноним (79), 10-Ноя-25, 15:43   –1 +/
А с чего ты взял, что в сишной версии переполнения нет? В сишной версии переполнение есть при поиске цикличных зависимостей (detect_loop). В растовской версии это пофиксили.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #122

117. Сообщение от Анонимусс (?), 10-Ноя-25, 15:44   –1 +/
> Иными словами это поведение -- часть стандарта.

А какой-то линукс posix compliant?
Если нет, то какие вообще перетензии?))

Нет никаких причин переносить наркоманскую логику разработчиков посикса, которые внезапно решили поменять поведение из реализации 2018 года на то. что цитируете вы.

2018 "It is implementation-defined whether a file that occurs under one file operand is counted for other file operands. The directory entry that is selected in the report is unspecified."
pubs.opengroup.org/onlinepubs/9699919799/utilities/du.html


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #134, #144

118. Сообщение от Fyji (?), 10-Ноя-25, 15:51   –2 +/
> Но если хорошенько подумать, это вполне логично.

Где же логично?
Я попросил посчитать размеры нескольких каталогов - напр. некий общий каталог и каталоги каждого пользователя в нем.  
Мне нужны реальные размеры каждого из них, а не сидеть и суммировать всех пользователей чтобы узнать правильный размер общего как это возвращает GNU

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #139

119. Сообщение от Аноним (3), 10-Ноя-25, 15:52   +3 +/
можно взять freebsd так то да
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

120. Сообщение от Аноним (3), 10-Ноя-25, 15:54   +/
или так или ловите борова
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #125

121. Сообщение от Аноним (121), 10-Ноя-25, 15:57    Скрыто ботом-модератором–2 +/
Ответить | Правка | Наверх | Cообщить модератору

122. Сообщение от Аноним (3), 10-Ноя-25, 15:58   +/
ну и там пофиксят когда надо будет. это непричина генерировать кучу CO2
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #153

123. Сообщение от freehck (ok), 10-Ноя-25, 15:59   +/
Ну это легко объяснимо. Видите ли, POSIX не стоит на месте.

Так, например, в стандарте POSIX.1-2018, написано[1]:

> A file that occurs multiple times under one file operand and that has a link count greater than 1 shall be counted and written for only one entry. It is implementation-defined whether a file that has a link count no greater than 1 is counted and written just once, or is counted and written for each occurrence. It is implementation-defined whether a file that occurs under one file operand is counted for other file operands.

А вот в стандарте POSIX.1-2024, на который я ссылался ранее[2], написано следующее:

> A file that occurs multiple times shall be counted and written for only one entry, even if the occurrences are under different file operands.

Так что BSD du удовлетворяет стандарту 2018го года, а GNU du -- более свежему стандарту 2024го года.

[1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/d...
[2] https://pubs.opengroup.org/onlinepubs/9799919799/utilities/d...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #147

124. Сообщение от Аноним (62), 10-Ноя-25, 16:02   +/
https://app.opencve.io/cve/?vendor=rust-lang
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

125. Сообщение от Аноним (89), 10-Ноя-25, 16:09   +/
- Этот алгоритм запрограммировать невозможно.
- Почему?
- Боровчекер запрещает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120

127. Сообщение от Аноним (79), 10-Ноя-25, 16:11    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

128. Сообщение от Аноним (46), 10-Ноя-25, 16:11   +2 +/
> О, не знал, что раст даже целочисленные количества складывать не умеет, но
> растманы заявляют, что "соответствует сумме", хотя не соответствует по факту. Вы
> уж определитесь сначала.

И все бы хорошо, о Великий Воен Супротив Раста, но там выше - совсем не Раст. Там сишечка. Просто можно сначала округлить байтики до блоков и посчитать сумму, а можно наоборот. Угадай, что будет точнее.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

129. Сообщение от User (??), 10-Ноя-25, 16:12   +/
> Много раз здесь повторяли. Это просто тесты. Это не тесты на совместимость.
> Их никто так не писал.
> Поэтому упоминание этих тестов в новостях, без оговаривания данного факта, является обманом.

Ну, т.е. выводит du _какую-то_ сумму - а какую именно GNU Coreutils не интересно, лишь бы не пустоту. Выдает date -r file _какую-то_ дату (А может и не "дату" - "строку", во!) - и опять-таки, тесты не для совместимости сделаны - тесты хорошие!
Ляпотаааа... Вот прям даже не знаю, кто тут эээээ больший чудак выходит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #178

131. Сообщение от Аноним (131), 10-Ноя-25, 16:15   +/
ну здрасьте, лет 10 планомерно выкидываем гну на мороз и тут такие вопросы. Если вы не интересуетесь опенсорсом, то к чему тогда вопросы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

132. Сообщение от Аноним (89), 10-Ноя-25, 16:16   +/
Из одобренных дистров (RYF) не выкинут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #142

134. Сообщение от freehck (ok), 10-Ноя-25, 16:21   +1 +/
А никаких претензий. Вы в своём праве считать новую логику "наркоманской" и не имплементировать её.
Если разработчики uutils решат положить болт на POSIX compliance, для СПО это может будет даже хорошо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

136. Сообщение от Аноним (46), 10-Ноя-25, 16:27   +3 +/
> 1540    /var/log
> 35495   /var
> 37033   total # больше фактического, но соответствует сумме /var и
> /var/log
> Не соответствует! 1540 + 35495 = 37035, а не 37033!

Начнем с того, что в оригинале не 37033 а 37034, закончим тем, что "-m     like --block-size=1M".
Все там соответствует. Особенно если не подменять последние циферки в "цитировании" 🙄.


du -smc /var/log /var
7    /var/log
942    /var
948    total

uu-du -smc /var/log /var
7    /var/log
942    /var
948    total

du -sc /var/log /var  
6708    /var/log
963712    /var
970420    total

calc 6708 + 963712
    970420
calc 970420/1024
    947.67578125


Ай-ай, опять Воены облажались. Так вы никогда не остановите Ржавое Вторжение и не спасете Галактеку!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

137. Сообщение от Медведь (ok), 10-Ноя-25, 16:29    Скрыто ботом-модератором–2 +/
Ответить | Правка | Наверх | Cообщить модератору

139. Сообщение от freehck (ok), 10-Ноя-25, 16:30   +/
Ну вот ты и укажешь du -smc /home/* /home, и получишь именно то, что хочешь:
- по одной строке с суммой на каждый каталог пользователя
- строку с /home, где будет просуммировано всё, что не вошло в /home/*
- и строку total с корректным общим размером /home со всеми подкаталогами

Альтернативно, ты можешь указать du -md 1 /home, и тогда ты получишь:
- по одной строке с суммой на каждый каталог пользователя
- строку с /home, где будет учтено всё, что находится в /home со всеми подкаталогами

Фишка нового поведения по стандарту 2024-го года как раз в том, что ты можешь получить размеры конкретных подкаталогов отдельно от того, что остаётся в топ-каталоге, плюс вывести корректный total.
Это более гибкое поведение: ты получаешь всё необходимое с одного запуска du, и не надо дополнительно второй раз его гонять с эксклудами. Удобно ж.

PS: И это мы ещё не поднимали вопрос о том, что старое поведение выводило завышенный total, что делало данную строчку вообще невалидной.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118

140. Сообщение от Медведь (ok), 10-Ноя-25, 16:32   +/
> GNU tsort обрабатывает 100000 элементов за 56 секунд. Растовский за 2 секунды


$ wc -l ./tsort_input.txt
100000 ./tsort_input.txt
$ time tsort ./tsort_input.txt > /dev/null
real    0m0,107s
user    0m0,101s
sys     0m0,005s

Скрипт генерации файла:


import random

def generate_tsort_file(filename, num_nodes=100000, num_edges=100000):
    """
    Генерирует файл для tsort с num_nodes узлами (1..num_nodes)
    и num_edges рёбрами (зависимостями), где каждая зависимость — это пара (a, b), a < b.
    """
    with open(filename, 'w') as f:
        for _ in range(num_edges):
            a = random.randint(1, num_nodes - 1)
            b = random.randint(a + 1, num_nodes)
            f.write(f"{a} {b}\n")

if __name__ == "__main__":
    random.seed(42)  # для воспроизводимости (удалите или измените seed, если нужно)
    generate_tsort_file("tsort_input.txt", num_nodes=100000, num_edges=100000)
    print("Файл 'tsort_input.txt' успешно создан с 100000 случайными парами (a b, где a < b).")

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #146, #149

141. Сообщение от Аноним (46), 10-Ноя-25, 16:34   +4 +/
> Ты это хотел увидеть?
>> соответствует сумме
> НЕ соответствует. Раст: 1540 + 35495 = 37035 != 37033

Соответствует.
-m     like --block-size=1M

Просто ты классический Воен Супротив Раста, тебе некогда разбираться в "мелочах", тебе ведь Голактеку от Раста спасать надо! 😀

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

142. Сообщение от Анонимусс (-), 10-Ноя-25, 16:36   +/
> Из одобренных дистров (RYF) не выкинут.

Ты про писульку клованов из FSF?
Боже мой, да всем нacpaть (с)

Они все равно никак не влияют на рынок, что собственно и видно по списку рекомендованны“ дистров - сплошные васяноподелия вроде Hyperbola, Parabola и прочего от непонятных васянов.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #160

143. Сообщение от Аноним (105), 10-Ноя-25, 16:39   +/
>Проблема в том, что переписанные тесты переписаны также качественно

Где воен против погр=аного раста увидел, что тесты переписаны?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

144. Сообщение от Аноним (105), 10-Ноя-25, 16:40   +2 +/
>Нет никаких причин переносить наркоманскую логику разработчиков посикса

Есть. Поскольку без посикса это уже будет не замена gnu coreutils, а соврешенно другой проект.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

145. Сообщение от Анонимусс (-), 10-Ноя-25, 16:41   +/
# бсд
# uutils

Ну так логично же.
uutils ориентировались на свободные бсдшные утилиты, а не на гнурак.
А busybox тоже под жпл, поэтому списывали они с gnu утилит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

146. Сообщение от Аноним (79), 10-Ноя-25, 16:42    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #148

147. Сообщение от Аноним (46), 10-Ноя-25, 16:45   +/
> Так что BSD du удовлетворяет стандарту 2018го года, а GNU du --
> более свежему стандарту 2024го года.

Я бы сильно удивился, если бы du из 13 фряхи удовлетворял 😉:
ll /usr/bin/du
-r-xr-xr-x  1 root  wheel    13K 21 Nov.  2022 /usr/bin/du*

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #150

148. Сообщение от Медведь (ok), 10-Ноя-25, 16:51   +/
Первая строка в файле: 83811 85636
100000-я строка: 97424 83811

$ time tsort ./tsort_input.txt > /dev/null
real    0m0,105s
user    0m0,101s
sys     0m0,004s

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

149. Сообщение от Аноним (149), 10-Ноя-25, 16:59   +/
```
/home/user: cat tsort_input.sh
#!/usr/bin/env bash
# Generate a long cyclic dependency chain (1 -> 2 -> ... -> N -> 1) to stress tsort's recursion
N=${1:-100000}
# Output edges forming a cycle: 1->2, 2->3, ..., (N-1)->N, then N->1
for i in $(seq 1 $((N-1))); do
    printf "%d %d\n" "$i" "$((i+1))"
done
printf "%d %d\n" "$N" "1"  # close the cycle (N -> 1)

/home/user: bash tsort_input.sh | save -f tsort_input

/home/user: timeit { open tsort_input --raw | /bin/tsort }
/bin/tsort: -: input contains a loop:
[...]
56sec 18ms 880µs 110ns

/home/user: /bin/tsort --version
tsort (GNU coreutils) 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mark Kettenis.
```

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #159, #161

150. Сообщение от freehck (ok), 10-Ноя-25, 17:02   +/
> ll /usr/bin/du
> -r-xr-xr-x  1 root  wheel    13K 21 Nov. 2022 /usr/bin/du*

Ну вот видите, ларчик-то просто открывался. =)

Я вот из интереса смотрел на du из базовой поставки MacOS -- там точно такая же ситуация.
Интересно было бы узнать, это BSD-шники свой du давно не обновляли, или Apple просто редко утягивает актуальные версии?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

151. Сообщение от Аноним (151), 10-Ноя-25, 17:21   +/
... все это хорошо, наверно; только когда в какой-нибудь sort появится возможность сортировать по заданному пользователем шаблону?... или ждать XXII век?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #155, #157

152. Сообщение от Фнон (-), 10-Ноя-25, 17:25   +/
Нет, не попадают.
Производность работы нужно еще доказать.
Что весьма сложно, если в новом коде не будет ни строчки из старого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #173

153. Сообщение от Аноним (-), 10-Ноя-25, 17:26   +/
>это непричина генерировать кучу CO2

Это формула угоекислого газа. А у амиака который выходит из анального отверстия не такая химическая формула.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #164

154. Сообщение от Фнон (-), 10-Ноя-25, 17:27   +/
> это поведение -- часть стандарта POSIX (см #40)

Поправочка, стандарта POSIX 2024.
Т.е достаточно сказать "нам и 2018 хватит" и можно забить на
> править баг им таки придётся

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

155. Сообщение от Аноним (-), 10-Ноя-25, 17:29    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151

156. Сообщение от Фнон (-), 10-Ноя-25, 17:32   –1 +/
>  просто возьмите и перепишите чтоб не было расхождения

даже если в оригинале какой-то бред?
Типа копировать хpeновые подходы, главное совместимось?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

157. Сообщение от Аноним (79), 10-Ноя-25, 17:36   +/
Ну в общем беш с сопутствующими утилитами - это не 22 век и никогда им не станет. Это безнадёжно устаревший подход к скриптам. Юзайте Nushell - там и язык нормальный с типами и структурами данных, и команды команды для скриптов богатые, и поддержка CLI флагов из коробки и параллельная обработка данных и много чего ещё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151

158. Сообщение от Аноним (158), 10-Ноя-25, 17:43    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору

159. Сообщение от Медведь (ok), 10-Ноя-25, 17:58   +/
Специально ради тебя качнул бунту 25. И как-то чуда не произошло:


lubuntu@lubuntu:~$ time tsort ./tsort_input.txt > /dev/null
<...>
real    0m59.015s
user    0m57.733s
sys     0m1.084s
lubuntu@lubuntu:~$ tsort --version
tsort (uutils coreutils) 0.2.2

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #162

160. Сообщение от бесплатный как яйцо (?), 10-Ноя-25, 18:00   +1 +/
> Они все равно никак не влияют на рынок

Никто с ваших птицеферм не влияет на рынок.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

161. Сообщение от Аноним (79), 10-Ноя-25, 18:06    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

162. Сообщение от Аноним (149), 10-Ноя-25, 18:10   +/
/home/user: tsort --version
tsort (uutils coreutils) 0.4.0

/home/user: timeit { /home/user/.cargo/bin/tsort ./tsort_input_1mil out+err>| ignore }
4sec 502ms 483µs 869ns

Дидовский tsort за два часа не справился - пришлось прибить.

Убунту качать, что бы попробовать uu_tsort не нужно - достаточно сделать `cargo install uu_tsort` и собрать + поставить ровно вот эту утилиту.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #165

163. Сообщение от Аноним (163), 10-Ноя-25, 18:10    Скрыто ботом-модератором–2 +/
Ответить | Правка | Наверх | Cообщить модератору

164. Сообщение от бесплатный как яйцо (?), 10-Ноя-25, 18:15   +/
Михаил тоже учился на химика. А стал широко известным в узких кругах линуксоидом. Почему? Очевидно потому, что в химии ему ничего не светило.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

165. Сообщение от Медведь (ok), 10-Ноя-25, 18:15   +/
> достаточно сделать `cargo install uu_tsort` и собрать

Смотри, пыль поднялась -- это я бегу эту фигню ставить...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162 Ответы: #169

166. Сообщение от бесплатный как яйцо (?), 10-Ноя-25, 18:19   +/
Числа числами, а от сумы не зарекайся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

167. Сообщение от бесплатный как яйцо (?), 10-Ноя-25, 18:23    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

168. Сообщение от Америка (?), 10-Ноя-25, 18:37   +/
Это отблески грядущего
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

169. Сообщение от Аноним (79), 10-Ноя-25, 18:56    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165 Ответы: #172

170. Сообщение от excanonicalemail (?), 10-Ноя-25, 19:22   –1 +/
ИМХО, выглядит как классический пример UB(Undefined Behavior). Либо в спеку добавить и покрыть тестом, либо забить болт.
Ответить | Правка | Наверх | Cообщить модератору

171. Сообщение от Анон1110м (?), 10-Ноя-25, 19:29   +/
ИИ не существует. Есть нейросети.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

172. Сообщение от Медведь (ok), 10-Ноя-25, 20:18   +/
Ты не умеешь в ventoy? Ржавуны такие ржавуны...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169

173. Сообщение от Аноним (178), 10-Ноя-25, 20:26   +/
Доказать нетрудно. Сравнение делает эксперт, а не робот, по смыслу, а не построчным стравнением.
Один раз доказал, и все эти ваши многолетние "переписывания" моментально становятся принудительно (решением суда) GPL-лицензированными.
Но ты продолжай уговаривать себя и других. Для пермиссивщиков норма - воевать не в ту сторону, и постоянно побеждать себя же самих.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

174. Сообщение от Аноним (178), 10-Ноя-25, 20:28   +1 +/
Вот что бывает, когда код генерирует Псевдоинтеллект. То заглушки в коде, то расхождения..
Цирк безопасТности.
Ответить | Правка | Наверх | Cообщить модератору

175. Сообщение от Аноним (175), 10-Ноя-25, 20:33   +/
Clean room implementation запрещает смотреть в гнутый код, в котором посиксной лажи напрогали вместо того, чтобы сделать нормально (зато на PDP-11 работает).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

176. Сообщение от Аноним (176), 10-Ноя-25, 20:33   +/
Ахилл никогда не догонит черепаху
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

177. Сообщение от Аноним (178), 10-Ноя-25, 20:37   +/
> он как КОММУНИЗМ

Он как лuбepaльная свобода.. Как голубая бypжyuнская мечта.. Как.. придумай сам свежий и актуальный анекдот. А не ищи в глубокой старине оправданий своей глyпости, трyсости и пpeдатeльству.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

178. Сообщение от Аноним (178), 10-Ноя-25, 20:41   +/
В GNU Coreutils люди код пишут. И предъявляют к нему требования. А тесты - дополнительная страховка.
Ну и вывод Busybox с Coreutils совпадает.. Так что, Д'Артаньян, перелогинься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

179. Сообщение от Аноним (81), 10-Ноя-25, 21:15   +/
> Опять сишники в штаны Расту

А в чем ирония, что сишники не умеют писать тесты? А причем тогда тут раст?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру