The OpenNET Project / Index page

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



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

"Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива"  +/
Сообщение от opennews (?), 21-Окт-25, 23:11 
В написанной на языке Rust библиотеке async-tar, предоставляющей функции для чтения и записи tar-архивов, выявлена уязвимость (CVE-2025-62518, кодовое имя TARmageddon), позволяющая при распаковке специально оформленного tar-архива не только извлечь размещённые в нём файлы,  но и файлы, содержащиеся во вложенном tar-архиве. Уязвимость может быть использована для обхода систем верификации архивов и распаковки файлов, для которых не выполнялась проверка...

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

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

Оглавление

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

2. Сообщение от Аноним (2), 21-Окт-25, 23:15   +106 +/
Это успех, я считаю!

Кто со мной согласен - ставим плюсик

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #49, #133, #144, #286, #299

4. Сообщение от Tron is Whistling (?), 21-Окт-25, 23:22   +30 +/
Не просто плюсик, а ++ - два плюсика.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #10

6. Сообщение от Аноним (6), 21-Окт-25, 23:24   +30 +/
Вы не понимаете! Это другое!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

9. Сообщение от Аноним (6), 21-Окт-25, 23:26   +12 +/
А сколько багов остаются незамеченными тупо из-за того, что раст вынуждает писать нечитаемую лапшу и раздувать изначально компактный код в несколько раз
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #19, #23, #102, #113

10. Сообщение от Anonimbus (?), 21-Окт-25, 23:27   –2 +/
С плюсом-плюсом XD
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

12. Сообщение от morphe (?), 21-Окт-25, 23:31   +9 +/
> Проблема вызвана тем, что уязвимые библиотеки при распаковке файлов вместо вычисления смещения на основе размера из расширенного заголовка PAX, брали размер из устаревшего заголовка ustar. При нулевом значении размера в заголовке ustar, идущее за ним содержимое файла обрабатывалось как корректный блок TAR-заголовков для следующего файла.

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

Остаётся вопрос почему размер из PAX должен иметь приоритет, ведь теперь проблема может быть обратной - реализации TAR без поддержки PAX будут читать архивы иначе чем исправленная версия.

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

15. Сообщение от Аноним (15), 21-Окт-25, 23:37   +/
А ты зоркий. Молодец, заметил - именно что другое. А то бы налетели сейчас местные сишники-ПравильныеПогромисты... Никаких тебе выходов за пределы буфера, обращения к освобожденной памяти или двойного освобождения памяти... Ну, именно того, от чего и должен спасать раст. А просто "логическая" ошибка. От которой никто не обещал (и не мог) защитить. Не в той позиции что-то там в файле считали и не проверили. Ну это те самые гугловско-майкрософтовские оставшиеся "30% ошибок", которые уже только напряжением мозгов нужно избегать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #24, #25, #40

16. Сообщение от Аноним (16), 21-Окт-25, 23:38    Скрыто ботом-модератором–1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #53

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

19. Сообщение от Аноним (15), 21-Окт-25, 23:43   +1 +/
нечитаемая она для местных сишников. А кто вкатился в эту тему и какое-то время  в этом варился - заявляют, что всё прекрасно читается и понимается. Дело привычки. А техдир гугла еще и заявляет что команды, разрабатывающие проекты на расте, в два раза продуктивнее команд сиплюсплюсников. Предположу, что командная работа с "нечитаемой лапшой" не могла бы быть в два раза продуктивнее "абсолютно понятных" божественных плюсов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #26

20. Сообщение от Аноним (20), 21-Окт-25, 23:46   +3 +/
Вот видите! Вот такими и должны быть баги, логическими ошибками, а не позорным переполнением буфера
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #82

21. Сообщение от Аноним (15), 21-Окт-25, 23:47   +3 +/
> А шуму то было, мол на расте уязвимостей вообще быть не может

Это от вас, сишников, этот шум. Из раза в раз. От растовиков шум - не будет _только ошибок работы с памятью_ (если не пользоваться ансейфом), а не "всех-всех-всех ошибок". И их, ошибок по памяти, таки пока что-то не наблюдается в товарных количествах, как на божественном.

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

23. Сообщение от Аноним (15), 21-Окт-25, 23:56   +/
>  и раздувать изначально компактный код в несколько раз

и вдогонку, из соседней новости, про принятие в ядро Linux 6.18 реализации Binder IPC для Android, написанная на Rust:

"...Несмотря на продвинутые возможности и поддержку объектов со сложной семантикой владения, драйвер на Rust получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода."

Ну т.е. после этого нам _очень_ интересно твое "икспертное" мнение. Ты наверное много программ написал сразу в двух вариантах - на си и на расте, чтобы сравнить и выдать свои ценные замечания, верно? Ведь верно?

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

24. Сообщение от Аноним (24), 21-Окт-25, 23:57   +17 +/
В новости ошибка работы с памятью. Да, ошибка не с оперативной памятью.
Так выход за границы массива это логическая ошибка или нет? Если программист на Си ошибётся в размере массива, то это одно, а когда на rust ошибка с размером в структуре данных, то это другое?
Нет, дружочек, это одного рода проблемы. Да, rust спасает от ошибок с оперативной памятью, с этим спорить не буду.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #34, #39, #80

25. Сообщение от Аноним (25), 21-Окт-25, 23:58   +3 +/
> оставшиеся "30% ошибок", которые уже только напряжением мозгов нужно избегать

Ну раз напряжением мозгов, то софт на расте точно обречён. Ибо в него и привлекают-то лишь всякими "вам больше не нужно думать о размере буферов и указателях", а основная масса растофанов прекращает читать на слове "думать".

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

26. Сообщение от Аноним (6), 21-Окт-25, 23:59   +8 +/
Ты даже не понимаешь о чем речь, сразу видно что вкатился и варился. Когда даже книжный алгоритм приходится перелопачивать так, что он становится сам на себя не похож. Сколько из-за таких выкрутасов в коде возникает логических ошибок, невозможно и представить. Пока нормальные люди пишут код так, чтобы он был легко читаем и понятен, такие как ты варятся и вкатываются и навязывают остальным свои шизоидные извращения. Необходимы клиники для реабилитации, а еще лучше принудительные работы не связанные с компьютерами
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #41, #45, #47, #211, #220

27. Сообщение от Аноним (6), 22-Окт-25, 00:01   +1 +/
Сотни других неудобных примеров мы конечно проигнорируем, да?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #51, #112

28. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 00:01   –1 +/
Не, ребят, сегодня не ваш день. Сначала предатели, пардон, производители процессоров вместе с Линусом в спину ударили, а теперь - вот))
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #130, #140

29. Сообщение от Аноним (24), 22-Окт-25, 00:02   +/
Можно подробнее, пожалуйста?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #30

30. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 00:03   +/
> Можно подробнее, пожалуйста?

https://www.opennet.dev/opennews/art.shtml?num=64091

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

31. Сообщение от Аноним (-), 22-Окт-25, 00:04    Скрыто ботом-модератором–3 +/
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #33, #54

32. Сообщение от Аноним (24), 22-Окт-25, 00:04   +1 +/
Спасибо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

33. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 00:08   +/
> Ой, как будто кто-то сейчас пользуется таким древним овном как TAR?
> Оно появилось более 40 лет назад.

Архивы кода по умолчанию с GitHub в tar.gz отдаются))

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

34. Сообщение от morphe (?), 22-Окт-25, 00:08   +13 +/
> В новости ошибка работы с памятью.

В новости ошибка с неправильной интерпретацией спецификации

В файле стоит

Заголовок ustar:
  размер этого файла 0 байт
Заголовок PAX:
  размер этого файла 20мбайт

Старая реализация приоритетной считала значение из ustar, читала 0 байт файла, и дальше читала вложенный tar как содержимое основного tar файла

А должна была читать PAX, и пропускать 20мбайт как содержимое файла

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

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

35. Сообщение от Аноним (-), 22-Окт-25, 00:09   +/
Так и не ваш тоже opennet.ru/opennews/art.shtml?num=64092
Вы же не будете сравнивать какую-то либу с ядром.

ЗЫ: а чего в ту тему не заглянули, проффесор? сказать нечего было?

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

36. Сообщение от Аноним (-), 22-Окт-25, 00:11   +/
> Архивы кода по умолчанию с GitHub в tar.gz отдаются))

Эм... нет, это вы у себя что-то нахимичили с настройками. По умолчанию отдается zip.
github.com/torvalds/linux
Download ZIP

Проверьте сами.

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

38. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 00:13   +/
> Так и не ваш тоже opennet.ru/opennews/art.shtml?num=64092
> Вы же не будете сравнивать какую-то либу с ядром.

Спасибо, посмеялся)) Не, не поможет ;)

> ЗЫ: а чего в ту тему не заглянули, проффесор? сказать нечего было?

Потроллить на сон грядущий ;) Не всё ж вам развлекаться))

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

39. Сообщение от Аноним (15), 22-Окт-25, 00:13   –2 +/
> Так выход за границы массива это логическая ошибка или нет? Если программист на Си ошибётся в размере массива

Чисто казуистический прием. Разницу-то в ошибках вы (да все остальные) всё равно поняли ;)  Да, да, старая проблема при холиварах на этом сайте: как же обозвать все эти разные ошибки. Но тут уже более распространено мнение/определение, что есть ошибки работы с памятью (те 70% о которых гугл распинался), а есть остальные, "логические" (вот как раз когда не то или не оттуда считали или введенное значение на допустимость значений не проверили или когда уставший сонный программист знаки больше с меньше перепутал).

> Если программист на Си ошибётся в размере массива, то это одно, а когда на rust ошибка с размером в структуре данных, то это другое?

Это просто офигенно другое! И если ты этого честно не понимаешь (сомневаюсь в этом), то ты просто профнепригоден.

> Нет, дружочек, это одного рода проблемы

Не дружок ты мне пока, а тролль. И это очень разного рода проблемы.

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

40. Сообщение от Аноним (6), 22-Окт-25, 00:16   +2 +/
На другой тип ошибок нужен еще один ЯП!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #52

41. Сообщение от Аноним (-), 22-Окт-25, 00:17   –4 +/
>  нормальные люди пишут код так, чтобы он был легко читаем и понятен

Ага, видели мы тот код "от нормальных людей"
Как тебе функция-портянка на 1000+ строк кода?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
Естественно с кучей кала в виде goto - нормальной обработки ошибок ведь не завезли...

И ведь это ядро! Его же пишут профи))

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

А принудительная стререлизация, ну чтобы уже на 100% как faшики, будет?

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

42. Сообщение от Аноним (-), 22-Окт-25, 00:21   –2 +/
> Спасибо, посмеялся)) Не, не поможет ;)

Конечно не поможет.
Если человек ставит в один ряд ядро линукс и какую-то либу от дилетантов.. то это многое о нем говорит)

> Потроллить на сон грядущий

Получилось весьма уныло.
Может лучше про коммунизм? Та щиза хотя бы веселее звучит!

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

43. Сообщение от Аноним (-), 22-Окт-25, 00:22   +9 +/
> спецификацию расширили не пойми как

Там всё ещё интереснее. Этих форматов tar было как собак нерезаных. Когда POSIX решил это дело стандартизовать, он взял два формата ustar и PAX и объединил их в один. Это не расширение, это просто какой-то толпоиппизм. Я как-то думал написать реализацию tar в образовательных целях, в рамках ознакомления с каким-то очередным язычком программирования (а заодно и с tar ознакомиться), и забил именно из-за того, что разбираться со всеми этими завихрениями дидовского мышления не было никакого желания.

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

> Остаётся вопрос почему размер из PAX должен иметь приоритет

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

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

45. Сообщение от Аноним (45), 22-Окт-25, 00:27   +2 +/
> Когда даже книжный алгоритм приходится перелопачивать так, что он становится сам на себя не похож.

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

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

46. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 00:31   +1 +/
> Конечно не поможет.
> Если человек ставит в один ряд ядро линукс и какую-то либу от
> дилетантов.. то это многое о нем говорит)

Снова посмеялся)) Не пытайтесь вырулить, говорю ж - не поможет)) Вам производители процессоров такую свинью подложили, прям загляденье.

>> Потроллить на сон грядущий
> Получилось весьма уныло.

Но вы ж стриггерились - значит уже нормально ;)


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

47. Сообщение от Аноним (15), 22-Окт-25, 00:32   +1 +/
Так а что же ты про техдира гугла не завернул? Вот же он наверное лох, похоже из клиники для реабилитации выступал. Ну или его подло обманули агенты раста с метриками разработки, подло оболгав плюсовиков. Но я конечно поверю тебе, а не ему.

> Ты даже не понимаешь о чем речь, сразу видно что вкатился и варился

К твоему сожалению, правда совсем-совсем немного, понимаю. Года три назад, не зная языка, "не вкатываясь", просто взяв примеры кода и подправив их под себя, сделал себе утилитку, работающую с внешними ресурсами (отчеты с биржи стягивает). _Почти_ всё там было понятно и аккуратно. Но да, язык учить надо. Сложное так просто не напишешь. Впрочем, как и на си.

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

49. Сообщение от Грустный (?), 22-Окт-25, 00:33   +1 +/
Наконец-то хорошая новость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

51. Сообщение от Аноним (15), 22-Окт-25, 00:33   +/
Эти "сотни других неудобных примеров" только в Вашей голове? Откуда сотни примеров, если Вы и Ваши соратники утверждаете, что на расте вообще ничего не написано?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #59

52. Сообщение от Аноним (52), 22-Окт-25, 00:34   –1 +/
Может, Zig?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #90

53. Сообщение от morphe (?), 22-Окт-25, 00:36   +1 +/
> Legacy? Не, не слышал. Конечно же, виновата спека, а не святые растоманы.

Так легаси точно так же этот PAX не читают и точно так же обосрутся как и реализация на Rust)

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

54. Сообщение от Аноним (52), 22-Окт-25, 00:37   +2 +/
Раст обделался с перепмсыванием, значит, tar ненужен! Л - логика.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

55. Сообщение от Аноним (55), 22-Окт-25, 00:37   –5 +/
Сишникам совсем уже делать нечего. Нашли микроскопическую ошибку и раздули из этого целую "уязвимость".
Удалите новость, опеннет, не позорьтесь.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #58, #282

56. Сообщение от Аноним (6), 22-Окт-25, 00:38   +1 +/
Мне видно что ты читать не умеешь или какие-то ограничения в мыслительном аппарате, хз. Это где-то в первом классе у детей спрашивают про что пословица "без труда не вытащишь и рыбку из пруда" и они отвечают "про рыбку"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

58. Сообщение от Аноним (52), 22-Окт-25, 00:39   +/
Нееет, выделите новость 20-м шрифтом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #60

59. Сообщение от Аноним (6), 22-Окт-25, 00:41   +1 +/
Ничего не пишут, только переписывают
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #162

60. Сообщение от Аноним (15), 22-Окт-25, 00:43   +/
Чтобы все оценили "кекспертизу" обсуждающих её сишников
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

61. Сообщение от Аноним (92), 22-Окт-25, 00:44   –2 +/
Почему программисты на Rust не могут <буквально> переписать логику с реализацией на C, а придумывают собственные дырявые велосипеды? Вообще, тот факт, что на Rust без ИИ программировать не получается по признанию его фанатов наводит на некоторые размышления...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #78, #79, #121, #146

62. Сообщение от Аноним (6), 22-Окт-25, 00:45   +1 +/
На расте функция конечно будет не 1000 строк, размер функций же от ЯП зависит
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

65. Сообщение от Аноним (92), 22-Окт-25, 00:59   –2 +/
Функцию на тысячу строк можно на любом языке написать, если что. Понимать подобный код на Rust будет также сложно как на C с goto, поскольку только в Rust и regex смысл строки может кардинально измениться всего из-за одного символа. Неудивительно, что без ИИ с ним не разобраться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #83

66. Сообщение от Аноним (24), 22-Окт-25, 00:59   +3 +/
> а есть остальные, "логические" (вот как раз когда не то или не оттуда считали или введенное значение на допустимость значений не проверили или когда уставший сонный программист знаки больше с меньше перепутал).

Так выход за границы массива – это буквально всё, что вы перечислили.

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

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

69. Сообщение от Витюшка (?), 22-Окт-25, 01:20   +3 +/
Уровень кекспертизы подоспел.
У вас есть буфер с содержимым "слово" из 5 символов.
По спецификации нужно прочитать третью букву "о", вы этого не поняли и прочитали букву в. Где здесь ошибка работы с памятью и где выходит за границы массива?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

71. Сообщение от Аноним (15), 22-Окт-25, 01:30   –2 +/
>> > а есть остальные, "логические" (вот как раз когда не то или не оттуда считали или введенное значение на допустимость значений не проверили или когда уставший сонный программист знаки больше с меньше перепутал).
> Так выход за границы массива – это буквально всё, что вы перечислили.

И тут врёте и всё перекручиваете. Говорю же, казуистика. Брехня.

>Считали данные не с того места.

Где тут выход за пределы массива? Я может потом просто захочу создать массив на это считанное откуда-то число элементов. Считал какие-то данные - не значит что полез в массив  по смещению или без проверки сложил значение с указателем, как в сишечке.

> Не проверили границу.

Где там про проверку _границ_ написано? Сами слово добавили и сами обвиняете? Допустимость значений - это типа "остаток на счете должен быть больше либо равен нулю". Где здесь граница? Да и в расте ты так просто и "незаметно", как в си, не выйдешь за границу массива.

> Уставший сонный программист запутался в инкременте в цикле for.

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

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

77. Сообщение от Аноним (77), 22-Окт-25, 02:04   +2 +/
Не ошибается тот, кто ничего не делает. Давайте зароем топор войны Rust и C!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #107, #150, #181, #315

78. Сообщение от Аноним (80), 22-Окт-25, 02:11   +1 +/
>Почему программисты на Rust не могут <буквально> переписать логику с реализацией на C

Потому, что тогда у них будут буквально те же самые дыры, что и на си. Ибо на си нет афинных типов данных.

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

79. Сообщение от Медведь (ok), 22-Окт-25, 02:12   +5 +/
> Почему программисты на Rust не могут <буквально> переписать логику с реализацией на C, а придумывают собственные дырявые велосипеды? Вообще, тот факт, что на Rust без ИИ программировать не получается по признанию его фанатов наводит на некоторые размышления...

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

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

80. Сообщение от Аноним (80), 22-Окт-25, 02:25   +1 +/
>Так выход за границы массива это логическая ошибка или нет?

В новости ничего не говорится о выходе за границы массива, Rust от такого защищает.
>Если программист на Си ошибётся в размере массива

То будет порча памяти.
>а когда на rust ошибка с размером в структуре данных

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

Да, другое. В случае сишной уязвимости, при распаковке можно было бы вызвать условный curl | bash, здесь - только переписать файлы.

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

82. Сообщение от Медведь (ok), 22-Окт-25, 02:39   +4 +/
> Вот видите! Вот такими и должны быть баги, логическими ошибками, а не позорным переполнением буфера

Ффух, мне даже как-то легче стало. Так вот какими они должны быть -- баги на расте! Если я в программе на C сделаю баг как на расте -- можно? Или это будет опять позорный дыряшечный дидовский баг? Или такие баги разрешено делать только на расте, а всем остальным -- ни-ни, не трогай, это на новый год... ой, то есть для раста? Короче, можно полную инструкцию, какими должны быть правильные баги?

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

83. Сообщение от morphe (?), 22-Окт-25, 02:55   +2 +/
> поскольку в Rust смысл строки может кардинально
> измениться всего из-за одного символа.

А теперь приведи хоть один пример когда такое может произойти


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

85. Сообщение от Аноним (85), 22-Окт-25, 03:24   +2 +/
> Естественно с кучей кала в виде goto - нормальной обработки ошибок ведь
> не завезли...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #125, #131, #156

86. Сообщение от Аноним (24), 22-Окт-25, 03:27   +/
> В случае сишной уязвимости, при распаковке можно было бы вызвать условный curl | bash

Нельзя. С чего бы? Если речь только про ошибку при обработке данных, а не ошибке работы с ram.

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

87. Сообщение от Ruslan (??), 22-Окт-25, 03:54   +/
Так это же замечательно, что какой-то инструмент позволяет не думать о том, что к делу не относится и сосредоточиться на прикладной задаче.

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

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

88. Сообщение от Аноним (88), 22-Окт-25, 04:05   +/
Очередные неосиляторы юнит тестов. Попросили бы ИИ написать, даже самим не надо париться.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #120

90. Сообщение от Аноним (90), 22-Окт-25, 04:31   +/
Хороший вариант. Вон, в Редоксе на него драйвера переписывают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #135

91. Сообщение от Аноним (92), 22-Окт-25, 04:36   +/
И что, без аффинных типов в безопасном коде на Rust будут дыры? Вот это новость!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

92. Сообщение от Аноним (92), 22-Окт-25, 04:54   +2 +/
Вот сосредоточиться на прикладной задаче чет не получается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

94. Сообщение от Аноним (20), 22-Окт-25, 05:45   +3 +/
Объясняю, почему так вышло - потому что в программе на Си такой баг тоже будет. Но прежде, чем поймать его, вы будете ловить переполнения буффера, двойное освобождение и прочие подобные баги памяти, и только потом логические. А тут вот ловятся сразу уже логические баги. Экономия времени
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #98

98. Сообщение от Аноним (-), 22-Окт-25, 06:41   –1 +/
Во-первых, все баги которые могут случится на чистом Си хорошо документированы и описаны. Кто пишет на чистом Си, и реально желает избежать багов, тот их избежит. Вина в не внимательности и торопливости.

>А тут вот ловятся сразу уже логические баги. Экономия времени

Дело не в характере ошибок, делов их в количестве. Не думаю, что общее количество ошибок на Расте меньше, чем в Си.

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

102. Сообщение от Дурка (?), 22-Окт-25, 07:12   +2 +/
Лапша есть и возможна на каждом языке программирования.
Скажите вот эта растовая лапша, почему она вас так цепляет? Давайте проверим.
Макфа? Есть реакция?
Есентуки?
Медведь?
Анон?
Opennet?
Может быть Дядюшка Боб? Что-то есть фиксирую, мы теряем пациента, быстрее введите ему чистый код внутревенно.
Фух вроде отпустило?

А если серьезно даже не знаю чел сходи до книжного и прочитай чистая архитектура и идеальная работа.

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

106. Сообщение от Фрол (?), 22-Окт-25, 07:51   +1 +/
скиньте кто-нить этому умнику линк на словарь Ожегова

а то от его "афинных" типов у меня скоро глаз дергаться начнет

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

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

107. Сообщение от Аноним (6), 22-Окт-25, 07:56   +/
Вместе с ростом xd
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

109. Сообщение от Аноним (109), 22-Окт-25, 08:05   +/
V in vibrant community means CVE
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #315

112. Сообщение от Аноним (112), 22-Окт-25, 08:29   +2 +/
> Сотни других неудобных примеров мы конечно проигнорируем, да?

Какие сотни, если ты ни одного не привел?

Тебе вон дали буквально из соседней новости: кодя в Linux залит, и по сравнению с сишным стал не только проще, но и компактнее.

Скажешь что-то сожержательное?

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

113. Сообщение от Аноним (112), 22-Окт-25, 08:34   +/
> А сколько багов остаются незамеченными тупо из-за того, что раст вынуждает писать нечитаемую лапшу

Откроем-ка осоеднюю новость: https://www.opennet.dev/opennews/art.shtml?num=64092

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

Смотри, эксперт, количество ошибок при использовании Раста только убавилось. Как так?

> раздувать изначально компактный код в несколько раз

Из той же новости:

"драйвер на Rust получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода."

Смотри, Растовый код не только не раздулся по сравнению с изначальным сишным, но даже стал меньше его! Как так? 😭

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

116. Сообщение от Тфьу (?), 22-Окт-25, 08:56   +/
Обычная логическая ошибка. Сам Rust не причём.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #143

117. Сообщение от Аноним (117), 22-Окт-25, 09:02   +/
Тогда пиши на луа и питоне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

118. Сообщение от Аноним (118), 22-Окт-25, 09:09   +/
в одну строку поди писали, все равно ведь раст нечитаемый.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #134

120. Сообщение от Аноним (121), 22-Окт-25, 09:18   +/
Сама суть unit тестов в том, что ты их сам пишешь осознанно, и не доверяешь "ИИ" с его галлюцинациями.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

121. Сообщение от Аноним (121), 22-Окт-25, 09:21   +/
Кампания популяризации Rust от корпораций как раз нужна им, чтобы набить кодовую базу для "ИИ", а потом "ИИ" всё будет писать сам. Им для "ИИ" нужен был язык, где нет "утечек" по умолчанию. (хотя это спорно). В итоге в будущем много софта будет AI slop написанным на Rust
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

122. Сообщение от Аноним (80), 22-Окт-25, 09:23   +/
С того, что ошибки обработки данных в сишных программах встречаются редко, а вот ошибки управления памятью - часто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

123. Сообщение от Аноним (123), 22-Окт-25, 09:23   –1 +/
> От растовиков шум - не будет _только ошибок работы с памятью_ (если не пользоваться ансейфом), а не "всех-всех-всех ошибок"

не-не, там еще шум, что раз нет ошибок с памятью, то будет больше времени отловить остальные.
Вот отлов и пошел — tar не так распаковывается, с md5 тоже что-то не так

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

124. Сообщение от ИмяХ (ok), 22-Окт-25, 09:28   +1 +/
>>вызвана некорректным выбором позиции в потоке

Нужно срочно изобрести язык, который защищает от некорректношо выбора позиции в потоке и всё ПО переписать на него.

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

125. Сообщение от Аноним (80), 22-Окт-25, 09:30   +1 +/
Лапшекод из goto осуждал ещё Дейкстра. Для нормальной обработки нужен как минимум типы Option и Result. А не спагетти, когда выполнение прыгает туда-сюда.
>Вот интересно, обработка ошибок по твоему она магическая какая-то или ей занимается отдельный код?

Да магическая. Поскольку goto ограничен пределами текущей функции, си вынуждает растягивать определния, в то время как монадическая обработка(как минимум) позволяет разбивать функцию на мелкие части.
>Настоящий кал - это как раз запихать в ядро код обработчиков ошибок.

Он уже там есть, только в виде лапши из goto.

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

126. Сообщение от Аноним (80), 22-Окт-25, 09:33   –3 +/
>Лапша есть и возможна на каждом языке программирования.

Не на каждом. Достаточно убрать goto и количество лапши уже резко упадёт.

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

128. Сообщение от Аноним (80), 22-Окт-25, 09:36   –1 +/
>Если я в программе на C сделаю баг как на расте -- можно?

Если матёрые сишники с этим не справляются, то почему вы должны?
>Короче, можно полную инструкцию, какими должны быть правильные баги?

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

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

129. Сообщение от Аноним (80), 22-Окт-25, 09:40   +/
>Во-первых, все баги которые могут случится на чистом Си хорошо документированы и описаны.

Часть багов, которые могут случится на си созданы разработчиками си и называются UB. Ещё часть багов никак не называется, но проистекает из тупой сишной семантики, типа отсуствия гигиенических макросов, нультерминированных строк, отсутствии алгебраических типов и так далее. И что в первом, что втором случае, нужно приложить достаточно усилий, чтобы очередной сишник заметил подвох.
>Дело не в характере ошибок, делов их в количестве. Не думаю, что общее количество ошибок на Расте меньше, чем в Си.

Как только вы отсекаете ошибки управления памятью, то вы автоматически уменьшаете количество ошибок. Логических ошибок от этого больше не становится.

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

130. Сообщение от Аноним (80), 22-Окт-25, 09:41   +/
>Не, ребят, сегодня не ваш день

Сказал человек неосиливший xml парсер. От вас так и веет некомпетентностью.

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

131. Сообщение от Прохожий (??), 22-Окт-25, 09:42   +1 +/
Похоже, вы в упор не понимаете разницу между готовыми абстракциями (которые предоставляет Rust) и собственным велосипедом (который из проекта в проект изобретают программисты на C).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #175

132. Сообщение от Аноним (80), 22-Окт-25, 09:43   +/
>услышал где-то умное слово

Так я хочу, чтобы вы тоже услышали, а вы уши затыкаете. Ну и узнали что это такое.

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

133. Сообщение от Соль земли2 (?), 22-Окт-25, 09:49   +1 +/
И слепой поведёт слепого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

134. Сообщение от Прохожий (??), 22-Окт-25, 09:51   –1 +/
>в одну строку поди писали

1. Зачем вы свои проблемы проецируете на других?

2. Чтобы не заниматься догадками, можно полезть в исходный код и посмотреть самостоятельно. Или такое действие слишком сложно для типичного "эксперта“, воина борьбы супротив Rust?

Спойлер. Нет, в одну строчку на Rust (как и на любом другом языке программирования) типичные программисты не пишут.

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

135. Сообщение от Аноним (52), 22-Окт-25, 09:53   +1 +/
Да ну?! А что же с Растом не так?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

136. Сообщение от Соль земли2 (?), 22-Окт-25, 09:53   +1 +/
Может проблема вообще в tar? С какого перепугу архив внутри архива воспринимается как продолжение одного?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #158, #174

139. Сообщение от Медведь (ok), 22-Окт-25, 10:03   +1 +/
Большинство растеров сами не понимают, что это такое -- афинные типы. Но как звучит! Афинные! Греция, оливки, голые рабы на аренах... Они и бегут, пуская слюни и oбляпaвшись смyзи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #147, #209, #287, #290

140. Сообщение от Аноним (-), 22-Окт-25, 10:07   +/
> производители процессоров

Так в АРМ такая проверка уже давно есть.
Но раст в Андроид внедряют.

Если проверка такая крутая, то почему она не помогает))?

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

142. Сообщение от bOOster (ok), 22-Окт-25, 10:14   +1 +/
То-то еще будет. Когда helloworld ваять на расте - там особых и мозгов то не надо. За 3 недели в любом рекламирующемся "factory".. до недопрограммиста!
Ответить | Правка | Наверх | Cообщить модератору

143. Сообщение от Ann (??), 22-Окт-25, 10:16   –1 +/
Ну, в языке C выход за границы массива и "use after free" -  это тоже обычные логические ошибки. Сам C не причем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #153, #154

144. Сообщение от Смузихлеб забывший пароль (?), 22-Окт-25, 10:24   +8 +/
но ведь... но безопасно же и боровы чекают и вообще, нельзя выйти за границу массива и безопасная работа с памятью
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

145. Сообщение от Аноним (6), 22-Окт-25, 10:24   –1 +/
Ну даже тут на opennete была куча примеров, что переписали драйвер на расте, функционал меньше, объем кода больше, мне лень гуглить, если у тебя память как у золотой рыбки, какой смысл мне тратить на это время? Все равно ты через секунду забудешь, бросай ты растоманство, совсем с головой худо будет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #256

146. Сообщение от Аноним (6), 22-Окт-25, 10:27   +1 +/
> Почему программисты на Rust не могут <буквально> переписать логику с реализацией на C, а придумывают собственные дырявые велосипеды? Вообще, тот факт, что на Rust без ИИ программировать не получается по признанию его фанатов наводит на некоторые размышления...

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

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

147. Сообщение от Аноним (80), 22-Окт-25, 10:29   +/
>Большинство растеров сами не понимают, что это такое -- афинные типы

Так я не на расте пишу, а вот сишников троллить - одно удовольствие.

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

148. Сообщение от Фрол (?), 22-Окт-25, 10:30   +/
если б ты его еще писал правильно цены б тебе не было

все эти "афинные" типы много помогли, когда прошлым летом выяснилось, что много лет назад в std::process::Command налажали с эскейпингом аргументов и все эти годы имели выполнение в шелле произвольной программы. как первокурсник-башпортянщик.

SUCH SAFE. MUCH SECURITY.

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

149. Сообщение от Аноним (80), 22-Окт-25, 10:33   –2 +/
Господа сишники, объясните мне, зачем вам нужна возможность разыменновывать null, и зачем вам нужны негигиенические макросы?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #151, #152, #161

150. Сообщение от 1 (??), 22-Окт-25, 10:47   +1 +/
Rust вообще как язык ничего. Растодрочерство бесит, как любая секта.
Ну или проще, хвали свое, но не надо хаять чужое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

151. Сообщение от bOOster (ok), 22-Окт-25, 10:58   +/
Сначала попробуй на низком уровне поработать с памятью, а потом глупости будешь спрашивать.
Хотя разыменовывать null - это тоже глупость. У дурачков зачастую функция возвращает указатель на данные и в какой-нибудь очень "плохой день", когда вдруг памяти не хватило (зачем это предусматривать - любой современный комп имеет ее вагон и маленькую тележку), или еще что-нибудь вдруг возвращает null. Дурачек есстественно не проверяет  сам указатель, а пытается его содержимое проверить на что-нибудь if(*lp .... ). Вот тебе и разыменовывание. Это недостаток мозгов. Так как в данном случае нужны 2 проверки, но дурачек об этом не знает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #167

152. Сообщение от Аноним (109), 22-Окт-25, 11:05   +6 +/
Потому что ассемблер так умеет, почему бы и сишке не уметь? А зачем тебе нужна возможность молотком себе по яйцам бить?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

153. Сообщение от Аноним (-), 22-Окт-25, 11:07   +3 +/
> Ну, в языке C выход за границы массива и "use after free" -  это тоже обычные логические ошибки.

Это когда приводят int к uint, получают переполнение с UB?
Что-то логикой тут не пахнет))


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

154. Сообщение от Тфьу (?), 22-Окт-25, 11:11   +2 +/
> Ну, в языке C выход за границы массива и "use after free"
> -  это тоже обычные логические ошибки. Сам C не причем.

Нет. Это неопределённое поведение.

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

156. Сообщение от Аноним (-), 22-Окт-25, 11:13   +1 +/
> Вот интересно, обработка ошибок по твоему она магическая какая-то или ей занимается  отдельный код?

Ага.
Например инвариант который проверит все возможные состояния.

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

Потому что ведро писал студент, а там как получилось)
Зато в ядре есть 100500 велосипедов, про которые этот самый бывший студент недавно говорил:  "You'd think that all the basics would have been fixed long ago, but they're not. We're still dealing with basic issues such as memory management."

Напомню что в недоязыках на старте не было даже структуры String не было.
А поддержка UTF до сих пор хромает.

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

158. Сообщение от Медведь (ok), 22-Окт-25, 11:22   +1 +/
> Может проблема вообще в tar? С какого перепугу архив внутри архива воспринимается как продолжение одного?

Чего уж там, если мир не подходит для раст -- нафиг такой мир. Всё должно быть таким, чтобы если скомпилировалось на раст -- значит работает. Эврика, я придумал, как писать абсолютно безглючные программы!

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

160. Сообщение от Медведь (ok), 22-Окт-25, 11:37   +/
> Как только вы отсекаете ошибки управления памятью, то вы автоматически уменьшаете количество ошибок. Логических ошибок от этого больше не становится.

Это было бы прекрасно, если бы не одно жирное "однако". Однако раст исключает (некоторые) ошибки управления памятью за счет драконовских, вообще говоря, ограничений боровчекера и ценой отказа от множества распространенных (проверенных, отработанных и удобных!) парадигм и техник программирования. Я не говорю уже о тормозах при компиляции из-за туевой хучи проверок и тому подобных неудобствах. Фокус в том, что это все вместе взятое вполне себе увеличивает вероятность появления ошибок остальных 100500 сортов, от которых раст не защищает.

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

161. Сообщение от Аноним (55), 22-Окт-25, 11:45   +1 +/
>зачем вам нужна возможность разыменновывать null

Потому что в железе нет никакого специального значения null, это как правило адрес 0x0. И это совершенно валидный адрес. На некоторых платформах (DOS, например) его нужно рызыменовывать, там начало таблицы ISR.
Никто не мешает тебе написать ОС, у которой по адресу 0x0 будут находиться какие-то вполне легальные данные.

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

162. Сообщение от Советский инженер (ok), 22-Окт-25, 11:47   –1 +/
> Ничего не пишут, только переписывают

отлично, о том и разговор.
значит ты легко приведеш примеры где перерисывание с С на Раст раздуло исходники.

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

163. Сообщение от Аноним (80), 22-Окт-25, 11:50   –1 +/
>Напомню что в недоязыках на старте не было даже структуры String не было.

Так и сейчас нет.

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

166. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 11:55   +2 +/
> Сказал человек неосиливший xml парсер. От вас так и веет некомпетентностью.

И это всё? Кроме унылых попыток перейти на личности больше уже ничего не осталось? Ни высосанных из пальца примеров кода? Ни набросов про undefined behavior?)) Совсем-совсем ничего? Да-а-а... Мельчает тролль)) Может вам пора другую работу поискать? Пока возможность есть? Поучиться там чему? Вопросы, если что - риторические, чисто вам на заметку.

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

167. Сообщение от Аноним (80), 22-Окт-25, 11:55   –1 +/
>Хотя разыменовывать null - это тоже глупость.

Удивительно, вы это признаёте.
>Так как в данном случае нужны 2 проверки, но дурачек об этом не знает.

То есть разделить указатели на два типа - точно не null и возможно null - и запретить разыменновывать те, которые возможно null - слишком сложно для сишников? Почему даже такая простая вещь до сих пор не встроена в компилятор?

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

168. Сообщение от Ann (??), 22-Окт-25, 11:56   –1 +/
Неопределенное поведение - это уже результат таких ошибок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #234

170. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 12:01   +/
> Так в АРМ такая проверка уже давно есть.
> Но раст в Андроид внедряют.
> Если проверка такая крутая, то почему она не помогает))?

Так это вы в Google спрашивайте, кого они там нанимают и как обучают, что им уже ничего не помогает.

Да, ребята, людей нужно нормально учить, других вариантов нет. Бесплатно учить. Ни "волшебные" ЯП, ни искусственный интеллект (который искусственный - да, но вот интеллект - нет) вам не помогут. Придётся прибылью делиться со всеми.  


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

173. Сообщение от Аноним (80), 22-Окт-25, 12:04   –1 +/
>Однако раст исключает (некоторые) ошибки управления памятью за счет драконовских, вообще говоря, ограничений боровчекера

Почему вы до сих пор не предложили не драконовские ограничения? Где соответствующая теория?
>ценой отказа от множества распространенных (проверенных, отработанных и удобных!) парадигм и техник программирования

Программа должна быть корректной. Если вам так тяжело писать на rust, то почему бы не перейти на языки с gc, типа go или ocaml?
>Я не говорю уже о тормозах при компиляции из-за туевой хучи проверок

Которые вы придумали. Вот пример для крестов https://habr.com/ru/companies/jugru/articles/438260/ когда короткая программа расягивает компиляцию на несколько порядков. Осилите аналогичный пример для rust?

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

174. Сообщение от Аноним (80), 22-Окт-25, 12:05   +1 +/
У тара куча проблем, например невозможность быстрого просмотра индекса, но к новости они отношения не имеют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

175. Сообщение от Аноним (175), 22-Окт-25, 12:09   +1 +/
>собственным велосипедом (который из проекта в проект изобретают программисты на C

Э погоди! Ты делаешь необоснованный вброс о том, что велосипеды это плохо. Если сишник начнёт делать что-то более менее верхеуровневое, он неизбежно станет программировать то, что уже до него кто-то делал. Это нормально.

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

178. Сообщение от anonymous (??), 22-Окт-25, 12:14   +/
Как раз таки вырастет и читаемость упадет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

179. Сообщение от bOOster (ok), 22-Окт-25, 12:21   +/
>>Хотя разыменовывать null - это тоже глупость.
> Удивительно, вы это признаёте.
>>Так как в данном случае нужны 2 проверки, но дурачек об этом не знает.
> То есть разделить указатели на два типа - точно не null и
> возможно null - и запретить разыменновывать те, которые возможно null -
> слишком сложно для сишников? Почему даже такая простая вещь до сих
> пор не встроена в компилятор?

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

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

180. Сообщение от Аноним (-), 22-Окт-25, 12:25   +/
> Эти сишники такие-же как и растовики. 3 месяца тупого образования. Правда за растовиками обычно компилятор гамно прибирает.

Т.е автоматизация, как любят программисты.

> Сишники которые проблему знают и представляют - таких ошибок не делают.

А ж где таких взять? Чтобы клонировать)

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

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

181. Сообщение от Аноним (55), 22-Окт-25, 12:27   +/
Кек.

>найден баг в софте на си

растеры: ахаха, фуу, диды, шерето, дырявое, закопать!

>найден баг в софте на расте

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

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

182. Сообщение от bOOster (ok), 22-Окт-25, 12:27   –1 +/
>>зачем вам нужна возможность разыменновывать null
> Потому что в железе нет никакого специального значения null, это как правило
> адрес 0x0. И это совершенно валидный адрес. На некоторых платформах (DOS,
> например) его нужно рызыменовывать, там начало таблицы ISR.
> Никто не мешает тебе написать ОС, у которой по адресу 0x0 будут
> находиться какие-то вполне легальные данные.

Осью это обычно не ограничивается. RESET традиционно начинает с 0го адреса, если принудительно не задано иное. И там будет код jmp или реально исполнимый код. А эту область памяти - код, трогать очень нежелательно. Ну и да, таблицы прерываний - хотя они так-же могут быть перенесены куда-то. Но это не делают. Всем проще считать адрес прерывания 0+

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

183. Сообщение от Аноним (183), 22-Окт-25, 12:29   +/
> Чтобы не заниматься догадками, можно полезть в исходный код и посмотреть самостоятельно

А что им смотреть, если они сами пишут, что синтаксис Раста не осилили? Они ж не поймут ничего! 😂

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

185. Сообщение от Аноним (183), 22-Окт-25, 12:32   +/
> Как так? 😭

Боюсь, внятного ответа по теме мы уже не получим. Воин против Раста вон плюсиков за свой вброс получил от собратьев - и все, миссия выполнена.

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

187. Сообщение от bOOster (ok), 22-Окт-25, 12:33   –1 +/
>> Эти сишники такие-же как и растовики. 3 месяца тупого образования. Правда за растовиками обычно компилятор гамно прибирает.
> Но судя по тому, что ты написал, выходит "если взять рандомных сишников
> и растовиков, то от последних овна будет меньше, тк компилятор поубирал".

Толку от них будет напорядок меньше. Так как если человек с Си связывается - он хотя-бы математический класс закончил. И базовые алгоритмы программирования знает, хотя и опыта ему не хватает. Но через определенное время он натренируется.
Rust же - это залетные -"Ой, в IT платят хорошо". толку от них не будет даже в дальней перспективе, так как rust сдохнет в угоду еще чему нибудь.  


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

191. Сообщение от Аноним (-), 22-Окт-25, 12:44   +/
> Толку от них будет напорядок меньше.

Хм.. чего тогда в соседней теме сложную и важную штуку в ядре заменяют?

> Так как если человек с Си связывается - он хотя-бы математический класс закончил. И базовые алгоритмы программирования знает, хотя и опыта ему не хватает.

Звучит как-то притянуто за уши.
Что мешает уйти в СИшку самоучке вообще без образование.

> Но через определенное время он натренируется.

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

> Rust же - это залетные -"Ой, в IT платят хорошо". толку от них не будет даже в дальней перспективе, так как rust сдохнет в угоду еще чему нибудь.

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


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

193. Сообщение от bOOster (ok), 22-Окт-25, 12:47   +1 +/
>> Толку от них будет напорядок меньше.
> Хм.. чего тогда в соседней теме сложную и важную штуку в ядре
> заменяют?

ТОлько во "влажных мечтах" недопрограммистов там "важную штуку в ядре заменяют". И в данном случае я считаю Торвальдса кретином, так как он тупо не понял в чем преймущество плюсов. Хотя для MacOS/iPhoneOS objectiveC/C++ используются повсеместно, с уровнем безопасности не хуже ржи... Да и в BSD нет прямого запрета на использование C++ в ядре.

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

194. Сообщение от bOOster (ok), 22-Окт-25, 12:52   +/

>> Rust же - это залетные -"Ой, в IT платят хорошо". толку от них не будет даже в дальней перспективе, так как rust сдохнет в угоду еще чему нибудь.
> Тут ты уже в фантазии ушел.
> Народ который пишет на расте, зачастую пришли с сишки или плюсов.
> Т.к для других задач есть

Откровенный бред нести не надо. Никто с С, а тем более с плюсов на Rust не пойдет (кроме пары процентов совсем отмороженых). Особенно для разработки backend-а, а для frontend-а, ты сам написал - "есть более удобные ЯП со сборщиком мусора." Тот же GO например.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #191 Ответы: #200, #201, #246

195. Сообщение от Аноним (-), 22-Окт-25, 12:55   –2 +/
> ТОлько во "влажных мечтах" недопрограммистов там "важную штуку в ядре заменяют".

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

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

196. Сообщение от Аноним (80), 22-Окт-25, 12:56   –1 +/
>И это всё? Кроме унылых попыток перейти на личности больше уже ничего не осталось?

Как говорится
>Talk is cheap. Show me the code.

Вы свой код уже показали, ваш уровень не дотягивает даже до студента.

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

198. Сообщение от bOOster (ok), 22-Окт-25, 12:59   +/
>> ТОлько во "влажных мечтах" недопрограммистов там "важную штуку в ядре заменяют".
> Хочешь сказать что биндер-драйвер для миллионов андроид устройств, это так, мелочь)?
> Ну ок, ты наверное ракеты к звездам запускаешь, раз такое пренебрежение.

Биндер-Драйвер... Мдеее.. поржал.

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

199. Сообщение от Аноним (80), 22-Окт-25, 12:59   –1 +/
>Сишники которые проблему знают и представляют - таких ошибок не делают.

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

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

200. Сообщение от Аноним (-), 22-Окт-25, 13:00   +/
> Откровенный бред нести не надо. Никто с С, а тем более с плюсов на Rust не пойдет (кроме пары процентов совсем отмороженых).

"Бред" это ты сам выдумал?
ТОРом пользуешься? Ну так вот создатели ТОР-клиента сами решили создать Arti на замену сишному.
Клоудфларя, амазон, мелкомягкие.. там тоже отмороженные?
Гугл в конце концов: они переводят команды С/C++ на раст.

> Особенно для разработки backend-а,

Именно для разработки бекенда.
Если нужны хотя бы какие-то гарантии, а в ультра ограниченную МИСРУ лезть не хочется, а до АДЫ еще не доросли процессы.

> а для frontend-а, ты сам написал - "есть более удобные ЯП со сборщиком мусора." Тот же GO например.

Да. Поэтому растом могут заинтересоваться только системщики, которые до его появления довольствовались убогим СИ.


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

201. Сообщение от Аноним (80), 22-Окт-25, 13:01   +/
>Откровенный бред нести не надо. Никто с С, а тем более с плюсов на Rust не пойдет

Прямо рядом соседняя новость
В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на Rust - https://www.opennet.dev/opennews/art.shtml?num=64092#118
>Реализация Binder на Rust аналогична по функциональности с изначальным вариантом на языке Си, проходит все тесты AOSP (Android Open-Source Project) и может использоваться для создания рабочих редакций Android-прошивок. Несмотря на продвинутые возможности и поддержку объектов со сложной семантикой владения, драйвер на Rust получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода.

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

202. Сообщение от Аноним (-), 22-Окт-25, 13:04   +/
> Биндер-Драйвер... Мдеее.. поржал.

Смех без причины признак...

Просто открываем репозиторий ядра
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eafedbc7c050

И просто читаем 'add Rust Binder driver'
Я понимаю, что ты настолько круче разрабов ядра, что ржешь целыми днями.
Но свой уровень компетенции показал отлично.


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

203. Сообщение от Аноним (80), 22-Окт-25, 13:05   +/
>Осью это обычно не ограничивается. RESET традиционно начинает с 0го адреса, если принудительно не задано иное.

Отлично, у нас есть уже какой-то проблеск сознания. А теперь расскажите мне, зачем это нужно в любом более менее прикладном софте? И почему в си это UB, как же тогда прерывания считывать?

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

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

205. Сообщение от Аноним (-), 22-Окт-25, 13:10   +/
>Часть багов, которые могут случится на си созданы разработчиками си и называются UB.

Неопределённое певедение возникает из-за особенности архитектуры компьютера. Язык Си тут не причём. Все ситуации, при которой может возникнуть неопределённое поведение описано во всех учебниках по языку Си, избежать их не трудно.

>Ещё часть багов никак не называется, но проистекает из тупой сишной семантики,

Из сишной семантики проистекtат только одна ситуация когда в операции сранения программист путает знак < == >  со знаком < ==>. Других багов не знаю.

>типа отсуствия гигиенических макросов,

Я даже не знаю, что такое гигиенический макрос, и зачем он нужен.

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

Нуль-терминированные строки для относительно низкоуровневого языка нормальное явление. Компилятор не должен заниматься подсчётом строк. Алгебраический тип данных в таком языке как Си просто напросто не нужен. Алгебраический тип данных хорош для языков которые запускаются на виртуальной машине, как Python или Java, или же для мета-языка как C++

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

Поверь мне чисто-сишнику не нужно прилагать никаких усилий. Надо быть просто внимательным.
Все беды сишников от элементарной невнимательности.

>Как только вы отсекаете ошибки управления памятью, то вы автоматически уменьшаете количество ошибок. Логических ошибок от этого больше не становится.

Сравнительного анализа общего количества ошибок в проектах где пишут на Си и Раст, ещё не проводилось. Для чистоты эксперимента должны браться проекты разработка которых началась в примерно в одно и то же время, и имеющих одинаковое количество строк кода. Раст появился недавно, а Си давно и поэтому критики языка Си так изгаляются.

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

207. Сообщение от ProfessorNavigator (ok), 22-Окт-25, 13:12   +/
>>И это всё? Кроме унылых попыток перейти на личности больше уже ничего не осталось?
> Как говорится
>>Talk is cheap. Show me the code.
> Вы свой код уже показали, ваш уровень не дотягивает даже до студента.

Да без проблем)) Только при чём здесь я? Речь то пров вас идёт, господа. В общем, попытка съехать с темы не засчитана ;)

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

208. Сообщение от Аноним (-), 22-Окт-25, 13:16   +1 +/
>Давайте. Как минимум без выхода за границы массива

Не получится. Потому-что подсчётом размера массива занимается сам программист. Растаманам задницу всё время подтирает компилятор, а это плохо. Сишник самостоятелен, растаман нет.

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

209. Сообщение от Аноним (-), 22-Окт-25, 13:21   +1 +/
>голые рабы на аренах

В Древней Греции рабов на арену не пускали. На арене были атлеты, свободные граждане. Ну да в голом виде, без трусов. Просто нижнего белья как трусы тогда не знали.

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

210. Сообщение от bOOster (ok), 22-Окт-25, 13:28   +/
>>Откровенный бред нести не надо. Никто с С, а тем более с плюсов на Rust не пойдет
> Прямо рядом соседняя новость
> В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на
> Rust - https://www.opennet.dev/opennews/art.shtml?num=64092#118
>>Реализация Binder на Rust аналогична по функциональности с изначальным вариантом на языке Си, проходит все тесты AOSP (Android Open-Source Project) и может использоваться для создания рабочих редакций Android-прошивок. Несмотря на продвинутые возможности и поддержку объектов со сложной семантикой владения, драйвер на Rust получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода.

Я же тебя предупреждал - не делай из себя клоуна.
IPC это InterProcessCommunication. К ядру он имеет весьма опосредованное отношение и работать будет абсолютно по другому. С издержками на передачу данных и т.д.
То-то я думаю что последние Андроед помойку напоминают, из которой мусор уже как 2 редакции не вывозили.

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

211. Сообщение от freecoderemail (ok), 22-Окт-25, 13:28   +/
8 лет разрабатываю на Rust, с такими проблемами не сталкивался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

213. Сообщение от bOOster (ok), 22-Окт-25, 13:32   +/
Ну да, в ядро в целом Растовиков не пустили, поджопник выписали, так они полезли через Окно - "InterProcessCommunication".
Смешно еще больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202 Ответы: #222

214. Сообщение от freecoderemail (ok), 22-Окт-25, 13:34   +/
Можете привести распространённые парадигмы, от которых отказывается Rust? Наследование реализации не в счёт, в Си его тоже нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160 Ответы: #267

215. Сообщение от Аноним (215), 22-Окт-25, 13:36   +/
Любопытная новость, спасибо. Хороший пример ошибки, которую может совершить программист независимо от используемого языка.

Полагаю, если Rust продолжат форсить по прежнему, мы увидим ещё не один и не два подобных примера.

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

216. Сообщение от anonymous (??), 22-Окт-25, 13:36   +/
Потому что указатель это не некая магическая сущность, а просто целое число, содержащее адрес байта в памяти (виртуальной а бывает и физической). Осознай это и многое станет понятнее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167 Ответы: #306

217. Сообщение от anonymous (??), 22-Окт-25, 13:38   +1 +/
По крайней мере на x86 RESET НЕ НАЧИНАЕТСЯ с адреса 0, это вас кто-то обманул.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #182

218. Сообщение от Пыщь (?), 22-Окт-25, 13:39   +1 +/
А в байтах какова разница, за вычетом комментариев?
Я
//комментарий раз
  могу
//комментарий два
       оформить
//комментарий три
                предложение
/* очередной бесполезный блок
   с комментарием */
                            так.
Строк многовато вышло, меряться оформлением - так себе затея. А что, индусам за количество строк платили где-то когда-то..

Кто-то вообще макросами не часто пользуется, или любит "копировать -> вставить" подобные куски с небольшими отличиями вместо inline с параметрами (навскидку подумалось).

Мне вот больше интересен результат сборки из исходников: быстродействие, применение внешних библиотек, определение/задействование возможностей исполняющей техники (всякие sse, avx, gpu вычисления и прочее-прочее) и всякие UB в исполняемом файле.

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

219. Сообщение от anonymous (??), 22-Окт-25, 13:40   +/
Не UB, а implementation defined поскольку архитектуры (сюрприз) бывают разные.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203 Ответы: #257

220. Сообщение от Аноним (220), 22-Окт-25, 13:41   +/
Это проблема только для олимпиадников, которые алгоритмы зазубрили как стишок. Если понимаешь суть алгоритма, нет никаких проблем в том, чтобы его реализовать с ограничениями ownership. (Да, в ряде частных случаев такая реализация станет менее эффективной - тут всегда выбор, или с этим мириться, или воткнуть unsafe. Но это редкость).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #298

222. Сообщение от Аноним (-), 22-Окт-25, 13:48   +/
> Ну да, в ядро в целом Растовиков не пустили, поджопник выписали

Что значит не пустили? Они наоборот получили полный картбланш от Торвальдса и Грега.
А сишным разрабам позатыкали рты и замерджили код в обход мейнтейнера, который потом вообще ушел. Не нужно тут всех пытаться успокоить, что типа "все нормально, сколько там того раста".

> так они полезли через Окно - "InterProcessCommunication".

Эти кода в ядре - в ядре.
В мейнлайне - в мейнлайне.
Вот и всё.

Но кроме него уже в мейнлайне - drivers/gpu/nova-core и drivers/gpu/drm/nova, QT2025, ASIX AX887xx. Кроме них outside mainline - Apple AGX, ashmem, NVMe driver.
И готов поставить десятку что их тоже впихают в ядро.

PS: вот из-за таких как ты, которые говорят "ой, да что там тот раст", раст в ядро так легко и впихнули.

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

227. Сообщение от Медведь (ok), 22-Окт-25, 14:06   +/
> Почему вы до сих пор не предложили не драконовские ограничения? Где соответствующая теория?

О, пардон, я не в курсе что говорю практически с отцом-основателем. Так это вы придумали теорию типов? Снимаю шляпу. Скажите, а часовню -- тоже вы?...

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

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

> Которые вы придумали. Вот пример для крестов
> Наследование реализации не в счёт, в Си его тоже нет.

А что это вы, батенька, пример компиляции приводите для C++, а парадигмы решаете ограничить голыми Cями?

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

229. Сообщение от Аноним (55), 22-Окт-25, 14:18   +/
>почему в си это UB

А почему в си это UB?

>негигиенические макросы

Это фича, никто ее менять не будет. Видно, что вы не пишете на С, раз задаете такие вопросы.
Если добавлять гигиенические макросы, то они должны быть отдельной сущностью, не те которые #define.
Хотите такие макросы и запрет разыменования null - сделайте прототип нового С. Судя по тому что вы пишете, вам это будет несложно. Если это будет интересно сообществу - вас на руках будут носить.

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

230. Сообщение от Аноним (230), 22-Окт-25, 15:28   –2 +/
> int к uint

ЯП в котором этого нельзя сделать (ао многих вообще unsigned типов нет) - низкоскоростные помойки, т.к. например так можно хакнуть приведение числа в диапазон 0..X, если исходный int мог быть отрицательным - unsigned достаточно проверить только на < X, проверка > 0 уже не нужна. В компутор вижн такое полезно.

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

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

А почему бы вам не перестать портить память? Знаете, у меня нет ни малейшего желания ревьювить каждую программу, которая почему-то плохо работает, и тем более её переписывать.
>А что это вы, батенька, пример компиляции приводите для C++, а парадигмы решаете ограничить голыми Cями?

Ну вот вам пример, какой бардак развели диды https://www.opennet.dev/opennews/art.shtml?num=56449 - Опубликован набор патчей, ускоряющих сборку ядра Linux на 50-80%

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

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

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

233. Сообщение от Аноним (233), 22-Окт-25, 15:38   +/
> Да магическая. Поскольку goto ограничен пределами текущей функции, си вынуждает растягивать определния, в то время как монадическая обработка(как минимум) позволяет разбивать функцию на мелкие части.

Причем тут монадическая обработка? Обработка исключений вроде try ... catch в C++ (и других языках) - это не синтаксический сахар, а генерация отдельного кода под это дело, даже не всегда тривиального. В ядре же стараются избегать неявного кода.

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

234. Сообщение от Тфьу (?), 22-Окт-25, 15:38   +1 +/
> Неопределенное поведение - это уже результат таких ошибок.

Ага. Поэтому C плох.

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

236. Сообщение от Аноним (236), 22-Окт-25, 15:40   +1 +/
> ЯП в котором этого нельзя сделать (ао многих вообще unsigned типов нет) - низкоскоростные помойки,

Угу, а у нас высокоскоростная помойка)

> т.к. например так можно хакнуть приведение числа в диапазон 0..X, если исходный int мог быть отрицательным - unsigned достаточно проверить только на < X, проверка > 0 уже не нужна.

И получить выстрел в ногу.

> В компутор вижн такое полезно.

Уязвимости из-за хаков и костылей? Сомнительно.

Но даже так, каст может быть явный, где программер делает осознанное действие, а может быть как в недоязычках.
Вот из недавнего "Уязвимости в библиотеке libxml2"
opennet.ru/opennews/art.shtml?num=63431

Какой-то ге(й)ний решил использовать для size переменную signed.
В функции  ̶п̶р̶о̶и̶з̶о̶ш̶л̶а̶ ̶ч̶у̶д̶о̶в̶и̶щ̶н̶а̶я̶ ̶о̶ш̶и̶б̶к̶а̶ случился неявный каст signed в unsigned size_t.
Вам дырень, получите и распишитесь.


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

237. Сообщение от Аноним (80), 22-Окт-25, 15:42   +/
>Все ситуации, при которой может возникнуть неопределённое поведение описано во всех учебниках по языку Си, избежать их не трудно.

Такие ситуации должны избегаться автоматически. Почему программа с синтаксической ошибкой не собирается, а программа с UB - собирается?
>Из сишной семантики проистекtат только одна ситуация когда в операции сранения программист путает знак

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

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

Ровно до тех пор, пока кто-то не попортит память.
>Алгебраический тип данных в таком языке как Си просто напросто не нужен.

Вы там знаете
>Надо быть просто внимательным.

Ну вы как просто вниметельный человек просмотрите весь код линукса, иксорга и прочих программ.
>и имеющих одинаковое количество строк кода

Вы предлагаете специально раздувать код?

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

238. Сообщение от Вася Пупкин (?), 22-Окт-25, 15:44   +2 +/
Да, это скорее внешний признак, который говорит о том, что раст получает все большее распространение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215 Ответы: #243

239. Сообщение от Аноним (230), 22-Окт-25, 15:48   +/
> Какой-то ге(й)ний решил использовать для size переменную signed.

Во многих языках unsigned вообще нет, жабка, питон, и т.д.

> как в недоязычках ... Уязвимости в библиотеке libxml2

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

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

241. Сообщение от Медведь (ok), 22-Окт-25, 16:05   +/
> А почему бы вам не перестать портить память?

А я порчу? Надо же, не знал )))

> Ну вот вам пример, какой бардак развели диды https://www.opennet.dev/opennews/art.shtml?num=56449

А что, это патчи на каком-то другом C? Респект мужику, привел кодовую базу в порядок, молодец. А вот, первая ссылка в выдаче гугла, боль растофилов: https://users.rust-lang.org/t/is-rust-compile-time-really-th...

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

242. Сообщение от Аноним (-), 22-Окт-25, 16:07   +1 +/
> Во многих языках unsigned вообще нет, жабка, питон, и т.д.

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

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

Так тебе важнее скорость или отсутствие подобных сюрпризов)?

Может у гугла или амазона дойдут руки и они наймут растовиков.
Вон Биндер переписали - получилось надежнее чем на СИ и скорость не пострадала.


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

243. Сообщение от Facemakeremail (?), 22-Окт-25, 16:10   +/
Обратите внимание на этот проект: https://github.com/nushell/nushell

Скоро на всех экранах мира, как говорится.

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

244. Сообщение от Аноним (-), 22-Окт-25, 16:11    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241

245. Сообщение от Медведь (ok), 22-Окт-25, 16:13   +/
> И в данном случае я считаю Торвальдса кретином, так как он тупо не понял в чем преймущество плюсов.

Рукоплещу стоя! Полностью согласен. Дополню: BeOS|Haiku целиком на плюсах -- и ни разу от этого не плачут, а Хайку еще и летает шустрее.

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

246. Сообщение от Facemakeremail (?), 22-Окт-25, 16:20   +/
Выбирать Rust первым языком для вката в IT никто не будет, там, думаю, питонисты лидируют с большим отрывом (поскольку самый тупой язык). А вот перебежчиков на Rust с Си и C++ наблюдаю сотнями (это буквально: пообщался с народом на Rust-конференции).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194

247. Сообщение от Аноним (-), 22-Окт-25, 16:23   +/
> Рукоплещу стоя! Полностью согласен.

Ого, да тут сход анонимных критиков Торвальдса.
Бедняга наверное икает))

> Дополню: BeOS|Haiku целиком на плюсах -- и ни разу от этого не плачут, а Хайку еще и летает шустрее.

Что то ****, что это (с) Эскобар Теоремный
И какая распространенность у перечисленных ненужностей?



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

248. Сообщение от Аноним (230), 22-Окт-25, 16:28   –1 +/
> Так тебе важнее скорость

Мне незачем трястись над безопасностью, практически везде где я работал - софт или не открывал никаких пользовательских файлов, или делал это используя либы из ОС (андроид) изменить которые не представляется возможным, а тащить с собой их "безопасные" аналоги из-за параноидальных опасений попросту глупо, часто невозможно (для видеофайлов в 4к - сторонняя либа декодирования, не полагающаяся на аппаратное ускорение через механизмы ОС попросту сядет в лужу) да и вообще всем плевать. А баги - любой коммерческий разработчик знает, что их на любом ЯП в проекте будет предостаточно. А вот скорость важна.

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

249. Сообщение от Аноним (249), 22-Окт-25, 16:48   +/
А так было ясно изначально, природа не терпит пустоты. Уйдут ошибки работы с памятью на их место придут логические ошибки, и общее число ошибок будет прежним.
И вот уже на безопасном языке, небезопасная библиотека.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #250, #277, #313

250. Сообщение от Аноним (-), 22-Окт-25, 16:53   +/
> А так было ясно изначально, природа не терпит пустоты.

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

> Уйдут ошибки работы с памятью на их место придут логические ошибки, и общее число ошибок будет прежним.

А вот это просто пальцем в лужу.
Никаких доказательств.

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

251. Сообщение от Пыщь (?), 22-Окт-25, 17:00   +/
> И какая распространенность у перечисленных ненужностей?

Распространнёность уже отражает надёжность, производительность? x86 вон тоже костыль по сравнению с некоторыми другими архитектурами древности, однако ж взлетело.

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

252. Сообщение от Аноним (252), 22-Окт-25, 17:01   +1 +/
> Мне незачем трястись над безопасностью, практически везде где я работал - софт или не открывал никаких пользовательских файлов,

Браузер там был?

"Критическая 0-day уязвимость в Chrome и libwebp, эксплуатируемая через изображения WebP"
opennet.ru/opennews/art.shtml?num=59746
"0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик видео VP8"
opennet.ru/opennews/art.shtml?num=59838
Позволяют выполнить свой код при открытии специально оформленной web-страницы или изображения. На момент исправления в сети уже были эксплойты.

> или делал это используя либы из ОС (андроид) изменить которые не представляется возможным,

Но ты был бы не против, если либы "по умолчанию" будут написаны без подобной лажи?


> а тащить с собой их "безопасные" аналоги из-за параноидальных опасений попросту глупо, часто невозможно

Если этим не занимаются намеренно, например разработчики ОС.

> баги - любой коммерческий разработчик знает, что их на любом ЯП в проекте будет предостаточно. А вот скорость важна.

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


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

253. Сообщение от Аноним (252), 22-Окт-25, 17:05   +/
> Распространнёность уже отражает надёжность, производительность?

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

Надежность - да.
Т.к распространенное будут ковырять в первую очередь.

Немного перефразирую: "нет программ без багов, есть недообследованные"


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

254. Сообщение от Аноним (254), 22-Окт-25, 17:10   +/
> Вы свой код уже показали, ваш уровень не дотягивает даже до студента.

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

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

256. Сообщение от Аноним (256), 22-Окт-25, 17:38   +/
> на opennete была куча примеров, что переписали драйвер на расте, функционал меньше, объем кода больше

Не, друг, давай ссылки с цифрами. Пока что ты выдаешь только дешевый треп.

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

257. Сообщение от Аноним (256), 22-Окт-25, 17:47   +/
>> И почему в си это UB, как же тогда прерывания считывать?
> Не UB, а implementation defined поскольку архитектуры (сюрприз) бывают разные.

Согласно стандарту С разыменование нулевого указателя - это именно UB.

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

259. Сообщение от _ (??), 22-Окт-25, 18:12   –1 +/
Да брось! Ни малейшего шанса! :)

Такого уже было ... и так же пугали мол вот ОНО! Да хоть fish тоД-же :)


Будет установлен у 1% ... у тех, которые из 4% ;-DDDDD

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

263. Сообщение от Аноним (263), 22-Окт-25, 19:15   +/
>>почему в си это UB
> А почему в си это UB?

Потому, что это черным по белому написано в стандарте.

> запрет разыменования null - сделайте прототип нового С

А зачем новый, если и в старом это изначально запрещено стандартом?

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

264. Сообщение от Кошкажена (?), 22-Окт-25, 19:18   +/
Толку от него, если он будет только у тебя на локахосте?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243

267. Сообщение от Аноним (267), 22-Окт-25, 19:30   +/
глобальные переменные?
доступ к разделяемым данным на запись для всех?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #214

270. Сообщение от Аноним (267), 22-Окт-25, 20:06   +/
посмотрел исправление async-tar.patch. да, разработчики реализовали неправильную логику обработки заголовка. Но может Rust, всё-таки, виноват в этом? Может Rust настолько сложен, что даже сами разработчики не заметили в этом буреломе кода ошибку? А в простых языках ошибки сразу бросаются в глаза?  simpler! ... make it simpler! ... encore un fois!
Ответить | Правка | Наверх | Cообщить модератору

271. Сообщение от Аноним (271), 22-Окт-25, 21:00   +/
>Смотри, эксперт, количество ошибок при использовании Раста только убавилось. Как так?

Ответ в той же новости: за 15 лет развития "в старом коде накопился заметный технический долг, который усложнял как поиск ошибок, так и дальнейшую разработку. "
>Смотри, Растовый код не только не раздулся по сравнению с изначальным сишным, но даже стал меньше его!

300 строк разницы после переписывания с нуля? Если бы переписали на том же языке, результат мог быть лучше

мимо-эксперт

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

273. Сообщение от RM (ok), 22-Окт-25, 21:46   +/
Если одну и ту же информацию хранить больше чем в одном месте - рано или поздно содержимое копий не совпадет. "И чо тогда?"
На... т.е. зачем было добавлять еще одно поле размера, особенно если старое все еще должно быть совместимо, т.е. о увеличении разрядности речь не идёт - непонятно совсем.
Похоже спека таки кривая, т.е. непродуманая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

276. Сообщение от Аноним (-), 22-Окт-25, 22:09   –1 +/
> 300 строк разницы после переписывания с нуля? Если бы переписали на том  же языке, результат мог быть лучше

А мог бы и не быть.
Т.к инструмент остался тот же. Те же goto и отсуттсвие нормальных проверок ошибок, те же километровые функции, и тд
Мог бы ты каменным топором построить современный дом?


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

277. Сообщение от Аноним (277), 22-Окт-25, 22:41   +/
> природа не терпит пустоты. Уйдут ошибки работы с памятью на их место придут логические ошибки, и общее число ошибок будет прежним

Л - логика... Или это (не очень) тонкая ирония? "Щютка юмара"?

Кексперты всерьёз утверждают, что в их сишном коде _только_ ошибки работы с памятью, а "логических" нет? Первый тип ошибок исключает второй? А вот как только избавятся от первых, так сразу откуда-то польются вторые, заполнять пустоту? Сишные сумрачные гении не могут без ошибок? Если у них отберут первые ошибки, они что, специально начнут плодить вторые?

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

278. Сообщение от Аноним (45), 22-Окт-25, 23:04   +/
> стандарты не создают реальность, а фиксируют её такой, какая она есть

Есть два вида стандартов: те, которые фиксируют реальность (обычно с правками тех вещей, которые всех бесят), и те, которые разработаны комитетом (обычно в попытке сформировать реальность).

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

279. Сообщение от morphe (?), 22-Окт-25, 23:05   +/
А теперь скажи: какие это "правила эскейпинга" существуют на винде, где аргументы идут одной сплошной строкой
Ведь именно на винде этот баг и был, на Unix всегда всё хорошо с этим было
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #304

280. Сообщение от Аноним (45), 22-Окт-25, 23:07   –1 +/
> Кто пишет на чистом Си, и реально желает избежать багов, тот их избежит. Вина в не внимательности и торопливости.

Опять настоящих сишников ищет. Посмотри под юбками настоящих шотладнцев, может они там прячутся.

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

282. Сообщение от Аноним (282), 22-Окт-25, 23:30   +/
>Удалите новость, опеннет

Они и сайтам указывают.

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

283. Сообщение от Аноним (-), 23-Окт-25, 01:09   +/
> Неопределённое певедение возникает из-за особенности архитектуры компьютера. Язык Си тут не причём.

Что за бред? Напомните, UB описаны в даташите на процессор или в стандарте Си?

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

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

285. Сообщение от Аноним (271), 23-Окт-25, 02:39   +/
>А мог бы и не быть.

Не мог бы. Переписывание с нуля кода "с багажом" всегда даёт более компактный и  аккуратный код

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

286. Сообщение от аролп5 (?), 23-Окт-25, 08:38   +/
По-любому нейронка код генерировала
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

287. Сообщение от Аноним (-), 23-Окт-25, 10:00   +/
> Афинные! Греция, оливки, голые рабы на аренах...

Историк по образованию затесался на опеннет? У любого технаря первой ассоциацией со словом "афинные" будут "афинные преобразования" из геометрии первого курса.

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

288. Сообщение от блячел (?), 23-Окт-25, 10:05   +/
Посмотрите в сторону gcc -fanalyzer. с ним вполне себе ловятся много ошибок на C и не нужно вводить драконовские серы с борров чекером
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #237

290. Сообщение от Аноним (290), 23-Окт-25, 11:58   +/
> Большинство растеров сами не понимают, что это такое -- афинные типы. Но как звучит!

Это геометрический термин. В Расте означает натягивание совы на глобус.

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

296. Сообщение от Аноним (296), 23-Окт-25, 13:31   +/
Это Сишник-то самостоятелен? Настоящая самостоятельность - программирование на ассемблере. Вот там да, полная свобода манипулированием данными
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208 Ответы: #316

297. Сообщение от Аноним (297), 23-Окт-25, 13:46   +/
> инструмент позволяет не думать о том, что к делу не относится

Это точно не про rust.

Он именно заставляет и очень много думать о том что к делу не относится.

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

298. Сообщение от Аноним (297), 23-Окт-25, 13:53   +/
> Да, в ряде частных случаев такая реализация станет менее эффективной

Речь не про эффективность, а про читаемость.

Если алгоритм изменен и накручен(когда в разных условиях разные алгоритмы выбираются, иногда с откатом) вот тут без читаемости вообще никак. У rust с этим никак.

Будет очень много кода для обеспечения бесопастности.

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

299. Сообщение от Аноним (-), 23-Окт-25, 14:09   +/
> Это успех, я считаю!
> Кто со мной согласен - ставим плюсик

[X] Achievement unlocked: запилить CVE на Rust.

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

300. Сообщение от Аноним (297), 23-Окт-25, 14:16   +/
> Инварианты нарушает программист, а не компьютер.

А у вас одна реализация компьютера. Или все же больше...
?

Так какая из них правильная, которую не надо нарушать?

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

301. Сообщение от Аноним (297), 23-Окт-25, 14:23    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #254

302. Сообщение от Аноним (297), 23-Окт-25, 14:45   +/
Есть три варианта решения проблем множества архитектур.

1. Сказать что в общем случае все архитектуры ответят одинаково, в частных могут быть различия (неопределенное поведение).

2. Реализовать свою среду выполнения полностью.

3. Делать вид что поддерживаешь множество архитектур. По-крайней мере собираешься. Реально реализовать одну и надеяться что все остальные сдохнут. А когда нужда заставляет показатель реальную поддержку, делать отладочную версию с полной реализацией среды выполнения и рабочую с неопределённым поведением.

Сдаётся мне, что с третьим путем далеко не уедешь.

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

303. Сообщение от Аноним (220), 23-Окт-25, 15:24   +/
Читаемость - понятие субъективное. Для меня процедурные портянки на сто строк нечитаемы, кому-то в цепочках коротких вызовов сложно разобраться и хочется видеть привычную портянку.

А "обеспечение безопасности" - опять же, it depends. Если алгоритм сразу "строить" под модель и писать идиоматический код, все будет прекрасно. Да, не всегда это возможно (те же doubly linked lists), и приходится городить огород, но сами doubly linked lists штука такая, что без заката солнца вручную и очень внимательного программирования их безопасными не сделать.

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

304. Сообщение от Фрол (?), 23-Окт-25, 16:23   +/
> А теперь скажи: какие это "правила эскейпинга" существуют на винде, где аргументы
> идут одной сплошной строкой
> Ведь именно на винде этот баг и был, на Unix всегда всё
> хорошо с этим было

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

но вспомнил, вижу, что вспомнил. давай, объясни, что вин  онли cve - ЭТАДРУГОЕ

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

305. Сообщение от Аноним (-), 23-Окт-25, 16:43   +/
> А у вас одна реализация компьютера. Или все же больше...
> Так какая из них правильная, которую не надо нарушать?

Что вы собрались нарушать? Реализацию компьютера?

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

306. Сообщение от Аноним (-), 23-Окт-25, 17:02   +/
> Потому что указатель это не некая магическая сущность, а просто целое число, содержащее адрес байта в памяти (виртуальной а бывает и физической).

Только если вы пишете на ассемблере. С точки зрения оптимизирующего компилятора, помимо адреса указатель содержит информацию о своём происхождении (origin). Нарушение правил aliasing'а ведёт к неопределённому поведению. Поэтому да, указатель - вполне магическая сущность.

> Осознай это и многое станет понятнее.

Вряд ли. Типичный сишник стандарт не читает, либо сознательно его нарушает, плодя UB.
Много поделий на Си перестанут работать, если это станет обязательным:
opennet.ru/opennews/art.shtml?num=64091

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

307. Сообщение от Аноним (249), 23-Окт-25, 17:20    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #277

310. Сообщение от Кошкажена (?), 23-Окт-25, 18:46   +/
На самом деле борова достаточно просто запутать. Про это есть баги в багтрекере, но закрывать их не спешат, ибо с текущим боровым вряд ли получиться. Просто ради примеров можно глянуть на ошибки, найденные miri.
Что уж говорить о логических. Не панацея это, не серебрянная пуля. Не надо на нем писать абсолютно все, включая скрипт для веб странички.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #311

311. Сообщение от Аноним (311), 23-Окт-25, 18:49   +/
Rust настолько божественен, что не считает нужным выпускать спецификации в общество.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310 Ответы: #312

312. Сообщение от Аноним (312), 23-Окт-25, 20:53   +/
(произносить голосом джедая)
- Вам не нужна наша спецификация.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #311

313. Сообщение от Аноним (316), 23-Окт-25, 21:09   +/
> Уйдут ошибки работы с памятью

Не уйдут.
Как растопрограммы (тонкие клиенты) дергали сишные библиотеки, так и будут. Только теперь с тормозами на библиотечных вызовах, нечитаемым темпорально-паралелльным боровкодом вместо простых последовательных алгоритмов и необходимостью учить ещё один дополнительный язык, угодный корпам с их платными курсами и сертификациями.
Как растобиблиотеки хакались в unsafe {}, пытаясь повторить функциональность сишных библиотек, но беззубо уперевшись в свою безопасТность, так и будут. Только ещё эффект Пельцмана (чувство ложной защищенности) встанет в полный рост.
В "безопасные" сказки верят только те, кто программ никогда не писал или вот только вчера "вкатился" (видимо, с вертушки в щи).

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

314. Сообщение от Аноним (316), 23-Окт-25, 21:18   +/
> Много поделий на Си перестанут работать, если это станет обязательным

Не перестанет. Большинство сишных программ не просто важны, незаменимы. Они получат больше внимания, и ошибки быстро поправят.
А вот самые настоящие "поделия", на Расте которые, станут ещё более не нужны. Это факт.

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

315. Сообщение от Аноним (316), 23-Окт-25, 21:23   +/
Нельзя так просто зарыть топор войны с Rust-ом. Сперва нужно понять, кто им владеет. А потом передать его владение земле.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #109

316. Сообщение от Аноним (316), 23-Окт-25, 21:29   +/
И ты, конечно, сейчас расскажешь, что такое можно сделать на Асме, но нельзя на Си?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #296


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

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




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

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