The OpenNET Project / Index page

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



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

"Выпуск Rust 1.95. Добавление Rust в дисплейный сервер Mir. Анализатор трафика ayaFlow на Rust"  +/
Сообщение от opennews (??), 17-Апр-26, 13:51 
Опубликован релиз языка программирования  Rust 1.95, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

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

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

Оглавление

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

4. Сообщение от Аноним (4), 17-Апр-26, 14:01   +3 +/
>возможность указания выражений "if let" внутри блоков "match" для создания условных сопоставлений по шаблону

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7, #16, #76, #83, #153, #160

6. Сообщение от aname (ok), 17-Апр-26, 14:03   +/
Кого это когда интересовало- то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #144

7. Сообщение от Аноним (7), 17-Апр-26, 14:04   –3 +/
> Как же плохо это выглядит

"Плохо" это оценочное суждение.
Есть ли какие-то аргументы "почему"?
Или просто "мне не нравится потому что")?

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

11. Сообщение от Аноним (11), 17-Апр-26, 14:10   +2 +/
Что там с динамическими библиотеками, всё ещё не умеет?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30, #32

13. Сообщение от Аноним (13), 17-Апр-26, 14:16   +3 +/
Знаете что такое регулярные выражения? Rust идет ровно по их шагам - проще переписать, чем разбираться с проблемой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #15, #152, #304

15. Сообщение от Аноним (7), 17-Апр-26, 14:21   +/
Хм.. сравнение если честно так себе.
Тут есть четкое деление кода на логические части.

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

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

16. Сообщение от laindono (ok), 17-Апр-26, 14:21   +/
Покажи, как должно выглядеть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #23, #34

18. Сообщение от Аноним (18), 17-Апр-26, 14:26   +/
Тоже не понял, при чем тут регулярки?;) А так да, Регулярки для некоторых задач это вообще то что доктор прописал!)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

19. Сообщение от Аноним (19), 17-Апр-26, 14:27   +3 +/
>покажи-ка мне серьезный проект в котором не используются "регулярные выражения"

Я где-то говорил, что регулярки это плохо? Плохо, что Rust из-за обилия сахара становится сплошной регуляркой.

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

20. Сообщение от Аноним (20), 17-Апр-26, 14:28   –1 +/
По такой логике любой проект на расте не может быт серьёзным, потому что у него вместо регулярок какая-то задупа. Я уже не говорю, что re2 пойдёт с оговорками, даже а питоне вменяемые. Но не в расте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

21. Сообщение от Аноним (21), 17-Апр-26, 14:30   –1 +/
> Я где-то говорил, что регулярки это плохо?

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

> Плохо, что Rust из-за обилия сахара становится сплошной регуляркой.

Вкусовщина.
Я не вижу плохой читаемости в текущих функциях.
Возможно это дело привычки.

Но ты можешь предложить "как надо".
Боюсь будет или более многословно, или более запутано.

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

22. Сообщение от Аноним (18), 17-Апр-26, 14:33   –2 +/
Никто вас не заставляет кушать весь этот сахар, если он вам не по душе. Используйте только то что считаете нужны! Однако если присоединились к проекту где это используется сахар  - то что называется будьте любезны:) Не вижу проблем. Более того вы даже можете забить на лайфтаймы если они вас так бесят и не использовать ссылки вообще! В этом случае просто используйте механизм владения и забудьте про заимствование, да придется быть местами многословным, но главное что даже тут у вас будет выбор!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #25, #175, #305

23. Сообщение от Аноним (23), 17-Апр-26, 14:34   +1 +/
Никак не должно. Разрабам Rust давно пора остановиться с добавлением сахара.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #293

25. Сообщение от Аноним (25), 17-Апр-26, 14:38   +1 +/
>Никто вас не заставляет кушать весь этот сахар, если он вам не по душе.

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

>Более того вы даже можете забить на лайфтаймы если они вас так бесят и не использовать ссылки вообще!

Да, знаю, используйте .clone().

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

26. Сообщение от ZeroTwo (ok), 17-Апр-26, 14:41   +/
>[dependencies]
>aya = "0.13"

Ожидаемо уже из названия. Год назад писал "firewall" (скорее PoC) на нём - офигенная штука.

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

28. Сообщение от Аноним (18), 17-Апр-26, 14:44   –1 +/
Можно таже посмотоеть в сторону языка Hylo. Там вообще не надо будет забивать голову всякими лайфтпймами! Как по мне весьма перспективный язык и идея в целом которую уверен некоторые ещё позаимствуют в будущем, - тот же проект cppfront от герба саттера применимо к c++ именно эту идею использует, и получится человеческий c++, по крайней мере я надеюсь:)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

30. Сообщение от Аноним (30), 17-Апр-26, 14:47   +1 +/
А Раста идеология статической компоновки всех библиотек.

>всё ещё не умеет?

Не хотят. А не, не умеет.

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

32. Сообщение от alex13sh (?), 17-Апр-26, 14:53   +3 +/
В теории, давно умеет. А на практике дл сих пор нет стабильного ABI также как и у C++.
Все мы вынуждены использовать C ABI и ffi
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #35, #39

34. Сообщение от Аноним (34), 17-Апр-26, 14:59   +3 +/
А зачем спрашивать если можно показать, и пускай мимокрокодилы составят свое мнение.

Было:
        match value {
            Some(x) => {
                if let Ok(y) = compute(x) {
                    println!("{}, {}", x, y);
                }
            }
            _ => {}
        }
Стало:
        match value {
            Some(x) if let Ok(y) = compute(x) => {
                println!("{}, {}", x, y);
            }
            _ => {}
        }

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

35. Сообщение от Аноним (18), 17-Апр-26, 14:59   +3 +/
Это одна из причин почему язык Си никогда не умрет;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #45

36. Сообщение от asand3remail (ok), 17-Апр-26, 15:01   +/
За ayaFlow Роскомнадзор им говорит большие спасибо.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41

39. Сообщение от Аноним (39), 17-Апр-26, 15:04   +1 +/
Что говоришь? У раста нет стабильного ABI? Значит самое время внедрять раст в критические системы!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #43, #47

41. Сообщение от Аноним (41), 17-Апр-26, 15:09   +1 +/
А за nDPI 5.0 не говорит?)
opennet.me/opennews/art.shtml?num=64299

Или раз там СИ и GPL то это друое))?

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

43. Сообщение от Аноним (43), 17-Апр-26, 15:12   +3 +/
У С++ тоже нет.
А операционки на нем пишут. Удивительно, правда?
И в эмбедедщине используют.

Наверное наяривание на ABI это просто воздуханство?

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

45. Сообщение от Аноним (45), 17-Апр-26, 15:16   +1 +/
Если от сишки останется только ffi то это будет уже гроб-гроб-кладбище.

Думаю через пару лет будет стабилизация спецификации (спасибо ферроцену).
К тому времени дополируют оставшиеся шероховатости.
Может тогда будет запрос на стабильное АБИ.

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

47. Сообщение от Аноним (47), 17-Апр-26, 15:21   +3 +/
А зачем тебе стабильный ABI раста, когда есть C ABI и его за глаза хватает?

Rust, если что, даже в планах стабильного ABI не имеет, чтобы оставлять себе пространство оптимизировать memory layout у структур (выставлять паддинги, сортировать поля и вот это все, чем на практике в коде на C руками занимаются только два с половиной землекопа).

Есть отдельные телодвижения, чтобы когда-нибудь сделать какой-то более Rust-ориентированный стабильный ABI, который бы поддерживался компилятором ровно в таком же виде, в котором он сейчас поддерживает C ABI, но тоже как бы особо не горит, т.к. C ABI хватает.

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

48. Сообщение от Аноним (23), 17-Апр-26, 15:28   –3 +/
>У С++ тоже нет. А операционки на нем пишут.

Благодаря C ABI.

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

51. Сообщение от Аноним (51), 17-Апр-26, 15:40   +4 +/
Польза впихивания этого чудища хотя бы в том, что скоро программисты начнут думать "лучше начать на си правильно написать..."
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #68, #71

59. Сообщение от Sm0ke85 (ok), 17-Апр-26, 16:04   –4 +/
>И в эмбедедщине используют.

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

Какие особые удобства привносит С++ в эмбдед: классы? шаблоны? - в серьезной разработке это только замедлит работу устройства и позволит тебе поиметь непредвиденные баги, гонки и т.п.

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

61. Сообщение от Аноним (61), 17-Апр-26, 16:06   +2 +/
> А на практике дл сих пор нет стабильного ABI также как и у C++.
> Все мы вынуждены использовать C ABI и ffi

Когда-нибудь местные эксперты узнают, что у C нет никакого ABI...

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

63. Сообщение от Аноним (61), 17-Апр-26, 16:08   +/
> Благодаря C ABI.

Не существует никакого "С ABI". Иди почитай стандарт С и найди, где там описывается "С ABI".

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

65. Сообщение от Аноним (65), 17-Апр-26, 16:18   –2 +/
Интересно видеть, как Rust все глубже заходит в инфраструктурные проекты. Особенно любопытно, что рядом с самим релизом тут упомянуты и практические применения вроде Mir и ayaFlow.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #70, #72, #254

68. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:31   +1 +/
> лучше начать на си правильно написать...

Подключат наконец PVS.

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

70. Сообщение от Аноним (70), 17-Апр-26, 16:34   +/
Плохой пример.
МИР нафиг никому не сдался.
ayaFlow - что-то новое.

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

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

71. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:35   –1 +/
> Польза впихивания этого чудища хотя бы в том, что скоро программисты начнут думать "лучше начать на си правильно написать..."

Там автор ayaFlow jsкриптизер

> Technical Skills
> Languages: JavaScript, Rust, Python, C++

Теперь понятно почему первым словом в описании идет A high-performance

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

72. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:36   +/
> Особенно любопытно, что рядом с самим релизом тут упомянуты и практические применения вроде Mir и ayaFlow.

Особенно любопытно, учитывая, что Mir не нужен, а про ayaFlow в первый раз слышно.

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

73. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:37   +1 +/
> Сколько там смартфонов продается в год на андроиде? А в каждом современном работают миллионы строк раст-кода.

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

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

75. Сообщение от Аноним (144), 17-Апр-26, 16:41   +/
> под покровительством независимой некоммерческой организации

Финансирование - откуда? Они же не сами себя, значит, зависимые.

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

76. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:43   +3 +/
Вообще уловие после выражения выглядит уродливо

Some(x) if let Ok(y)

Как будто Йода кого-то покусал.

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

77. Сообщение от Аноним (144), 17-Апр-26, 16:44   +3 +/
> миллионы строк ...

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

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

80. Сообщение от Аноним (144), 17-Апр-26, 16:48   +1 +/
> оптимизировать memory layout у структур

Ого! Да они решили Паскаль подогонять?

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

81. Сообщение от Сладкая булочка (?), 17-Апр-26, 16:49   +/
> Если от сишки останется только ffi то это будет уже гроб-гроб-кладбище.
> Думаю через пару лет будет стабилизация спецификации (спасибо ферроцену).

Ну да, им уж давно передали спеку, куда они ее дели?

> К тому времени дополируют оставшиеся шероховатости.

У самураев нет цели, только путь. Какие шероховатости? Добавление аллокатора в HashMap - это шероховатость или еще нет?

> Может тогда будет запрос на стабильное АБИ.

Пфф. Это одно из основного. Годы работы.


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

82. Сообщение от morphe (?), 17-Апр-26, 16:54   +3 +/
Вообще никто не мешает переписать это как

if let Some(x) = value && let Ok(y) = compute(x) => {

Что просто и понятно, в данном случае match действительно выглядит не к месту

Однако у тебя может быть и такое написано

        match value {
            Some(x) if let Ok(y) = compute(x) => {
                println!("{}, {}", x, y);
            }
            Some(x) if let Ok(y) = compute_other(x) => {
                println!("{}, {}", x, y);
            }
            Some(x) if let Ok(y) = compute_smth_else(x) => {
                println!("{}, {}", x, y);
            }
            _ => {}
        }

Что уже может лучше выглядеть в match

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

83. Сообщение от Facemakeremail (?), 17-Апр-26, 17:00   –1 +/
Это просто «гард» как в Хаскеле, ничего сложного.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #93, #121

84. Сообщение от Аноним (84), 17-Апр-26, 17:07   +1 +/
Что ж ты ниже пояса бьешь?!
Ты бы еще спросил "а читал ли СИшник стандарт" (на который он так яростно наяривает).

А если спросить что такое конформанс, то там вообще мрак.

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

86. Сообщение от Аноним (86), 17-Апр-26, 17:17    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

87. Сообщение от Смузихлеб забывший пароль (?), 17-Апр-26, 17:32   +/
ну для сишки во встройщине повышенной надёжности целая гора разных требований, пожеланий и хотелок. Та же мисра чего стоит
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #116

88. Сообщение от Аноним (88), 17-Апр-26, 17:34   +/
Самое первое - удобство для программиста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #113, #301

89. Сообщение от Аноним (89), 17-Апр-26, 17:50   +/
Мда, целых две фигурных скобки удалось убрать. А мониторы и так широкоформатные, можно ещё шире строки делать. Посмотри на список стабильных функций, он выглядит как корм для электронной нейронки. Человеку здесь уже делать нечего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #306

90. Сообщение от Аноним (90), 17-Апр-26, 17:52   +/
>  Да и не весь эмбдед должен стабильно работать

Поэтому его омнокодят ни сишечке))

> "зависло - ну и пофик, резетнут".

Прям как блок управления тойопты!
За который выплатили 16 лярдов. И написан как раз на си.

> в серьезной разработке это только замедлит работу устройства

Забавно насколько вы далеки от "серьезной разработки"))
Если нужно светодиодиком поморгать - то можно и на си.

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

С сишкой тоже самое - непредвиденные баги, гонки.
Но без удобных классов, енамов, шаблонов.

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

91. Сообщение от 1 (??), 17-Апр-26, 17:54   +2 +/
Это наследие Perl.

print if yes();

Американцам так читабельнее.

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

93. Сообщение от Аноним (93), 17-Апр-26, 17:56   –3 +/
> Это просто «гард» как в Хаскеле, ничего сложного.

Сишники даже enum нормальный не осилили.
А ты про «гард» пишешь "ничего сложного"))

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

94. Сообщение от Сладкая булочка (?), 17-Апр-26, 17:56   +/
> Это наследие Perl.
> print if yes();

Ну вот это коряво очень, как и unless в руби каком-нибудь.

> Американцам так читабельнее.

Походит на выдумки. Во многих используемых яп такого нет.

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

98. Сообщение от Аноним (120), 17-Апр-26, 18:35   +/
Some(x) - разворачиваем, оцениваем (анализируем) значение.
=> {  - сопоставляем блок вычислений
if let - даем владение и присваиваем результат compute(), если Ok типа

Приведите семантику Вашего варианта, плиз.

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

101. Сообщение от Аноним (120), 17-Апр-26, 18:42   –1 +/
> МИР нафиг никому не сдался.

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

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

103. Сообщение от Аноним (61), 17-Апр-26, 18:52   +/
>>У С++ тоже нет. А операционки на нем пишут.
> Благодаря C ABI.

Местные эксперты продолжают пробивать дно.

Чувак, в С++ не используется "С ABI". В нем используется Itanium ABI (на юниксах) и МС-специфичный ABI на Винде.

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

107. Сообщение от Аноним (120), 17-Апр-26, 18:58   +/
не лучше и каноничнее:
ifprint(boolean,fmt,...)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

109. Сообщение от Аноним (109), 17-Апр-26, 19:04   +/
> Местные эксперты продолжают пробивать дно.

А ты типа удивлен))?

> Чувак, в С++ не используется "С ABI". В нем используется Itanium ABI (на юниксах) и МС-специфичный ABI на Винде.

Для людей которые даже не отрывали стандарт вполне норм втирать про С ABI.


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

110. Сообщение от Аноним (120), 17-Апр-26, 19:05   +/
А с чем им динамически линковаться? К чужому ABI приходится кусочками прилипать. А собственный код меняется часто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

111. Сообщение от Аноним (120), 17-Апр-26, 19:07   –1 +/
Порядок передачи параметров это не ABI? Он разный у Си и Паскаля.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #127

113. Сообщение от Аноним (120), 17-Апр-26, 19:11   +/
Скоро уйдет как текстовый формат логов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #125

115. Сообщение от Аноним (120), 17-Апр-26, 19:17   +/
>Как будто Йода кого-то покусал.

и так же трудно распарсить семантику

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

116. Сообщение от Аноним (61), 17-Апр-26, 19:19   +/
> ну для сишки во встройщине повышенной надёжности целая гора разных требований, пожеланий и хотелок

...цель которых сугубо в том, чтобы не отстрелить себе ногу этим недоязыком из 70-х.

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

117. Сообщение от Аноним (120), 17-Апр-26, 19:21   –2 +/
Это есть не только в паскале. Паскаль (с заглавной) это учёный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

118. Сообщение от Аноним (120), 17-Апр-26, 19:30   +/
extern "C" не существует?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #131

119. Сообщение от Аноним (120), 17-Апр-26, 19:37   +/
Были и фортран, и паскаль, и ада и др.,но почему-то широкое применение получил си. я считаю, ято секрет успеха - простота, гибкость и адаптируемость на различные платформы. Да, простота и доброжелательность уменьшает дисциплину программиста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #300

120. Сообщение от Аноним (120), 17-Апр-26, 19:45   +/
>if let Some(x) = value && let Ok(y) = compute(x) => {

вместо одной цепочки мы получили две и их сравнение (отдельное хранение одного)

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

121. Сообщение от Аноним (120), 17-Апр-26, 19:47   +/
и не идет ни в какое сравнение с Шекспиром.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83

122. Сообщение от Аноним (120), 17-Апр-26, 19:50   +/
А к нему всё линкуются динамически и вызывают (передают параметры) функции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

123. Сообщение от Аноним83 (?), 17-Апр-26, 20:00   +/
> извлечение TLS SNI и DNS-запросов

Для этого и прочего что там заявлено хватит примерно 3-4к строк на С.

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

124. Сообщение от Аноним (88), 17-Апр-26, 20:02   +/
Статический анализатор ныне есть в GCC.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68

125. Сообщение от Аноним (88), 17-Апр-26, 20:05   +/
Текстовый формат логов ушёл у тех, кому на эти самые логи наплевать, есть они там или нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #192

126. Сообщение от Аноним (120), 17-Апр-26, 20:07   –1 +/
>Itanium ABI (на юниксах) и МС-специфичный ABI на Винде.

написанные и первоначально написанные на си.

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

127. Сообщение от Аноним (61), 17-Апр-26, 20:09   +1 +/
> Порядок передачи параметров это не ABI? Он разный у Си и Паскаля.

Я тебе еще раз повторяю: не существует никакого "порядка передачи параметров для С". ABI существует целая тьма (да, даже если ты используешь С), и все они специфичны и для архитектуры CPU, и для конкретной ОС.

Вот, почитай хотя бы о x86 и не позорься больше:

https://en.wikipedia.org/wiki/X86_calling_conventions

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

129. Сообщение от Аноним (61), 17-Апр-26, 20:13   –1 +/
> написанные и первоначально написанные на си.

ABI написанный на С? Что ты несешь?

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

130. Сообщение от Аноним (34), 17-Апр-26, 20:16   +/
И ничего это не трудно. Просто всегда держите в голове pattern matching.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #135

131. Сообщение от Аноним (61), 17-Апр-26, 20:20   +1 +/
> extern "C" не существует?

extern "C" - это инструкция отключить name mangling и использовать то же платформо-специфичное ABI (соглашение вызовов), которое юзает сишный компилятор на текущей платформе. Например, на юниксах это будет System V ABI, а на Винде - свой собственный. А мифический "стабильный С ABI", которого в природе не существует.

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

134. Сообщение от Аноним (134), 17-Апр-26, 20:40   +/
Какой же он тормозной в отладочной версии
Ответить | Правка | Наверх | Cообщить модератору

135. Сообщение от Аноним (120), 17-Апр-26, 20:44   +/
а почему Вы не раскрыли семантику (парсинг) Вашей лексики в моем ответе на Ваш (3.34) выше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130

136. Сообщение от Аноним (120), 17-Апр-26, 20:49   +/
>юзает сишный компилятор на текущей платформе

это не FFI си?

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

137. Сообщение от Аноним (120), 17-Апр-26, 21:01   +/
>юзает сишный компилятор на текущей платформе.

вызывает Cвои функции, задействует определенные регистры и тд.
Стабильный (специфичный) ABI для данной платформы.

Offtop: Что позорного узнавать новое? Освежать знания? Отстаивать точку зрения? Признавать, что не во всём был прав (как тут)?

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

138. Сообщение от Аноним (120), 17-Апр-26, 21:05   +/
>> Порядок передачи параметров это не ABI? Он разный у Си и Паскаля.
> https://en.wikipedia.org/wiki/X86_calling_conventions

"The cdecl (which stands for C declaration) is a calling convention for the programming language C and is used by many C compilers for the x86 architecture."

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

139. Сообщение от Аноним (120), 17-Апр-26, 21:08   +1 +/
>> написанные и первоначально написанные на си.
> ABI написанный на С? Что ты несешь?

ОС написаны на си.

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

140. Сообщение от Аноним (120), 17-Апр-26, 21:09   +/
>> написанные и первоначально написанные на си.
> ABI написанный на С? Что ты несешь?

Полегче с лексикой.

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

141. Сообщение от Аноним (61), 17-Апр-26, 22:04   +/
> "The cdecl (which stands for C declaration) is a calling convention for the programming language C and is used by many C compilers for the x86 architecture."

Ну, и тебя ни капли не смущает, что помимо cdecl на x86 есть другие соглашения вызова? И что на x86-64 cdecl ВООБЩЕ отстутсвует?

Господи, и он мне поет про "С ABI"...

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

142. Сообщение от Аноним (61), 17-Апр-26, 22:07   +/
> Стабильный (специфичный) ABI для данной платформы.

Вот именно: ABI, специфичный для платформы, который технически к языку программирования С никак не привязан.

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

144. Сообщение от Аноним (144), 17-Апр-26, 23:26   +/
Кого-нибудь да интересовало когда-то, только не разработчиков сабжа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

145. Сообщение от morphe (?), 18-Апр-26, 00:43   +/
>>if let Some(x) = value && let Ok(y) = compute(x) { // поправил - => лишнее
> вместо одной цепочки мы получили две и их сравнение (отдельное хранение одного)

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

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

146. Сообщение от Аноним (146), 18-Апр-26, 00:53   –1 +/
>при этом обходясь без использования сборщика мусора и runtime

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

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

148. Сообщение от Аноним (148), 18-Апр-26, 01:11   +1 +/
Зачем пытаться в OCaml, если есть OCaml?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

149. Сообщение от Аноним (191), 18-Апр-26, 01:15   +1 +/
Сколько сишников в теме собралось. Кто мне может объяснить, почему программа с синтаксической ошибкой - не компилируется, а программ с семантической ошибкой, например разыменноывание нулевого указателя - компилируется и либо портит память, либо падает?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #157

150. Сообщение от Аноним (148), 18-Апр-26, 01:16   +/
>"The cdecl (which stands for C declaration) is a calling convention for the programming language C and is used by many C compilers for the x86 architecture."

И где оно в стандарте Си?

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

151. Сообщение от Аноним (148), 18-Апр-26, 01:18   +/
>Чувак, в С++ не используется "С ABI". В нем используется Itanium ABI (на юниксах) и МС-специфичный ABI на Винде.

Какой итаниум ABI на ARM или RISC V? Или на этом устаревшем немодном x86-64?

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

152. Сообщение от Аноним (191), 18-Апр-26, 01:20   +3 +/
>Знаете что такое регулярные выражения? Rust идет ровно по их шагам - проще переписать, чем разбираться с проблемой.

Вы не умеете читать ни регулярные выражения, ни rust. И вместо того, чтобы придти к единственно правильному выводу, по поводу вашей низкой компетнции, начинаете рассказывать, как проще переписать. Нет, не проще. Если вы будете какждый раз галюцинировать новую регулярку, то вы будете регулярно напарываться на одни и те же баги. Что за мода такая, выучив один единственный язык, считать что больше учить ничего не надо?

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

153. Сообщение от Аноним (191), 18-Апр-26, 01:22   +/
>Как же плохо это выглядит на таком одиночном примере, а представляете, как это будет при множестве блоков и разных условий?

Я поражаюсь вашему уровню незнания, поскольку вы умудряетесь противорчить себе в одном единственном предложении. If let - это сокращённая форма. Если match будет записан целиком, то вы увидите стройную лесенку, в которой запутаться будет ещё проще.

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

155. Сообщение от Аноним (191), 18-Апр-26, 01:34   +/
При чём здесь perl? Это самое классическое деструктурирующее присваивание.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #180

157. Сообщение от Сладкая булочка (?), 18-Апр-26, 01:54   +1 +/
> Сколько сишников в теме собралось. Кто мне может объяснить, почему программа с
> синтаксической ошибкой - не компилируется, а программ с семантической ошибкой, например
> разыменноывание нулевого указателя - компилируется и либо портит память, либо падает?

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

И причем тут си? В том же расте такие же ошибки в рантайме https://github.com/rust-lang/miri?tab=readme-ov-file#bugs-fo... Вот, например, обращение к неинициализированной памяти https://github.com/rust-lang/rust/issues/53566

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

160. Сообщение от Аноним (160), 18-Апр-26, 02:12   +/
ну в той же скале такое тыщу лет - очень удобно. Если еще докинут в компилятор варнинги по поводу потенциально не полного матчинга будет хорошо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #167, #255

162. Сообщение от Аноним (162), 18-Апр-26, 04:48   –1 +/
Забавно, что эксперты из серии "на нём ничего не пишут" куда-то пропали последнее время. Видимо их смутило, что куда не посмотри - везде на расте написано.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #165, #170, #182, #219

163. Сообщение от Аноним (163), 18-Апр-26, 06:27   +3 +/
Анализаторов трафика на C/C++ десятки, самый известный Wireshark, существуют он уже десятилетия и никто этим не кичится, но на Rust любой хэллоуворлд считается достижением
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #172

165. Сообщение от Аноним (18), 18-Апр-26, 09:19   +/
И не говори, похоже у многих наконец таки прошло отрицание и началась фаза принятия;) Того и гляди скоро переобуться и будут в качестве de использовать cosmic;)))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162

166. Сообщение от Прохожий (??), 18-Апр-26, 10:13   +/
"Независимая" означает, что она никому напрямую не подчиняется. Спонсоры есть, да. Но они не имеют право диктовать условия. Разумеется, если спонсор что-то предложит, его выслушают. Но совершенно не обязательно, что сделают именно так, как хочется спонсору.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

167. Сообщение от Аноним (167), 18-Апр-26, 10:19   +/
> Если еще докинут в компилятор варнинги

Уже есть, и давно, + есть #[non_exhaustive]

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

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

170. Сообщение от Аноним (171), 18-Апр-26, 11:01   –2 +/
Совершенно ожидаемая фаза зрелости:

1. #language_name только игрушка
2. на #language_name ничего не пишут!
3. #language_name не используется в индустрии
4. #language_name не хватает формальной спецификации (или аналога)
5. использование #language_name для нужд индустрии не учитывает #obscure_corner_case

Причем стадии выше ни разу не ироничные, и абсолютно нормальные при развитии языка. Требования к которому на разной стадии зрелости разные.
«находитесь здесь» в случае Rust где-то между 4 и 5: есть Ferrocene, но язык все еще неторопливо проходит RFC-процесс для допиливания нужного (Ojeda писал ряд познавательных постов).

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

171. Сообщение от Аноним (171), 18-Апр-26, 13:48   +/
> Как ты собрался без запуска кода понять что указатель стал нулевым?

non-nullable types? Не допускать null в систему типов вообще и проверять при компиляции?
Но это не про C, да.

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

172. Сообщение от Аноним (-), 18-Апр-26, 13:56   +/
> никто этим не кичится, но на Rust любой хэллоуворлд считается достижением

Дело не в том, чтобы кичиться. Надо знать о новых вещах, которые заменяют старые. Я тут для себя zellij открыл, и наконец выкинул фтопку tmux. Кто-то про ayaFlow узнал, и сможет наконец выкинуть фтопку wireshark. Мне wireshark нужен раз в пять лет, и когда он понадобится, я знаю, что не буду в очередной раз ставить wireshark, потому что есть ayaFlow.

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

173. Сообщение от Y (??), 18-Апр-26, 14:18   +2 +/
конечно, кто-то узнает и поставит линукс, чтобы отлавливать пакеты виндовс, лишь бы wireshark не ставить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

174. Сообщение от OpenEcho (?), 18-Апр-26, 14:37   +/
> Но ты можешь предложить "как надо".

Можно было не выёкиваться кул-хакерскими #[cfg], _ => {}  и не строить всё с нуля, а наступить на твердую, читаемую "землю" (которую уже знала масса программистов):

#if
#ifdef
#elif
#endif

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

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

175. Сообщение от OpenEcho (?), 18-Апр-26, 14:41   +/
> Более того вы даже можете забить на лайфтаймы если они вас так бесят и не использовать ссылки вообще!

Ага, так на PR и сказать, - "reject, моя не понимать."

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

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

176. Сообщение от Сладкая булочка (?), 18-Апр-26, 14:43   +/
>> Как ты собрался без запуска кода понять что указатель стал нулевым?
> non-nullable types? Не допускать null в систему типов вообще и проверять при
> компиляции?
> Но это не про C, да.

Пример в студию. Вот есть у тебя список узлов list c полем next. Сделай без null. Замена на Option не считается, т.к. это будет по факту то же самое.

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

177. Сообщение от Сладкая булочка (?), 18-Апр-26, 14:46   +1 +/
>> никто этим не кичится, но на Rust любой хэллоуворлд считается достижением
> Кто-то про ayaFlow узнал, и сможет наконец выкинуть фтопку wireshark

Очень смешно.

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

179. Сообщение от Аноним (179), 18-Апр-26, 14:49   +1 +/
Вангую что через 5 лет Wireshark будет все так же выпускать релизы, а вот что будет с ayaFlow через 5 лет большой вопрос
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172 Ответы: #220, #239

180. Сообщение от OpenEcho (?), 18-Апр-26, 15:04   –1 +/
> При чём здесь perl?

Паматушто это тоже сахар, вместо единичного, вменяемого if... then делается

statement if condition

так же как и в перловке(и откуда судя по всему просочилось в другие языки), где то же самый if еще можно искорёжить с Given/When, а вместо has теперь можно даже помычать Moose/Moo

Мне из всей современной писанины больше всего нравится Го, где принципиально стараются избегать сахара и оставлют только самые наиболее применяемые/известные сладости в других популярных языках, хотя тоже, есть моменты где отсебятину лепят

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

181. Сообщение от OpenEcho (?), 18-Апр-26, 15:10   +/
> А Раста идеология статической компоновки всех библиотек.

Ага, "верю"...

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found

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

182. Сообщение от OpenEcho (?), 18-Апр-26, 15:20   +/
Kubernetes vs Linkerd
Docker vs Youki
Terraform vs Pulumi
Hugo vs Zola
Caddy vs Pingora

Дальше продолжать что больше популярней ?

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

183. Сообщение от Аноним (185), 18-Апр-26, 15:34   +/
> Замена на Option не считается, т.к. это будет по факту то же самое.

По факту это только показывает вашу некомпетентность.
К полю next вы можете обратиться и напр. разыменовать не зависимо от того null там или не null.

А теперь попробуйте тоже самое провернуть с Option. Ну как? Получилось?))
Вот то-то и оно. То что где-то под капотом все равно будет null/nil/0/deadbeaf - абсолютно пофиг, главное что в коде оно не дало разработчику допустить ошибку на этапе компиляции.
Причем там можно обойтись и без null, а взять нормальный enum {Some<NonNull>, None}

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

184. Сообщение от Аноним (184), 18-Апр-26, 15:36   –1 +/
> Дальше продолжать что больше популярней ?

То что появилось раньше?
    Kubernetes (2015) vs Linkerd (2017)
    Docker (2013) vs Youki (2021)
    Terraform (2014) vs Pulumi (2018)
    Hugo (2013) vs Zola (2017)
    Caddy (2019) vs Pingora (2024)
Закономерность просматривается, не правда ли.

Помню все-все писали на связке apache + php.
Хотя даже сейчас находятся те, кто на нем что-то пописивает.

LAMP заменили на тот же LEMP)
График падения популярности апача можно посмотреть в интернетах.

> Caddy vs Pingora

Сравнивать ready-to-use решение с Frameworkʼом это конечно сильно.
Это как сравнивать VW Caddy и какое-то голое шасси Iveco, которое ты можешь допилить под себя)

С другой стороны Cloudflare это сколько процентов интернета? 15% 20%?
Без расткода оно бы работало? Да.
Но сейчас оно работает на расткоде. Это просто факт, даже если он не нравится.

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

185. Сообщение от Аноним (185), 18-Апр-26, 15:38    Скрыто ботом-модератором–1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #174 Ответы: #187

186. Сообщение от OpenEcho (?), 18-Апр-26, 15:57   +/
> Закономерность просматривается, не правда ли.

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

> > Caddy vs Pingora
> Сравнивать ready-to-use решение с Frameworkʼом это конечно сильно.

Я про "всё на расте написанно", согласен не совсем VS получился, но хоть родственность остаётся

> Это просто факт, даже если он не нравится.

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

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

187. Сообщение от OpenEcho (?), 18-Апр-26, 16:09   –1 +/
> #ifdef это просто отвратительный выcep сишки, который потом всякие уточки разтянули по другим языкам

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

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

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

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

188. Сообщение от Аноним (191), 18-Апр-26, 16:13   +/
>Вот есть у тебя список узлов list c полем next. Сделай без null

Найдите хоть один null

type 'a t = 'a list =
| []
| (::) of 'a * 'a list

Ну как, справились?
>Замена на Option не считается, т.к. это будет по факту то же самое.

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

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

189. Сообщение от Аноним (191), 18-Апр-26, 16:13   –2 +/
>Как ты собрался без запуска кода понять что указатель стал нулевым?

Стыдно в 2026 ничего не слышать про монады. Стыдно и безграмотно.

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

190. Сообщение от Аноним (191), 18-Апр-26, 16:28   +/
>statement if condition

Не нужно галлюцинировать. Во-первых, в rust нет statement. Во-вторых, в приведённом примере, то выражение, которое вы ошибочно назвали statement, находится всё-таки правее. В-третьих, вы почему-то охранное выражение рассамтриваете как полный if, хотя у него нет тела. Если подвести итог, вы просто не понимаете грамматику rust.
>так же как и в перловке(и откуда судя по всему просочилось в другие языки)

Перл, это вообще другая ветвь. Совсем другая.
>Мне из всей современной писанины больше всего нравится Го, где принципиально стараются избегать сахара

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

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

191. Сообщение от Аноним (191), 18-Апр-26, 16:31   +/
>а наступить на твердую, читаемую "землю"

С каких пор текстовой препроцессор без гигиены, стал чем-то нормальным?
>которую уже знала масса программистов

Вам выжгли на мозгах как программировать на си, и теперь всё, у вас память только для чтения, и ничего нового вы осилить не в состоянии?

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

192. Сообщение от Аноним (191), 18-Апр-26, 16:34   +/
Если логи не машинночитаемые, вы потом их никак не разберёте. Вам как минимум в виде json-а их нужно хранить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125

195. Сообщение от Аноним (61), 18-Апр-26, 17:01   +/
> Какой итаниум ABI на ARM или RISC V?

Элементарный, друг, элементарный.

> Или на этом устаревшем немодном x86-64?

Это на всех архитектурах, под которые C++ собирается GCC и Clang.

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

196. Сообщение от Аноним (167), 18-Апр-26, 17:11   –1 +/
> Сделай без null. Замена на Option не считается

ty op'yat na nol delish? oche tolsto

Шутки шутками, но null не нужен.

head: Option<NonNull<Node<T>>>,
tail: Option<NonNull<Node<T>>>,

Есть же bottom type, есть нормальный тип-сумма. Нет никакого оправдания использования null напрямую. Иначе, зачем палка-копалка, если есть лопата?

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

198. Сообщение от OpenEcho (?), 18-Апр-26, 19:47   +/
> Во-первых, в rust нет statement.

После этого
> "Не нужно галлюцинировать"

вы можете дальше разговаривать сам с собой, а "statement if condition" относилось к пёрлу, если внимательно прочитать

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

199. Сообщение от OpenEcho (?), 18-Апр-26, 19:49   +/
> Вам выжгли на мозгах

Браво ! Но туалет за углом

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

200. Сообщение от Аноним (200), 18-Апр-26, 20:35   –1 +/
> сделать соотношение разницы в возрасте и популярности

А оно так не работает :)
Кто первый поляну захватил, того ну очень будет тяжело подвинуть.
Потому что уточки уже привыкли и вообще "работает - не трогай".
Сколько лет линукс, финансируемы кучей корпов и в том числе мелкософтом, пытаются подвинуть оффтопик? И чо? Как успехи? Пять процентов уже есть?))

> то значительно быстрей разрабатывается на более вменяемом языке

Вменяемый это дырявый? Или что на нем любая makaka писать может?)
Тут дело в тех же уточках. Они просто привыкли.

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

201. Сообщение от Аноним (201), 18-Апр-26, 21:14   +1 +/
А почему его rust не использует?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #231, #238

202. Сообщение от Аноним (205), 18-Апр-26, 21:15   +/
>Сколько лет линукс, ..., пытаются подвинуть оффтопик? И чо? Как успехи?

Торвальдс никогда не позиционировал Linux в качестве конкурента Windows, тем более Столман. Он же прямо сказал - just for fun.
А если говорить о производителях дистрибутивов (rh, suse, slaka и тд.), то они позиционировали свои продукты как более дешёвую замену Unix'у, AIX, HP-UX, DEC UNIX, IRIX, Solaris и другим unix-подобным системам и мейнфреймам.
Linux-дистрибутив был дешевле фирменного unix'а и мейнфрейма за счёт того, что мог работать на дешёвом x86-оборудовании. Если unix-станция стоила 30 тыс. долларов, то linux-станция - всего 2 тысячи с учётом цены ПО.
И в этом деле у Linux значительные успехи, фактически Linux уничтожил все фирменные unix-системы и все мейнфреймы.

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

203. Сообщение от warlockemail (??), 18-Апр-26, 21:16   +/
Его совершенно не хватает. Идиоматичный код с трейтами и прочим через него никак не пролезает, даже при всём желании.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #229

204. Сообщение от Аноним (204), 18-Апр-26, 21:19   +/
1. let Some(x) = value    -- A (сохранить)
2. let Ok(y) = compute(x) -- B
3 A && B

PS: Какой value в блоке {}?

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

205. Сообщение от Аноним (205), 18-Апр-26, 21:25   +/
Стыдно задавать такие невежественные вопросы и кичиться тем, что слышал слово "монада", или вам 15 лет?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189 Ответы: #209

206. Сообщение от Аноним (205), 18-Апр-26, 21:28   +1 +/
>Вменяемый это дырявый? Или что на нем любая makaka писать может?)

Тут дело в тех же уточках. Они просто привыкли.

Вы безнадёжны. Смиритесь с этим.

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

207. Сообщение от Аноним (191), 18-Апр-26, 23:27   +/
Я не понимаю ваш вопрос. В {} есть x и y. Зачем вы третим пунктом написали A && B?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204

208. Сообщение от Сладкая булочка (?), 18-Апр-26, 23:29   +/
>> Замена на Option не считается, т.к. это будет по факту то же самое.
> К полю next вы можете обратиться и напр. разыменовать не зависимо от
> того null там или не null.
> А теперь попробуйте тоже самое провернуть с Option. Ну как? Получилось?))

Таким образом, ты просто втыкаешь везде проверку на то, что значение не null. Указать not_null<> на входе ты не можешь, т.к. должен на вызывающей стороне доказывать, что передаваемое значение не будет null, автоматически же сделать компилятор это не сможет.

По факту это только показывает вашу некомпетентность.

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

209. Сообщение от Аноним (191), 18-Апр-26, 23:29   –1 +/
>невежественные вопросы

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

Кто мешает вам это слово услышать?
>или вам 15 лет?

Что за дискриминация по возрасту?

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

210. Сообщение от Сладкая булочка (?), 18-Апр-26, 23:31   +/
>>Вот есть у тебя список узлов list c полем next. Сделай без null
> Найдите хоть один null
> type 'a t = 'a list =
> | []
> | (::) of 'a * 'a list
> Ну как, справились?

Это совсем не то. Ты просто везде будешь проверять всевозможные значения (в данном случае [] и не пустой).

>>Замена на Option не считается, т.к. это будет по факту то же самое.
> У вас появляется монада, инкапсулирующая работу со значением, и обеспечивающая безопасность

Которая потом везде как "цветная" функция расползается по коду.

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

212. Сообщение от Сладкая булочка (?), 18-Апр-26, 23:35   +/
>>Как ты собрался без запуска кода понять что указатель стал нулевым?
> Стыдно в 2026 ничего не слышать про монады. Стыдно и безграмотно.

Монада это просто инкапсуляция отсутствия в данном случае. Получить значение не проверив на null ты не сможешь - вот и все. Монады точно также расползаются по коду как и async функции. А статическим анализом компилятор не сможет тебе сказать, что монада содержит только значение (действительно, если бы он мог, то монады были бы не нужны) и перекладывает это на тебя.

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

213. Сообщение от Сладкая булочка (?), 18-Апр-26, 23:40   +/
>> Сделай без null. Замена на Option не считается
> Есть же bottom type, есть нормальный тип-сумма. Нет никакого оправдания использования null
> напрямую.

Оправдание - простота, отстуствие проверок в рантайме. Какие проблемы с этом на практике? -fsanitize=address,undefined и выполнения codepath'а в тестах закрывает вопрос.

> Иначе, зачем палка-копалка, если есть лопата?

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

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

214. Сообщение от morphe (?), 19-Апр-26, 00:13   +/
> 3 A && B

Вообще говоря это работает не совсем так
В большинстве языков && работает как short-circuit, т.е A() && B() не будет вызывать B() если A() вернёт false

В Rust if-let-chains работает аналогично, оно попытается сматчить Some(x) = value, и если этот матч получится - оно пойдёт матчить Ok(y) = compute(x), и если и этот матч сработает - то уже исполнится тело ifа

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

215. Сообщение от Аноним (191), 19-Апр-26, 00:14   +/
>Таким образом, ты просто втыкаешь везде проверку на то, что значение не null.

Прогресс, в голове у апологета сишки появилась умная мысль. Поскольку разыменновывание nullptr это UB, то как только везде будет проверка, на одну сишную проблему будет меньше.
>Указать not_null<> на входе ты не можешь

А нет, показалось.
val foo : 'a option -> unit
Данная функция может принимать None.
val foo : 'a -> unit
Данная функция - не может.
>т.к. должен на вызывающей стороне

Это всегда должно быть на вызывающей стороне, по определению. Как только сопоставление с образом выполнено, про null можно забыть, но не раньше.
>автоматически же сделать компилятор это не сможет.

Не может сделать что? Вы понимаете, что у тип 'a и тип 'a option это разные типы или нет? И компилятор определяет безопасность разыменновыания уже в момент проверки типов.
>По факту это только показывает вашу некомпетентность.

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

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

216. Сообщение от Сладкая булочка (?), 19-Апр-26, 00:25   +/
>>Таким образом, ты просто втыкаешь везде проверку на то, что значение не null.
> Прогресс, в голове у апологета сишки появилась умная мысль. Поскольку разыменновывание
> nullptr это UB, то как только везде будет проверка, на одну
> сишную проблему будет меньше.

Я уже указал, что asan,ubsan решает проблему. А ub, чтобы не заставлять компилятор вставлять проверку.

>>Указать not_null<> на входе ты не можешь
> А нет, показалось.
> val foo : 'a option -> unit
> Данная функция может принимать None.
> val foo : 'a -> unit
> Данная функция - не может.

Во-первых, в OСaml из std забивают на возвращение option и просто падают для простоты. Во-вторых, как-то ты резко перешел с языка без gc на язык с gc. В-третьих, Xavier Leroy, си уважает.

>>т.к. должен на вызывающей стороне
> Это всегда должно быть на вызывающей стороне, по определению. Как только сопоставление
> с образом выполнено, про null можно забыть, но не раньше.

Ты можешь в си тогда написать assert(x) или если хочешь и с NDEBUG чтобы работало свой check(x). Никакой разницы с твоим подходом. Докучи можешь для clang-tidy rule добавить.

>>автоматически же сделать компилятор это не сможет.
> Не может сделать что? Вы понимаете, что у тип 'a и тип
> 'a option это разные типы или нет? И компилятор определяет безопасность
> разыменновыания уже в момент проверки типов.

Еще раз тебе говорю, что тут нет никакой разницы между option и nullable типом. Ты точно также скачешь и везде доказыавешь, что он не может быть null при получении значения. Компилятор этого не понимает.

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

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

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

217. Сообщение от Аноним (217), 19-Апр-26, 00:49   –1 +/
> статическим анализом компилятор не сможет тебе сказать, что монада содержит только значение

Что, и отличить Some t от None не сможет на этапе компиляции, чтобы потом не добавлять лишние jne/jnz? Точно? Точно-точно?..

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

218. Сообщение от Сладкая булочка (?), 19-Апр-26, 00:58   +1 +/
>> статическим анализом компилятор не сможет тебе сказать, что монада содержит только значение
> Что, и отличить Some t от None не сможет на этапе компиляции,
> чтобы потом не добавлять лишние jne/jnz? Точно? Точно-точно?..

Как он это сделает, если значение в Optional в рантайме задается, например?

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

219. Сообщение от Сладкая булочка (?), 19-Апр-26, 01:00   +1 +/
> везде на расте написано.

Это везде сейчас с нами, в этой комнате?


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

220. Сообщение от Сладкая булочка (?), 19-Апр-26, 01:01   +2 +/
> а вот что будет с ayaFlow через 5 лет большой вопрос

Через месяц новой версией компилятора раста уже не соберется.


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

221. Сообщение от Сладкая булочка (?), 19-Апр-26, 01:03   +/
>> статическим анализом компилятор не сможет тебе сказать, что монада содержит только значение
> Что, и отличить Some t от None не сможет на этапе компиляции,
> чтобы потом не добавлять лишние jne/jnz? Точно? Точно-точно?..

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

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

222. Сообщение от Аноним (191), 19-Апр-26, 01:05   +/
>Это совсем не то.

Количество null в моём примере - 0. Как видим, в данном случае я прав, а вы нет.
>Ты просто везде будешь проверять всевозможные значения

Давайте вы будете писать конкретнее. Вот вам несколько искуственный пример
let print lst =
  List.iter (Printf.printf "%s ") lst;
  print_endline ""
  
let sum =
  List.fold_left (+) 0
  
let () =
  let lst0 = ["1"; "2"; "Not a Number"; "3"] in
  print lst0;
  let lst1 = List.map int_of_string_opt lst0 in
  let lst2 = List.map Option.to_list lst1 |> List.concat in
  sum lst2 |> Printf.printf "%d"
Где здесь это самое "везде"? Обратите внимение
val (+) : int -> int -> int
val int_of_string_opt : string -> int option
Как вы уже должны были запомнить, тип int option нельзя засунуть в int
>Которая потом везде как "цветная" функция расползается по коду.

Что значит расползается? Я вас огрочу, но существет как минимум map. Вот пишите вы калькулятор, опять же надуманный пример

let sum = (+)
          
let calc op a b =
  match int_of_string_opt a, int_of_string_opt b with
  | Some a, Some b -> (
      match op with
      | "+" -> Printf.printf "%d + %d = %d\n" a b (sum a b)
      | _ -> print_endline "other calculations"
    )
  | _ -> print_endline "Both arguments must be numbers"

Есть следующие сигнатуры
val sum : int -> int -> int
val calc : string -> string -> string -> unit

Нет нужды заставлять каждую функцию, вроде sum, проверять, ввёл пользователь число или не число. Логику проверки чисел можно инкапуслировать в calc.

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

223. Сообщение от Аноним (217), 19-Апр-26, 01:07   +/
Существуют случат, когда содержимое типа доказано не пустое: или сам тип не позволяет такого, либо (в случае Option, но там для ряда других вещей есть похожая оптимизация niches, например, для enum, result точно) при явной декларации let k = Some(t).

То есть, zero-cost абстракции существуют, и далеко не все, про что рассказано в системе типов, проверяется в рантайме. Противоположное верно: чем больше информации известно компилятору, тем меньше нужно проверок в рантайме.
И как контрпример, когда этой информации недостаточно: pointer provenance problem.

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

224. Сообщение от Аноним (191), 19-Апр-26, 01:10   +/
>Какие проблемы с этом на практике? -fsanitize=address,undefined и выполнения codepath'а в тестах закрывает вопрос.

Вы любитель обнаруживать баги, когда приложение внезапно падает?
>Буквально весь мир

Буквально не весь. В ядро уже начат процесс добавление rust, в куче прикладного софта си практически полностью вытеснен.

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

225. Сообщение от Аноним (217), 19-Апр-26, 01:18   +/
Ну вот, максимально тупой вариант.

https://rust.godbolt.org/z/bhn7eeGbn

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

226. Сообщение от Аноним (217), 19-Апр-26, 01:21   +/
Алсо, https://doc.rust-lang.org/std/ptr/struct.NonNull.html
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218

227. Сообщение от Аноним (191), 19-Апр-26, 01:24   +/
>Я уже указал, что asan,ubsan решает проблему.

Вы высказали мнение, ничем его не подкрепив.
>А ub, чтобы не заставлять компилятор вставлять проверку.

UB для того, чтобы портить память. Сишник без порчи памяти не проживёт
>Во-первых, в OСaml из std забивают на возвращение option и просто падают для простоты.

Не падает, а выбрасывает исключение. Вы без лжи никак не можете? Если вам надо, можете, например, Core взять.
>Во-вторых, как-то ты резко перешел с языка без gc на язык с gc

Ну поменяйте сигнатуру на
fn foo<T>(v : Option<T>) -> ()
Мне лень вспоминать, как именно в Rust сигнатуры пишутся. Всё равно, это никак не опровергает мои слова.
>В-третьих, Xavier Leroy, си уважает.

И? У вас как-то мысль резко оборвалась.
>Никакой разницы с твоим подходом.

Вы не понимаете разницу между проверкой во время компиляции и временем выполнения, или просто прикидываетесь?
>Компилятор этого не понимает.

Вы опять лжёте.
let a = Int.to_string None
Ошибка компиляции:
Error: This expression has type 'a option but an expression was expected of type int
>Я на расслабончике отвечаю на твои глупые комменты, воин.

Вы лжёте буквально в каждом пункте. А когда вам указают на одну вашу ложь, вы придумываете ещё как минимум парочку ложных утверждений. Хотя всего лишь навсего надо было признать неправоту.

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

228. Сообщение от Аноним (191), 19-Апр-26, 01:43   +/
>Монады точно также расползаются по коду как и async функции.

Очередная ничем не подкреплённая фантазия. Вот int по коду не расползается, так с какой радости int option должен расползаться?
>А статическим анализом компилятор не сможет тебе сказать, что монада содержит только значение

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

let a = Option.value None ~default:2
Угадайте, какой тип будет у этой переменной? Что, неужели int? Да как так то?

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

229. Сообщение от Аноним (229), 19-Апр-26, 03:26   +/
А ты никак и не сделаешь zero-cost ABI, через который подобное бы пролезло, не сотворив при этом какого-то жуткого голема, которому нужно было бы, чтобы кусок компилятора жил в ядре ОС. Через ABI могут пролезть только очень простые и примитивные вещи и это нормально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203

230. Сообщение от Аноним (230), 19-Апр-26, 03:33    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #243

231. Сообщение от ХрюХрю (?), 19-Апр-26, 06:39   +/
нет никакого си раста и тд
есть только асм и машинный код
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201

232. Сообщение от Аноним (232), 19-Апр-26, 07:11   +/
Почему не существует? Язык С есть, понятие ABI есть, таким образом ABI используемое в C это и есть C ABI
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

234. Сообщение от Аноним (234), 19-Апр-26, 08:22   +3 +/
Вот я серьезно - проще научиться программировать правильно, нежели запомнить весь инструментарий "безрпасного" программирования от Rust.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #235, #253

235. Сообщение от Аноним (235), 19-Апр-26, 12:30   +/
Всё верно, только одна закавыка - чтобы научится правильно программировать, надо 10 лет. А это невыгодно так долго учить ни бизнесу, ни государству.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #234 Ответы: #236, #252, #277

236. Сообщение от Володька Драйвер (?), 19-Апр-26, 14:03   +/
А кушать вы что будете пока будете 10 лет учиться?) Сейчас время не то - джуны не нужны, через 5 лет и мидлы не будут нужны. Либо вы сразу программируете безопасно и как дохуя синьёр, либо для вас есть "свободная касса".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235 Ответы: #240

237. Сообщение от Аноним (237), 19-Апр-26, 14:04   +/
Зачем добавлять в язык лишние сущности? #[] -- это формат для вызова макроса, который в качестве аргумента получит следующий statement. Он вполне справляется с задачей, зачем выпиливать дополнительные инструменты? Чтобы кому-то было бы проще? Но это "проще" -- лишь личное мнение опенеко, которое ничем не обосновано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #174 Ответы: #289

238. Сообщение от Володька Драйвер (?), 19-Апр-26, 14:13   +/
Я могу на Rust без проблем собрать и dll и so используя соглашеня соотвествующих платформ.  Могу и сишный код вызвать, и дать вызвть сишке растовый код. Так что всё Rust использует.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201

239. Сообщение от Аноним (-), 19-Апр-26, 14:27   +/
> Вангую что через 5 лет Wireshark будет все так же выпускать релизы

Мне-то какое дело до этого теперь?

> а вот что будет с ayaFlow через 5 лет большой вопрос

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

Все хейтеры раста упускают из вида один нюанс: писать на расте реально фан. Ковыряться в растовых программах -- фан. После C/C++ это просто глоток свежего воздуха. Когда ты сталкиваешься с C/C++ программой, ты начинаешь с того, что выясняешь как её собирать, где какие ручки есть покрутить, чтобы настроить. И это само по себе может занимать часы или даже дни. С растом ты не тратя не секунды знаешь как собрать релиз, дебаг, как прогнать тесты, и где будут лежать собранные бинари. С зоопарком же C/C++ тулзов, которые ещё C/C++ программистам часто лень использовать, а когда не лень то это может быть ещё хуже, потому что они могут какую-нибудь такую альтернативщину затащить... Или -- о ужос -- начать пилить простыни шеллскриптов на коленке.

И никаких autotools. И никакого cmake.

Сам по себе тулинг раста позволяет тебе нырнуть с головой в изучение кода не тратя времени на изучение того, как разработчики в этом случае использовали те костыли, которые в мире C/C++ называют системами сборки. Это само по себе возвращает фан от работы с кодом, забытый ещё где-то в нулевых.

Так что ничего с этим ayaFlow не случится. Если его разработка споткнётся, то растоманы подерутся за освободившееся место мейнтейнера.

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

240. Сообщение от Аноним (240), 19-Апр-26, 14:39    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #236 Ответы: #247

241. Сообщение от Сладкая булочка (?), 19-Апр-26, 14:40   +1 +/
>>Какие проблемы с этом на практике? -fsanitize=address,undefined и выполнения codepath'а в тестах закрывает вопрос.
> Вы любитель обнаруживать баги, когда приложение внезапно падает?

Нет, но я понимаю почему так исторически получилось. Для проверки во время компиляции есть разные варианты, начиная от x[static 1] в с99 и заканчивая _Notnull x в с23.

>>Буквально весь мир
> Буквально не весь. В ядро уже начат процесс добавление rust, в куче
> прикладного софта си практически полностью вытеснен.

Ключевое слово "начат". В любом случае будут обертки. За 15 лет можно было свое ядро написать. Но почему-то его нет, даже coreutils еще не готов. Проблема в отрицании и юношеском максимализме. Не все растовщики такие, к счастью, но таких большинство среди местных.

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

242. Сообщение от Сладкая булочка (?), 19-Апр-26, 14:42   +/
> Ну вот, максимально тупой вариант.
> https://rust.godbolt.org/z/bhn7eeGbn

Ну ты сюда буквально константу засунул

#[unsafe(no_mangle)]
pub fn prod() -> Option<u32> {
    Some(42)
}

Сделай ввод пользователя или по результату random в сравнении с 0.5

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

243. Сообщение от Сладкая булочка (?), 19-Апр-26, 14:49   +/
>> Как ты собрался без запуска кода понять что указатель стал нулевым?
> Булочка, не притворяйся дурочкой. Аноним задал вопрос не о статической проверке указателя
> (что, кстати, есть в Расте: &[mut]T - всегда валидный указатель), а
> о том, почему дыряшка позволяет разыменовывать нулевой указатель (программа с ошибкой).

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

> Ответ Раста: если в системе типов нет нулевого указателя, то и
> разыменовать его ты не сможешь. Если же указатель может отсутствовать, тогда
> есть Option.

Разве?

use std::ptr;

let p: *const i32 = ptr::null();
assert!(p.is_null());

Option отличается только необходимость проверки и все. Я думаю fanalyze в си это будет ловить, или нормальный стат. анализатор. Также были какие-то пропозалы на явный _Option спецификатор.

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

244. Сообщение от Сладкая булочка (?), 19-Апр-26, 14:53   +/
>>Я на расслабончике отвечаю на твои глупые комменты, воин.
> Вы лжёте буквально в каждом пункте. А когда вам указают на одну
> вашу ложь, вы придумываете ещё как минимум парочку ложных утверждений. Хотя
> всего лишь навсего надо было признать неправоту.

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

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

245. Сообщение от Сладкая булочка (?), 19-Апр-26, 15:02   +/
>> Ну вот, максимально тупой вариант.
>> https://rust.godbolt.org/z/bhn7eeGbn
> Сделай ввод пользователя или по результату random в сравнении с 0.5

Ладно, вот https://rust.godbolt.org/z/qq9Tcorcx

В результате

#[unsafe(no_mangle)]
pub fn tst() -> u32 {
    let k = prod();

    match k {
        Some(i) => i,
        None => 0
    }
}

мы видим

tst:
        push    rax
        call    qword ptr [rip + prod@GOTPCREL]
        xor     ecx, ecx
        test    al, 1
        cmovne  ecx, edx
        mov     eax, ecx
        pop     rcx
        ret

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

246. Сообщение от Сладкая булочка (?), 19-Апр-26, 15:21   +/
>>Монады точно также расползаются по коду как и async функции.
> Очередная ничем не подкреплённая фантазия.

Вот первая рандомная статья https://patrickthebold.github.io/posts/what-color-is-your-monad/

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

> Вот int по коду не расползается, так
> с какой радости int option должен расползаться?

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

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

247. Сообщение от Сладкая булочка (?), 19-Апр-26, 15:26   +/
> Соответственно, остаются лишь сеньоры, которые через несколько десятков лет уйдут на пенсию (или сразу на тот свет).

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

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

249. Сообщение от Аноним (191), 19-Апр-26, 16:32   +/
>Ты упорно не хочешь понять то, о чем я говорю.

Вы упорно отказываетесь написать код, хоть на rust, хоть на python, чтобы проилюстрировать вашу проблему. А ваши обяснения "простыми словами" можно интерпретировать сразу несколькими вариантами.
>Не может он в рантайме понять по вводу пользователя или рандому есть значение или нет и ты вынужден использовать Option

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

Берём обычный си. Функция возвращает NULL. Он точно так же будет подниматься вверх. Что вы этим хотите доказать? Вы вообще программировать умеете?

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

250. Сообщение от Аноним (191), 19-Апр-26, 16:38   –1 +/
>Нет, но я понимаю почему так исторически получилось.

Нет, не понимаете. Вам прямо задали вопрос: "Вы любитель обнаруживать баги, когда приложение внезапно падает?". Вы этот вопрос увидели, и решили его проигнорировать.
>и заканчивая _Notnull x в с23.

Я что-то пропустил, и теперь для разыменновывания указателя нужно наличие _Notnull? Нет? Так не надо это приводить как довод. Кроме того, далеко не каждый компилятор си поддерживает c23.
>За 15 лет можно было свое ядро написать. Но почему-то его нет

Есть как минимум Redox.
>Проблема в отрицании и юношеском максимализме

Проблема в старческом конформизме. До тех, пока условно 90% ядра не будут переписаны(а это не быстрый процесс), вы так и будете козырять ядром. Когда ядро перепишут, вы найдёте условный llvm, и будете ссылаться на него.

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

251. Сообщение от Аноним (191), 19-Апр-26, 16:57   +/
>int не надо проверять для пользования значением, а option надо

Что вы этим хотите сказать? Приведите аналогичный код на rust и на си, и покажите - как на rust нужно проверять, а на си не нужно, так, чтобы код не содержкал UB.
>Если либа возвращает option с нижнего уровня стека вызовов, то ее придется наверх прокидывать.

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

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

252. Сообщение от Аноним (191), 19-Апр-26, 17:01   +1 +/
>чтобы научится правильно программировать, надо 10 лет

Глупость. Вам хоть 10 лет давай, хоть 20 - результат лучше не станет. Либо вы понимаете, почему null разыменновывать нельзя, и пишите на rust, либо периодически отстреливаете себе ноги на си, так как забыли проверку, либо периодически делаете лишнюю работу, проверяя на null даже там, где его гарантированно не..

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

253. Сообщение от Аноним (191), 19-Апр-26, 17:03   –2 +/
Ну так пойдите и научитесь. А то берёшь иксы, а там дыры четверть вековой давности.
https://www.opennet.dev/opennews/art.shtml?num=65210
>Уязвимость проявляется с выпуска X11R6.6 (2001 год).

Так почему вы не учитесь?

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

254. Сообщение от Аноним (254), 19-Апр-26, 17:09   –1 +/
Как зайдёт - так и выйдет. Даже БЕЙСИК микрослоп бросила, устав тянуть многолетний игрушечный недоязык. Наивно думаешь, гугля годами будет про_си_рать бабло на недоязык, ВООБЩЕ НИКОМУ не нужный???
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

255. Сообщение от Голос из леса (?), 19-Апр-26, 17:44   +/
Наверно поэтому скалисты и разосрались на почве эксклюзивности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

256. Сообщение от Сладкая булочка (?), 19-Апр-26, 18:32   +/
>>int не надо проверять для пользования значением, а option надо
> Что вы этим хотите сказать? Приведите аналогичный код на rust и на
> си, и покажите - как на rust нужно проверять, а на
> си не нужно, так, чтобы код не содержкал UB.

Честно - лень.

>>Если либа возвращает option с нижнего уровня стека вызовов, то ее придется наверх прокидывать.
> Это не ответ. Если у вас есть int, то вам его что,
> не нужно прокидывать наверх, он там магией материализуется?

В статье же про это написано? Если foo вызывал int bar() и поменяли int bar() на Optional<int> bar, то foo тоже должен теперь возвращать Optional<int> и любой кто foo() использует.

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

257. Сообщение от Сладкая булочка (?), 19-Апр-26, 18:35   +/
>>и заканчивая _Notnull x в с23.
> Я что-то пропустил, и теперь для разыменновывания указателя нужно наличие _Notnull? Нет?
> Так не надо это приводить как довод. Кроме того, далеко не
> каждый компилятор си поддерживает c23.

Выше же все написано, перечитывайте. Для с99 есть решение, есть решение с расширениями.

>>За 15 лет можно было свое ядро написать. Но почему-то его нет
> Есть как минимум Redox.

Из под него пишите? Есть тут кто-то, кто пишет из под него? Сомнительный довод.

>>Проблема в отрицании и юношеском максимализме
> Проблема в старческом конформизме. До тех, пока условно 90% ядра не будут
> переписаны(а это не быстрый процесс), вы так и будете козырять ядром.
> Когда ядро перепишут, вы найдёте условный llvm, и будете ссылаться на
> него.

Это ровно то, о чем было сказано выше (юношеский максимализм). И, если что, llvm на с++.

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

258. Сообщение от Сладкая булочка (?), 19-Апр-26, 18:37   +1 +/
>>Также если вложенная (библиотечная) функция вернула Option, то и наверх ты будешь его прокидывать. Это как раз и есть заражение как в случае с "цветными" функциями.
> Берём обычный си. Функция возвращает NULL. Он точно так же будет подниматься
> вверх. Что вы этим хотите доказать? Вы вообще программировать умеете?

Вот рандомная статья про это из другой ветки https://patrickthebold.github.io/posts/what-color-is-your-monad/

В случае указателя ничего менять не нужно, т.к. NULL валидное значение.

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

259. Сообщение от Аноним (260), 19-Апр-26, 18:44    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253 Ответы: #295

260. Сообщение от Аноним (260), 19-Апр-26, 18:53   +1 +/
На Расте еще ничего написано не было, только *переписано*. Даже шутка ходит, в определенных кругах - "У нас есть 50 гейм-движков на Rust и 2 игры на них".
Если бы не агрессивная политика кое-кого, и заливание всё деньгами, то он никому и нужен не был бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #252 Ответы: #262

261. Сообщение от Аноним (191), 19-Апр-26, 19:32   +/
>Вот рандомная статья про это из другой ветки

Вы кроме ссылок на чьи-то чужи статьи ничего своего сказать не можете?
>В случае указателя ничего менять не нужно, т.к. NULL валидное значение.

Что значит "не нужно"? Проверять придётся как option, так и указатель. Только если указатель можно забыть проверить, компиляция пройдёт и будет UB, то забыть проверить option - нельзя. Вы опять упорно игнориуете вопрос "покажите код".

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

262. Сообщение от Аноним (191), 19-Апр-26, 19:36   –2 +/
>На Расте еще ничего написано не было, только *переписано*

Вы знаете, что это ложь, я знаю, что это ложь, вы знаете, что я знаю, что это ложь, но всё равно говорите это. Проектов, написанных на rust куча.

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

263. Сообщение от Аноним (191), 19-Апр-26, 19:39   +/
>Для с99 есть решение, есть решение с расширениями.

Решения нет, поскольку буквально в том же самом сообщении, вы написали уже про c23.
>Из под него пишите?

Наличие Redox уже говорит о том, что вы неправы, поскольку изначально, ваше сообщение было про то, что ОС нет.

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

264. Сообщение от Аноним (191), 19-Апр-26, 19:44   –1 +/
>Честно - лень.

Нет, не лень. Поскольку вы либо не умеете программировать, и по этому написать ничего не можете, либо осознали в чём проблема, и не хотите позорится ещё больше.
>Если foo вызывал int bar() и поменяли int bar() на Optional<int> bar, то foo тоже должен теперь возвращать Optional<int> и любой кто foo() использует.

И дальше что? Если вы хотя-бы в одном месте возвращаете NULL, то вам точно так же придётся на NULL проверять везде, либо вы получите UB. У вас не поменяется ровным счтётом ничего, проверку всё так же нужно будет проводить.

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

265. Сообщение от Сладкая булочка (?), 19-Апр-26, 20:05   +/
>>Честно - лень.
> Нет, не лень. Поскольку вы либо не умеете программировать, и по этому
> написать ничего не можете, либо осознали в чём проблема, и не
> хотите позорится ещё больше.

Да-да (с)

>>Если foo вызывал int bar() и поменяли int bar() на Optional<int> bar, то foo тоже должен теперь возвращать Optional<int> и любой кто foo() использует.
> И дальше что? Если вы хотя-бы в одном месте возвращаете NULL, то
> вам точно так же придётся на NULL проверять везде, либо вы
> получите UB. У вас не поменяется ровным счтётом ничего, проверку всё
> так же нужно будет проводить.

В том то и дело что нет. UB ты получишь только в случае разыменования нула. Куча мест, где явно говорится, что нул не надо передавать и не передаешь.

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

266. Сообщение от Сладкая булочка (?), 19-Апр-26, 20:15   +/
>>Для с99 есть решение, есть решение с расширениями.
> Решения нет, поскольку буквально в том же самом сообщении, вы написали уже
> про c23.

Всмысле? Открой к примеру map 3 memcpy и посмотри сигнатуру.

>>Из под него пишите?
> Наличие Redox уже говорит о том, что вы неправы, поскольку изначально, ваше
> сообщение было про то, что ОС нет.

Какой толк от сырого никому ненужного и неиспользуемого поделия?

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

267. Сообщение от Аноним (191), 19-Апр-26, 20:22   +/
>Открой к примеру map 3 memcpy и посмотри сигнатуру.

Что я там должен увидеть?
>Какой толк от сырого никому ненужного и неиспользуемого поделия?

Показать вашу лживость, очевидно же. Что бы вы и вам подобные не говорили, процент си и c++ падает, а процент rust - растёт.

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

268. Сообщение от Аноним (191), 19-Апр-26, 20:28   –1 +/
>UB ты получишь только в случае разыменования нула

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

И чем си в этом случае отличается в лучшую сторону от rust? Давайте, накидайте пример строчек на 15-ть. Что, не можете?
>и не передаешь

И какой это магией происходит, если ни в сигнатуре функций, ни в сигнатуре переменных ничего не сказано про nullable?
>Да-да (с)

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

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

269. Сообщение от Сладкая булочка (?), 19-Апр-26, 21:17   +/
>> extern "C" не существует?
> А мифический "стабильный С ABI", которого в
> природе не существует.

Этот ABI сделан под си. И в расте ты будешь делать extern "C", чтобы потом питон (к примеру) смог через ffi его позвать. Или звать си so будешь через ffi. И x86 abi по факту стандарт для nix.

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

270. Сообщение от Сладкая булочка (?), 19-Апр-26, 21:22   –1 +/
>>>У С++ тоже нет. А операционки на нем пишут.
>> Благодаря C ABI.
> Местные эксперты продолжают пробивать дно.
> Чувак, в С++ не используется "С ABI". В нем используется Itanium ABI
> (на юниксах) и МС-специфичный ABI на Винде.

И кто его используется из FFI?

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

271. Сообщение от Сладкая булочка (?), 19-Апр-26, 21:28   +/
>>Открой к примеру map 3 memcpy и посмотри сигнатуру.
> Что я там должен увидеть?

Что ты не прав. Только man 3, конечно (опечатка).

>>Какой толк от сырого никому ненужного и неиспользуемого поделия?
> Показать вашу лживость, очевидно же. Что бы вы и вам подобные не
> говорили, процент си и c++ падает, а процент rust - растёт.

Тяжелый случай.


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

272. Сообщение от Сладкая булочка (?), 19-Апр-26, 21:31   +/
>>UB ты получишь только в случае разыменования нула
> А зачем вам нужен указатель, если вы не собираетесь его разыменновывать?

Разыменуй, в чем проблема-то? Если ты уверен, что он не null.

>>Куча мест, где явно говорится, что нул не надо передавать и не передаешь.
> И чем си в этом случае отличается в лучшую сторону от rust?
> Давайте, накидайте пример строчек на 15-ть. Что, не можете?

Тебе надо, ты и накидывай. Метать бисер перед свиньей не собираюсь.

>>и не передаешь
> И какой это магией происходит, если ни в сигнатуре функций, ни в
> сигнатуре переменных ничего не сказано про nullable?

Вот так. Магия!) Хочу и не передаю null и все работает)

>>Да-да (с)
> Я не вижу от вас ни одного примера, даже с синтаксическими ошибками.
> Одни только рассуждения, и ссылки на чужие статьи. Давайте, просто признавайтесь
> в своей неправоте.

Пффф. Статью то хоть прочитал?

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

273. Сообщение от Аноним (191), 19-Апр-26, 22:51   –1 +/
>Что ты не прав. Только man 3, конечно (опечатка).

Вы кроме как ссылаться на чужише статьи, ни на что больше не способны? Ещё раз, что именно я там должен увидеть?
>Тяжелый случай.

Вы привели контраргумент? Нет. Почему? Потому, что его у вас нет. Признавайте неправоту.

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

274. Сообщение от Аноним (191), 19-Апр-26, 23:05   +/
>Разыменуй, в чем проблема-то? Если ты уверен, что он не null.

И как именно я пойму, что там не null? Вы предлагаете через строчку на null проверять, как в go?
>Тебе надо, ты и накидывай

Я вам уже показал пример, теперь ваша очередь.
>Хочу и не передаю null и все работает)

Вы не можете "захотеть" поскольку вы не знаете, есть у вас null или нет. Более того, если два человека работают над проектом, вы запросто передатите null, после правки второго. Да даже если и один - вы всё равно не помните весь проект наизусть. Я вам уже задал вопрос, чем код на си с указателями лучше кода на rust с option. Ответа до сих пор нет.
>Статью то хоть прочитал?

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

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

275. Сообщение от Сладкая булочка (?), 19-Апр-26, 23:45   +/
>>Статью то хоть прочитал?
> Что именно я там должен прочитать? Называть монады цветными - это классический
> пример непонимания ситуации.

Покажи конкретно, где автор статьи ошибается.

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

276. Сообщение от Аноним (191), 19-Апр-26, 23:59   +/
Вам уже было это показано, на примере
val calc : string -> string -> string -> unit
Не смотря на то, что внутри данной функции используется option, наружу это никуда не уходит. Фактически, повторяя тему статьи, это парадоксальная ситуация, когда у функции с красным телом синяя сигнатура. Ровно на этом моменте, любые рассуждения о цвете функции можно заканчивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #275 Ответы: #281, #282

277. Сообщение от Аноним (144), 20-Апр-26, 00:01   +/
> чтобы научится правильно программировать, надо 10 лет

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

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

278. Сообщение от Аноним (144), 20-Апр-26, 00:04   +/
Какая задача была решена на расте, которую до раста ни разу не решали?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #262 Ответы: #287, #296

279. Сообщение от Аноним (144), 20-Апр-26, 00:06   –2 +/
> null разыменновывать нельзя

Видно, что ни разу ты не программировал МК, где null - валидный указатель, содержащий валидные структуры, доступные даже для валидной записи.

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

280. Сообщение от Сладкая булочка (?), 20-Апр-26, 00:12   +/
>>Разыменуй, в чем проблема-то? Если ты уверен, что он не null.
> И как именно я пойму, что там не null? Вы предлагаете через
> строчку на null проверять, как в go?

Я предлагаю не проверять нул, там где ты уверен, что он не нул. Можешь асерт поставить. Можешь проверять везде. Это, как говорится, up to you. Если же ты пихаешь нул, там где его логически не может быть, например, в какой-нибудь void mapput(struct map *map, struct mapkey *k), то ты сам злобный буратино и не удивляйся, что получишь уб. Очевиднейшие вещи.

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

Выше твои сообщение - это просто нытье. Где-то там был код на ocaml, но мне его влом разбирать. Как-то так.

>>Хочу и не передаю null и все работает)
> Вы не можете "захотеть" поскольку вы не знаете, есть у вас null
> или нет. Более того, если два человека работают над проектом, вы
> запросто передатите null, после правки второго.

И дальше что? В нормальном проекте есть тесты, они упадут, ubsan найдет очевидную проблему, или стат. анализатор сработает, или в конце концов дебагером посмотришь. И не будешь "запросто передавать" нул куда не надо. Это бредятина от человека, который не писал код, не умеет проектировать, не читает доку. Если ты такой, то тебе вообще лучше к клавиатуре не подходить, либо писать на чем-то более "безопасном".

>  Я вам уже задал вопрос, чем код на си с указателями лучше кода на rust с option. Ответа до сих пор нет.

Его не будет. Зачем мне это сравнивать? Изначальный вопрос топикстартера был про то, почему в си этого не было. Потому что простота, такой вот by design. Зато стандарт маленький. Рабочий компилятор (без супер оптимизаций и стд либы) напишет студент-магистрант за 3 недели, а с готовым бэкендом, типа qbe за одну и это будет работать (с qbe еще и быстро)! Поэтому си и распространился. Кстати, его никто не пиарил как ржу, ЛОЛ.

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

281. Сообщение от Сладкая булочка (?), 20-Апр-26, 00:20   +/
> Вам уже было это показано, на примере
> val calc : string -> string -> string -> unit
> Не смотря на то, что внутри данной функции используется option, наружу это
> никуда не уходит.

Конечно, потому что ты внтури calc какого-то делаешь проверку

  | _ -> print_endline "Both arguments must be numbers"

C чего бы библиотечной функции самой проверять все проверять, да еще и в stdout писать? Поправть и у тебя сразу монада наверх пролезет.

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

282. Сообщение от Сладкая булочка (?), 20-Апр-26, 00:30   +/
> Фактически, повторяя тему статьи, это парадоксальная ситуация, когда
> у функции с красным телом синяя сигнатура. Ровно на этом моменте,
> любые рассуждения о цвете функции можно заканчивать.

Ну да. А оператор >>= тогда зачем? Или let%bind? А List.hd кидает исключение...

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

283. Сообщение от Аноним (191), 20-Апр-26, 00:37   +/
>Я предлагаю не проверять нул, там где ты уверен, что он не нул

Для уверенности, мне и нужен option.
>Можешь асерт поставить

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

Кто кроме сигнатур это может сказать?
>Где-то там был код на ocaml, но мне его влом разбирать

Вы не просто не умеете код писать, вы его ещё и читать не умеете. Не осилить такие короткие примеры - это надо уметь.
>В нормальном проекте есть тесты

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

https://www.opennet.dev/opennews/art.shtml?num=65210
>Уязвимость проявляется с выпуска X11R6.6 (2001 год).

Если поискать, то можно и более старые ошибки найти.
>или стат. анализатор сработает

Постойте, но ведь мы как раз и рассматриваем возможность статического анализа на основе типобезопасности. Вы даже не замечаете, как сами себе противоречите.
>или в конце концов дебагером посмотришь

Сколько раз вы будете повторять одну и ту же глупость? Есть два варианта: либо увидеть ошибку практически мгновенно после того, как напечатете код, сразу же, как сработает проверка типов, либо тратить дни в отладчике. Кроме того, как вы собираетесь отлаживать падения на устройстве пользователя? Ну падает программа у пользователя, допустим в Южной Америке, вы билет на самолёт покупать будете? Или будете просить его установить программу для удалённого доступа, и ни в коем случае не трогать устройство, пока вы будете около недели одну единственную ошибку искать?
>Это бредятина от человека, который не писал код

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

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

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

Изначально было выдвинуто рацпредложение: сделать синтаксические ошибки UB, и ни в коем случае не останавливавать компиляцию. Но вы этот тонкий намёк даже не уловили.
>Рабочий компилятор (без супер оптимизаций и стд либы) напишет студент-магистрант за 3 недели

Игрушечный компилятор, с которым не будут играть даже школьники.  Или лучше сказать - компилятор-подделку. Нет, не правильно, бутафорный компилятор. Которым вы ни linux, ни glibc, ни gcc не соберёте.
>а с готовым бэкендом, типа qbe за одну и это будет работать (с qbe еще и быстро)

От того, что вы к бутафорному компилятору прикрутите суррогат-оптимизатор, ценности у подделки больше не будет. Вы сами сказали, что нужен как минимум c23.
>ЛОЛ

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

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

284. Сообщение от Аноним (191), 20-Апр-26, 00:46   –1 +/
Крайне выгодное предложение до сих пор действует: признать вашу неправоту. И да, на данный момент вы до сих пор не привели ни одного контраргумента, поскольку bind не меняет цвет функции в которой его вызывают. Я вам уже привёл пример функции calc.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #282 Ответы: #294

285. Сообщение от Аноним (191), 20-Апр-26, 00:48   +1 +/
>Видно, что ни разу ты не программировал МК

Я рад за программистов микроконтроллера. Но, какое мне до них дело, если для меня это UB?

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

286. Сообщение от Аноним (191), 20-Апр-26, 00:52   –1 +/
>Поправть и у тебя сразу монада наверх пролезет.

Вы явно забыли правила цветов функций: красную функцию можно вызвать только из красной. А здесь есть контрпример - красная функция может быть спокойно вызвана из синей.
>Конечно, потому что ты внтури calc какого-то делаешь проверку

Удивительно, да? Прямо как в си.

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

287. Сообщение от Аноним (191), 20-Апр-26, 00:58   +/
Написание кода без UB и порчи памяти, очевидно же. Вот в иксах баги с 2001 года тянутся.
https://www.opennet.dev/opennews/art.shtml?num=65210
А вот с 1994
https://www.opennet.dev/opennews/art.shtml?num=64138
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #278

288. Сообщение от Сладкая булочка (?), 20-Апр-26, 01:04   +/
>>Я предлагаю не проверять нул, там где ты уверен, что он не нул
> Для уверенности, мне и нужен option.

Да ты не уверен в себе, все уже поняли.

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

Ясно уже 10 раз было сказано, что предлагаю.

>>Где-то там был код на ocaml, но мне его влом разбирать
> Вы не просто не умеете код писать, вы его ещё и читать
> не умеете. Не осилить такие короткие примеры - это надо уметь.

Ты прав, даже в таком маленьком примере ты сумел налажать https://www.opennet.dev/openforum/vsluhforumID3/139839.html#281 Это талантище.

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

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

>>ubsan найдет очевидную проблему
> https://www.opennet.dev/opennews/art.shtml?num=65210

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

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

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

>>Рабочий компилятор (без супер оптимизаций и стд либы) напишет студент-магистрант за 3 недели
> Игрушечный компилятор, с которым не будут играть даже школьники.  Или лучше
> сказать - компилятор-подделку. Нет, не правильно, бутафорный компилятор. Которым вы ни
> linux, ни glibc, ни gcc не соберёте.

https://github.com/oasislinux/oasis

>>а с готовым бэкендом, типа qbe за одну и это будет работать (с qbe еще и быстро)
> От того, что вы к бутафорному компилятору прикрутите суррогат-оптимизатор, ценности у подделки
> больше не будет. Вы сами сказали, что нужен как минимум c23.

Ты несешь бред и выдираешь слова из контекста.


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

289. Сообщение от OpenEcho (?), 20-Апр-26, 01:09   +/
> #[] -- это формат для вызова макроса

Что это такое, мне обьяснять не надо, я это прекрасно знаю, поэтому и высказываю свое мнение

> Чтобы кому-то было бы проще?

Именно, - людям с уже накопленным опытом

> Но это "проще" -- лишь личное мнение опенеко, которое ничем не обосновано.

:)

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

290. Сообщение от Сладкая булочка (?), 20-Апр-26, 01:13   +/
>>Поправть и у тебя сразу монада наверх пролезет.
> Вы явно забыли правила цветов функций: красную функцию можно вызвать только из
> красной. А здесь есть контрпример - красная функция может быть спокойно
> вызвана из синей.

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


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

292. Сообщение от warlockemail (??), 20-Апр-26, 02:22   +1 +/
Вы путаете null и указатель на нулевой адрес. Это совсем не одно и то же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279

293. Сообщение от Сладкая булочка (?), 20-Апр-26, 02:26   +/
> Никак не должно. Разрабам Rust давно пора остановиться с добавлением сахара.

Воистину. Если бы они лучше сели и запилили стандарт, а потом помогли завести раст в gcc, то на него бы с радостью началали переходить.

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

294. Сообщение от Сладкая булочка (?), 20-Апр-26, 03:36   +/
> Крайне выгодное предложение до сих пор действует: признать вашу неправоту. И да,
> на данный момент вы до сих пор не привели ни одного
> контраргумента, поскольку bind не меняет цвет функции в которой его вызывают.
> Я вам уже привёл пример функции calc.

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

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

295. Сообщение от Сладкая булочка (?), 20-Апр-26, 03:38   +/
> Я то умею, потому что учился, а не вкатывался, как 90 процентов
> местных "специалистов".

Только контрибьютят в иксы корпы. Получается они вкатыши? Не специалисты?

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

296. Сообщение от Сладкая булочка (?), 20-Апр-26, 03:42   +1 +/
> Какая задача была решена на расте, которую до раста ни разу не
> решали?

Ммм... Спам про безопасную работу с памятью из кажого утюга?

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

297. Сообщение от Сладкая булочка (?), 20-Апр-26, 03:43   +/
>>чтобы научится правильно программировать, надо 10 лет
> либо периодически отстреливаете себе ноги на си

Хотят и отстреливают. Их ноги, им решать. Почему ты указываешь, что кому делать? Кто ты такой?

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

298. Сообщение от Аноним (298), 20-Апр-26, 03:50   +/
> Либо вы понимаете, почему null разыменновывать нельзя

Все понимают, почему null нельзя разадресовывать. Но это понимание не помогает, null разадресовывают вопреки ему, потому что никто не пишет *null, все пишут *p, и в сорцах далеко не очевидно, что среди всех возможных состояний программы существует такое, при котором p==null. Множество всех возможных состояний программы неподъёмно до тех пор, пока программист его не ограничит искусственно, а вот этому надо учиться десятилетиями.

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

299. Сообщение от Sm0ke85 (ok), 20-Апр-26, 07:19   +1 +/
>Поэтому его омнокодят ни сишечке))

Опять мимо пишешь, большинство омнокодеров в раст подались (туда им и дорога), а ты опять проявил полную безграмотность...

>Прям как блок управления тойопты!
>За который выплатили 16 лярдов. И написан как раз на си.

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

>Забавно насколько вы далеки от "серьезной разработки"))
>Если нужно светодиодиком поморгать - то можно и на си.

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

>С сишкой тоже самое - непредвиденные баги, гонки.
>Но без удобных классов, енамов, шаблонов.

Я уже понял, что ты про эмбдед на базаре слышал... Глупости ты пишешь полнейшие...

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

300. Сообщение от Sm0ke85 (ok), 20-Апр-26, 07:22   +1 +/
> Были и фортран, и паскаль, и ада и др.,но почему-то широкое применение
> получил си. я считаю, ято секрет успеха - простота, гибкость и
> адаптируемость на различные платформы. Да, простота и доброжелательность уменьшает дисциплину
> программиста.

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

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

301. Сообщение от Sm0ke85 (ok), 20-Апр-26, 07:24   –1 +/
>Самое первое - удобство для программиста.

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

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

302. Сообщение от Аноним (260), 20-Апр-26, 09:18   +/
Подмена темы разговора - любимая тактика без, у кого отсутствуют реальные аргументы. Причем тут иксы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253 Ответы: #310

303. Сообщение от Аноним (191), 20-Апр-26, 09:41   +/
>Сути это не меняет.

Вы в течении определённого времени проталкивали ложное утверждение, будь-то наличие монад делает функцию красной.
>Монады точно также расползаются по коду как и async функции.
>Таким образом, ты просто втыкаешь везде проверку на то, что значение не null.
>Также если вложенная (библиотечная) функция вернула Option, то и наверх ты будешь его прокидывать. Это как раз и есть заражение как в случае с "цветными" функциями.

Я у вас даже переспрашивал, что именно вы подразумеваете под распространением, вдруг вы просто непонятно выражаетесь.
>Берём обычный си. Функция возвращает NULL. Он точно так же будет подниматься вверх. Что вы этим хотите доказать? Вы вообще программировать умеете?

Сейчас, вы уже признали, что монады не делают функцию красной. А следовательно, все ваши утверждения ложны. Признавайте неправоту.

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

304. Сообщение от Проходил мимо (?), 20-Апр-26, 09:45   +/
Сравнение совершенно не корректное.
Регулярное выражение имеет на много порядков более непонятный синтаксис чем даже самые упоротые куски на Расте (их можно найти в макросах), а то, что приводится в качестве примера тут, к таковым вообще не относится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

305. Сообщение от Проходил мимо (?), 20-Апр-26, 09:58   +/
Забить на лайфтаймы и не использовать ссылки на практике не получается, инфа 146%. Хотя, основываясь на той же практике, необходимость вспоминать о лайфтаймах возникает достаточно редко и компилятор помогает расставить их там, где надо. То же самое касается unsafe блоков и использование FFI для общения с функциями из libc и т.п. библиотек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

306. Сообщение от Проходил мимо (?), 20-Апр-26, 10:26   +/
Камрад, когда вы заканчиваете теоретизировать и начинаете реально что-то писать, то внезапно оказывается, что:
1. Можно открыть Документацию (https://doc.rust-lang.org/std/index.html) и посмотреть в интересующем вас разделе какие функции вообще есть, для чего они есть и что из предложенного можно использовать.
2. Через какое-то, достаточно небольшое время, у вас в голове откладывается некое подмножество из часто используемых функций и некое понимание, куда вообще стоит смотреть если что-то надо сделать. Например, очень многие сущности реализуют возможность своего создания из из чего-то иного, используя крейт From. Тот же вектор Vec реализует From для более чем 20 разных сущностей, позволяя вам создавать вектора из других векторов, слайсов, массивов, строк и.п. В Си++ для чего-то подобного у нас были бы перегруженные функции в классе vector - реализация совершенно иная, но конечный результат очень похож и никто не делает трагедию из того, что в классе vector есть перегруженные функции с одинаковым названием но разными типами.
В общем, не имеет большого значения, сколько там всего стабильных функций.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

307. Сообщение от Аноним (191), 20-Апр-26, 10:56   +/
>Ясно уже 10 раз было сказано, что предлагаю.

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

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

Очень просто. Что санитайзер, что тесты, срабатывают только на уже произошедшие ошибки. Если ошибка ещё не произошла, то ничего обнаружено не будет.
>что бы сделал стат. анализтора без изменения системы типов?

Внутри анализатора будет своя собственная система типов. Анализатор gcc может обнаружить больше ошибко чем компилятор gcc, но меньше чем rust.
>https://github.com/oasislinux/oasis

Спасибо, что привели доказательство за меня.
>Mostly ISO C conformant.
>cproc, a C compiler which is much stricter about the ISO C standard than gcc or clang
>Although this is a work-in-progress effort

https://github.com/oasislinux/oasis/issues/13
>Hi! I'm not an oasis user, but I'm curious - does Linux compile under cproc, or is it still clang or gcc exclusive?
>No, Linux only builds with gcc or clang. Maybe someday in the far far future, cproc would be capable enough to build it, but for now the goal is just to build the userspace packages.

Данный суррогат не способен: собрать ядро, собрать musl, собрать полноценный компилятор. Всё как я и говорил. А ещё, у него какое-то своё, особенное видение стандарта си. Кроме того, он не способен собрать софт, нужны для повседневного использования, вроде iproute2, python, mpv. Про сборку полноценного браузера промолчу.

Вот этот пример крайне показателен. Либо вы превращаете обсуждение в кл0Yнаду, либо ваши же слова вас же и обличают.

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

308. Сообщение от Аноним (191), 20-Апр-26, 11:00   –1 +/
Это всё равно ничего не поменяет, поскольку заражения не произойдёт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #294 Ответы: #313

309. Сообщение от Аноним (191), 20-Апр-26, 11:09   +/
>пока программист его не ограничит искусственно, а вот этому надо учиться десятилетиями.

Каким образом? В си это ограничить нельзя никак.

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

310. Сообщение от Аноним (191), 20-Апр-26, 11:12   +/
При том, что иксы, это крайне показательный пример. Вот как живёт проект десятилетиями, так и десятилетиями в нём находятся ошибки. И что-то ни один настоящий сишник не может придти и окончательно навести порядок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #302 Ответы: #311

311. Сообщение от Аноним (260), 20-Апр-26, 12:51   +/
Это работает в другую сторону тоже - приди и исправь. Хочешь на расте своем любимом перепиши, все равно вам людям с сдвг все равно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #310 Ответы: #312

312. Сообщение от Аноним (191), 20-Апр-26, 14:07   +/
И тут же получить обвинение в том, что опять что-то переписали на раст, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #311 Ответы: #333

313. Сообщение от Сладкая булочка (?), 20-Апр-26, 14:49   +1 +/
> Это всё равно ничего не поменяет, поскольку заражения не произойдёт.

Ахаха. Ну ты сигнатуру то покажи, не стесняйся. Покажи option там.

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

314. Сообщение от Сладкая булочка (?), 20-Апр-26, 14:52   +1 +/
>[оверквотинг удален]
> https://github.com/oasislinux/oasis/issues/13
>>Hi! I'm not an oasis user, but I'm curious - does Linux compile under cproc, or is it still clang or gcc exclusive?
>>No, Linux only builds with gcc or clang. Maybe someday in the far far future, cproc would be capable enough to build it, but for now the goal is just to build the userspace packages.
> Данный суррогат не способен: собрать ядро, собрать musl, собрать полноценный компилятор.
> Всё как я и говорил. А ещё, у него какое-то своё,
> особенное видение стандарта си. Кроме того, он не способен собрать софт,
> нужны для повседневного использования, вроде iproute2, python, mpv. Про сборку полноценного
> браузера промолчу.
> Вот этот пример крайне показателен. Либо вы превращаете обсуждение в кл0Yнаду, либо
> ваши же слова вас же и обличают.

Ты сам полный кл0Yн. Этот компилятор собирает больше полезного кода, чем раст. Все что ты делаешь сейчас, это ходишь с подливой в штанах в надежде, что никто не заметит.

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

315. Сообщение от Аноним (191), 20-Апр-26, 14:55   +/
>Ну ты сигнатуру то покажи, не стесняйся

Зачем? Чем это принципиально отличается от кода на си или го?
>Покажи option там.

И что дальше? Замените последний unit на int option.

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

316. Сообщение от Сладкая булочка (?), 20-Апр-26, 14:59   +/
>>Покажи option там.
> И что дальше? Замените последний unit на int option.

Хотел казаться умным, но в и итоге запутал сам себя https://www.opennet.dev/openforum/vsluhforumID3/139839.html#276

> Вам уже было это показано, на примере
> val calc : string -> string -> string -> unit
> Не смотря на то, что внутри данной функции используется option, наружу это никуда не уходит.

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

317. Сообщение от Сладкая булочка (?), 20-Апр-26, 15:03   +1 +/
> он не способен собрать софт, нужны для повседневного использования, вроде iproute2, python, mpv.

Собирает себя, make, git, flex, libffi, zlib, zstd, ffmpeg и много чего другого. Ты получается опять балаболишь и смотришь куда тебе выгодно. Кол-во подливы у тебя только растет.  

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

318. Сообщение от Аноним (319), 20-Апр-26, 15:21   –1 +/
>Этот компилятор собирает больше полезного кода, чем раст.

Вы опять забыли привести доказательства.

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

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

319. Сообщение от Аноним (319), 20-Апр-26, 15:25   +/
>Хотел казаться умным, но в и итоге запутал сам себя

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

Вы реально не понимаете или притворяетесь? Замените int option на обычный int, и не поменяется абсолютно ничего. Всё равно до toplevel что int, что int option не доходит.

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

320. Сообщение от Аноним (319), 20-Апр-26, 15:38   –1 +/
>Собирает себя

У вас случилась передозировка копиумом. Сам себя собирает абсолютно любой компилятор, прошедший стадию раскрутки. Абсолютно любая поделка.
>и много чего другого

Важно не то, что он собирает, а то, что он не собирает. Открываем README и видим
>cproc is a C11

Данный бутофорный компилятор не реализует C23, а это значит, что случайный проект на си он уже не соберёт. И как только любой из приведённых вами примеров обновится хотя-бы до C23, то собираться им перестанет.
>GNU C extensions

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

Сколько бы вы тут не выкручивались, как уж на сковородке, но до тех пор, пока данная подделка не может собрать ядро, стандартную библиотеку и полноценный компилятор, она так и будет оставаться бутофорией. И вы и сами прекрасно понимаете, что между сборкой условного make и сборкой linux лежит огромная пропасть, которая и отделяет бутафорию от рабочего инструмента.

И даже если вы вольёте титанические усилия, и наконец-таки соберёте этим linux, то обнаружите, что для сборки gcc вам потребуется компилятор крестов. И для сборки llvm вам тоже потребуется компилятор крестов. А его у вас нет даже в планах.

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

321. Сообщение от Сладкая булочка (?), 20-Апр-26, 16:14   +1 +/
>>Собирает себя
> У вас случилась передозировка копиумом. Сам себя собирает абсолютно любой компилятор, прошедший стадию раскрутки. Абсолютно любая поделка.

Ты просто нагло врешь. Далеко не все компиляторя обладаются свойством самокомпиляции. Напрмер, компилятор swift'а. У тебя переполнение подливой.

>>и много чего другого
> Важно не то, что он собирает, а то, что он не собирает.

Это тебе как хейтерочку важно. Подлива в твоих штанах диктует так поступать. Но все уже чувствуют и видят твой конфуз.

>>cproc is a C11
> Данный бутофорный компилятор не реализует C23, а это значит, что случайный проект
> на си он уже не соберёт.

Прочитал бы для начала, что означает случайный. Хватит позориться.

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

322. Сообщение от Сладкая булочка (?), 20-Апр-26, 16:17   +1 +/
>>GNU C extensions
> А если посмотреть чуть дальше, то случится страшное

Как же тебя корежит. От одного этого чувства только надо пиать на си. Как же приятно видеть страдания растовщика-си-хейтерочка.  

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

325. Сообщение от Аноним (319), 20-Апр-26, 16:25   –1 +/
>>абсолютно любой компилятор, прошедший стадию раскрутки
>Далеко не все компиляторя обладаются свойством самокомпиляции.

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

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

327. Сообщение от Аноним (319), 20-Апр-26, 16:28   –1 +/
>Как же тебя корежит.

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

Я вас сколько раз просил написать пример на си, и объяснить, чем он принципиально лучше. Вы ни разу этого не сделали.

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

329. Сообщение от Сладкая булочка (?), 20-Апр-26, 16:32   +1 +/
>>>абсолютно любой компилятор, прошедший стадию раскрутки
>>Далеко не все компиляторя обладаются свойством самокомпиляции.
> Уровень ыкспертизы: не знать, что такое раскрутка компилятора. Вы бы хотя-бы перед
> тем как спорить, вбили данное определние в поисковик. Вам принципиально спорить
> на те темы, в которых вы не разбираетесь?

Тебе хейтерочку уже ничего не поможет.

> Сам себя собирает абсолютно любой компилятор

Ты обмазался в своей же подливе. Каждый твой новый вб|сер лишь усугубляет твою ситуацию. Все же ты можешь еще делать это придираться к словам, делать глупые примеры из 3 строк с изначальной ошибкой и потом позорно сливаться. Какой же это позор. Прекращай, признавай свою неправоту (с)))).

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

333. Сообщение от Аноним (333), 21-Апр-26, 12:14   +/
А теперь вопрос на засыпку: а зачем надо переписывать на Rust системные части GNU/Linux?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #312

334. Сообщение от анон2 (?), 21-Апр-26, 12:39   +/
>если работаешь над каким-то проектом не один

очень смело предполагать, что:
1. кто-то работает над проектом на русте не один
2. что программист на русте способен принимать во внимание окружающих его людей

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

335. Сообщение от анон2 (?), 21-Апр-26, 12:50   +/
это всё напоминает, как здоровые люди пытались придумывать языки/азбуки для глухонемых и слепых, не спрашивая их мнения и не держа в голове, что их языки живут в другой "среде" и не обязаны выглядеть точь-в-точь как обычный язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180


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

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




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

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