The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск cppcheck 2.12, статического анализатора кода для языков C++ и С, opennews (??), 15-Сен-23, (0) [смотреть все]

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


12. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +4 +/
Сообщение от Аноним (13), 15-Сен-23, 23:22 
Чем бы ни страдать, абы на язык с нормальным компилятором не переходить, в котором бОльшая часть ошибок ловится на этапе компиляции без всяких дополнительных телодвижений.
Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +3 +/
Сообщение от Аноним (14), 15-Сен-23, 23:23 
необучаемость, сэр.
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (24), 16-Сен-23, 00:58 
столько не живут, сколько ты будешь свой говнокод переделывать под хотелки компилятора
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

31. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 16-Сен-23, 01:51 
А под хотелки статического анализатора не нужно переделывать, да?
Ответить | Правка | Наверх | Cообщить модератору

52. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (56), 16-Сен-23, 10:36 
Как только он начинает выпендриваться на него кладется болт и хотела идёт в исключения.
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (73), 16-Сен-23, 17:04 
Звучит надёжно и очень безопасно
Ответить | Правка | Наверх | Cообщить модератору

167. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (167), 17-Сен-23, 23:26 
Уже ходишь в бронетрусах?
Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Аноним (-), 16-Сен-23, 21:30 
> Как только он начинает выпендриваться на него кладется болт и хотела идёт в исключения.

А потом вы такой садитесь в тоету с непатченым ECU и наслаждаетесь острыми ощущениями... правда, сможете ли вы ими поделиться с окружающими - вот это как повезет уже. Как показали натурные эксперименты, везло не всем.

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

61. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (24), 16-Сен-23, 13:15 
да, не надо, потому что он указывает на косяки, а не на шизофазию головного мозга "разработчиков" раста и их видение реальности. эталонное шашечки и ехать
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

51. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Anonim (??), 16-Сен-23, 10:36 
Ну Herb Sutter уже пишет новый cpp2.. Очнулись таки
https://github.com/hsutter/cppfront
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

54. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 10:37 
Страуструп тут недавно выступал и совершенно точно подметил, что те, кто думает, что корректность программы исчерпывается правильной работой с памятью, не понимают примерно ничего в этой жизни https://www.youtube.com/watch?v=eo-4ZSLn3jc
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

65. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от warlock66613 (ok), 16-Сен-23, 13:32 
Страуструп не понимает что UB — это не "некорректность". Суть не в том чтобы писать без ошибок, смысл в том, чтобы писать программы хотя бы синтаксически корректные, то есть без UB.
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 14:32 
Пионеры не в состоянии понять, что UB - это следствие разнородности аппаратных платформ, с которыми C++ должен уметь эффективно работать непосредственно. И когда их любимый пионерский язычок натыкается на целочисленное переполнение в релизной сборке, он ведет себя точно так же неопределенно, как и C++.
Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Анонин (?), 16-Сен-23, 15:58 
> пионерский язычок натыкается на целочисленное переполнение в релизной сборке, он ведет себя точно так же неопределенно

А вот и нет. Что для signed int, что для unsigned int выполняется two’s complement wrapping.
Т.е. нет никакого UB, потому что результат выполнения будет однозначный, в отличие от плюсов и сишки.
https://github.com/rust-lang/rfcs/pull/560

Читайте маны, а не плодите мифы!

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

71. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 16:03 
Вы либо крестик снимите, либо трусы наденьте: если вы пишете, что у вас нет runtime и overhead, то не пишите, что у вас нет UB, и наоборот - если у вас нет UB, тогда у вас есть runtime и/или overhead, которые обеспечивают поведение согласно вашим хотелкам на платформах, у которых поведение другое.
Ответить | Правка | Наверх | Cообщить модератору

83. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +2 +/
Сообщение от Анонми (?), 16-Сен-23, 17:51 
> если вы пишете, что у вас нет runtime и overhead, то не пишите, что у вас нет UB

Oh, my sweet summer child... Наличие UB не дает магического прироста скорости. Оно лишь дает право выстрелить себе в ногу, написав некорректный по определению код, а компилятору - право закрыть на это глаза.

Именно поэтому людям и приходиться использовать с C и C++ статические анализаторы: чтобы выловить свиней, заботливо подложенных создателями и комитетом C/C++ в свои убогие дырявые языки.

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

84. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  –1 +/
Сообщение от Аноним (24), 16-Сен-23, 17:57 
неофиты неисправимы...

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

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

86. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +6 +/
Сообщение от Анонимусс (?), 16-Сен-23, 18:17 
Боже... вот из-за таких как ты, нынешний софт такой багованый...

Открываем ISO/IEC 14882:2020, пункт 3.28 undefined behavior

"Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to behaving during translation or program execution in a documented manner characteristic of the environment (with or without the issuance of a diagnostic message), to terminating a translation or execution (with the issuance of a diagnostic message)."

Сам осилишь или перевести?
Наверное не нужно - ты же такой умный, знаешь как работает комп!
Можешь определить какое UB формальное, а какое нет)))

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

"Because correct C++ programs are free of undefined behavior, compilers may produce unexpected results when a program that actually has UB is compiled with optimization enabled"

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

87. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 18:26 
Ну так по этому определению твой любимый пионерский язычок, в котором якобы нет UB, может либо запаниковать, либо не запаниковать при переполнении. Всё в зависимости от того, с какими опциями будет вызван компилятор. Ещё раз: это не про C++, а про твой язычок, в котором, якобы, нет UB.
Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Анонимусс (?), 16-Сен-23, 18:38 
Нет, речь не про раст, и даже не про с++.
А про подход, что "ты просто берёшь и делаешь UB в угоду производительности, и ничего в этом криминального нет"
Тебе в с++ стандарте черным по белому написали чем это грозит. Но ты все равно считаешь, что умнее разрабов стандарта и такой быдл0к0д имеет право на жизнь!

> может либо запаниковать, либо не запаниковать при переполнении

Facepalm... Дело не в том, что оно запаникует или нет. А в том, что поведение integer overflow описано и зафиксировано. А оно уже может быть любым, главное однозначным.

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

91. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  –1 +/
Сообщение от Аноним (54), 16-Сен-23, 19:02 
Поведение integer overflow описано и зафиксировано и в C++ ТОЖЕ! Только описано и зафиксировано оно не для компилятора, а для конкретной платформы. И на конкретной платформе конкретное поведение является полностью определенным. Далее кому надо - берут и используют библиотеку, предоставляющую нужный баланс гарантий и производительности, e.g. https://github.com/dcleblanc/SafeInt/blob/master/helpfile.md
Благо проблем с расширением C++ библиотеками, в отличие от известно пионерского языка, почти нет.
Ответить | Правка | Наверх | Cообщить модератору

94. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Анонимусс (?), 16-Сен-23, 19:13 
> и в C++ ТОЖЕ!

А вот теперь пруфы для signed integer overflow хотя бы для пары платформ (ссылки на доки подойдут).
И не нужно говорить что это другое, в комменте выше я писал про signed.

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

99. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 20:06 
Пожалуйста: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html
А теперь расскажи чем пионерский язычок в этом плане лучше, если он может либо генерировать панику, либо не генерировать панику - всё в зависимости от опций компилятора.
Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

95. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Анонми (?), 16-Сен-23, 19:34 
> Поведение integer overflow описано и зафиксировано и в C++ ТОЖЕ! Только описано и зафиксировано оно не для компилятора, а для конкретной платформы.

Нет, дружок, не зафиксированно. В стандарте C++ черным по белму написано, что signed overflow это UB. На любой платформе. Иначе это было бы не UB, а implementation-defined behavior.

> И на конкретной платформе конкретное поведение является полностью определенным.

Не, не является. UB - это UB на любой платформе.

В общем, как всегда на опеннете: некомпетентный в C и C++ "эксперт" понятия не имеет о проблемах этих языков, но во всю воюет против Раста.

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

100. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 20:10 
Ещё раз: UB в этом контексте означает то же поведение, что и в пионерском язычке. В зависимости от опций компилятора.

When signed integer arithmetic operation overflows (the result does not fit in the result type), the behavior is undefined: it may wrap around according to the rules of the representation (typically 2's complement), it may trap on some platforms or due to compiler options (e.g. -ftrapv in GCC and Clang), or may be completely optimized out by the compiler.

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

103. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Анонми (?), 16-Сен-23, 20:32 
> UB в этом контексте означает то же поведение,

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

Извини, чел, но чтобы понять, зачем существует Раст, нужно знать о проблемах C/C++ - а ты в этой теме не в зуб ногой.

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

104. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 20:40 
Я на C++ деньги зарабатываю, а ты пионер, который пересказывает проповеди евангелистов. Если тебе ссылки на документацию выше не говорят о возможности задания строгого определенного поведения в GCC и Clang (а также в любых других комбинациях компиляторов и платформ), то ты просто не понимаешь, что там написано. UB в C++ означает только то, что стандарт не определяет поведение в данной конкретной ситуации. Это не значит, что поведение будет обязательно неопределено для конкретного компилятора и платформы, а ровно наоборот - просто оно может отличаться между платформами и компиляторами.
Ответить | Правка | К родителю #103 | Наверх | Cообщить модератору

110. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Анонимусс (?), 16-Сен-23, 21:28 
> UB в C++ означает только то, что стандарт не определяет поведение в данной конкретной ситуации.

Это не так. Ты сейчас говоришь про 3.29 unspecified behavior
"behavior, for a well-formed program construct and correct data, that depends on the implementation"
Вот оно зависит он конкретной реализации. При этом код остается валидным и на это поведение можно завязываться.

А UB делает код невалидным. В след. версии компилятора они мог вообще дропнуть UB кусок во время оптимизации и будут абсолютно правы. То что в компиляторы добавили флаги-костыли для затыкания UB - это просто от безысходности - количество быдл0кодеров, которые кладут болт на стандарты превышало все разумные пределы, а кодовая база была уже написана. И это вряд ли изменится, потому что исправив это - получат кучу нытиков "дисят лет работало, а типеря сламалася!!11"

> Я на C++ деньги зарабатываю

Да я и не сомневался)) А таких как ты много...

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

113. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 22:23 
Я говорю так, как оно есть, но я пытаюсь что-то донести до пионера-фанатика, который не понимает ни русского, ни адглийского, ни элементарного здравого смысла, а несёт какую-то религиозную пургу, чтобы возвысить свой пионерский язычок и приписать другим языкам недостатки, которых у них нет. По факту у тебя просто одна реализация компилятора и нет никакого стандарта, так что на стандарты ты будешь ссылаться тогда, когда он появится и ты поймешь для чего стандарты нужны.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

115. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 16-Сен-23, 23:17 
> приписать другим языкам недостатки, которых у них нет

Забавно было бы услышать, почему тогда 70% всех уязвимостей - это именно работа с памятью в C и C++. Действительно: если в C++ нет недостатков, то выходит, что Rust могли придумать лишь дураки-пионэры, которые об этом не знали, так ведь?

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

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

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

116. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 23:51 
Дорогой пионер, стандартов C++ уже 6 штук и на подходе 7-й. И различаются некоторые из них между собой не меньше, чем 2 разных языка. А ты пишешь про какую-то работу "с памятью в C и C++". C++ успешно эволюционирует и проблемы в нём успешно устраняются, чего не скажешь о пионерском язычке, код браузерного движка на котором оказалось легче выкинуть и переписать с нуля (https://www.opennet.ru/openforum/vsluhforumID3/131470.html#52 ), нежели пытаться исправить - ещё до выхода первого стандарта язычка. И это при том, что сам язычок изначально разрабатывался компанией Mozilla именно для этого браузерного движка. А на C++ код поддерживается и развивается десятилетиями, благодаря чему ты здесь можешь писать всякую ерунду.
Ответить | Правка | К родителю #115 | Наверх | Cообщить модератору

127. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Советский инженерemail (?), 17-Сен-23, 10:32 
И все так счастливы поддерживать этот прекрасный язычок что, как ты и сам заметил, одни изобрели Раст, другие карбон и го. От скуки наверное?
Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

124. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +2 +/
Сообщение от Анонимусс (?), 17-Сен-23, 10:20 
Дорогой непионер, мы все уже давно поняли твою позицию и что ты из себя представляешь.
И про быдлокодинг, и про "а так сойдет", и про болт на стандарты.
Спасибо, мы достаточно видели таких и их кода... Можешь не продолжать позориться.
В дальнейший диалоге смысла не вижу. До скорой встречи в очередной CVE в дыряшке.
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

129. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 17-Сен-23, 11:11 
Не забудь принять стандарт ISO пионерского язычка и сменить "дыряшку" на реактос с сервоприводом прежде чем следующий коммент строчить, любитель стандартов.
Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

139. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (158), 17-Сен-23, 12:30 
скомпиляй ядро без расширений GNU для С, и тогда что-то рассказывай, любитель стандартов.

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

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

147. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (147), 17-Сен-23, 14:30 
> чтоб не попользоваться нестандартными расширениями компилятора

Вы думаете это случайно так? По недомыслию разработчиков стандартов? Вы то умнее их и так бы не сделали?

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

157. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (158), 17-Сен-23, 18:02 
я не знаю по какой причине стандарт такой как есть, но вот хвастатся таким стандартом я бы не стал.
Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

160. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (147), 17-Сен-23, 19:44 
> я не знаю по какой причине стандарт такой как есть, но вот хвастатся таким стандартом я бы не стал.

То есть, "не читал, но осуждаю".

Он есть. В отличии от.

И он рассчитан на развитие железа и его изменения.

В отличии от некоторых.

Где здесь причина не гордиться им?

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

171. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Советский инженер (?), 18-Сен-23, 04:47 
Не мычи, ядро по стандарту собрал или нет?
Если нет, то пошол вон.
Ответить | Правка | К родителю #160 | Наверх | Cообщить модератору

184. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (184), 18-Сен-23, 20:04 
Это вендорлок.
Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

130. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (147), 17-Сен-23, 11:13 
> и про болт на стандарты

Забавно слышать от фанатов rust'а.

У которых нет стандарта.

И есть 1.2 реализации.

Причем начало второй реализации полностью без проверок.

И спокойно можно писать на этой реализации rust программу. Стандарта то нет.

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

138. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Аноним (158), 17-Сен-23, 12:24 
ха, чем такие стандарты в которых UB в перемешку с implementation-defined, котоые по сути, не гарантирут елементарного! Как сложить два числа без UB !!!

уж лучше жить на RFC и не смешить людей такими стандартами.

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

145. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (147), 17-Сен-23, 13:37 
> уж лучше жить на RFC и не смешить людей такими стандартами.

Во! Во! Это ниша пионерских язычков.

Вот так и живите дальше.

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

148. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 17-Сен-23, 14:41 
> Вот так и живите дальше.

А мы будем и дальше "просто брать, и делать UB", да? Ох и цирк...

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

161. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (147), 17-Сен-23, 19:46 
Это чувство самосохранения.

Не заниматься однодневками.

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

174. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Советский инженер (?), 18-Сен-23, 08:07 
С таким подходом тебе надо безопасненько на Яве писать , или вообще на коболе.

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

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

181. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Серб (ok), 18-Сен-23, 17:16 
Скопипащу с форума одного сайта. Это то, что очевидно, но как-то многие делают вид, что вообще не понимают, о чем речь, почему-то.


> Что такое вообще код?
> Это реализация,выражение какой-то идеи, записанное в виде набора инструкций. Вопрос же про сопровождение, т.е реализация должна жить максимально долго с минимумом усилий.
> Что может этому помешать? Изменение среды выполнения: ОС, железо, библиотеки.
> Как снизить влияние среды?
> Варианта всего два: либо свой рантайм либо абстрагирование на уровне кода - чтобы везде и всегда собиралось.
> Первый вариант это то что реализуют Java и .NET, второй это Си.

Копипасту немного порезал. Там дальше rust ругает.

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

182. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +2 +/
Сообщение от Аноним (158), 18-Сен-23, 18:34 
>> ... чтобы везде и всегда собиралось.

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

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

183. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Серб (ok), 18-Сен-23, 18:40 
> блииин, а я всегда думал надо чтоб собранное работало ....
> а оно вот как, собралось и ладненько

Зачем попросту ерничать?

Понятно же, что и работать должно.

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

108. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Аноним (19), 16-Сен-23, 21:17 
> Ну так по этому определению твой любимый пионерский язычок, в котором якобы
> нет UB, может либо запаниковать, либо не запаниковать при переполнении.

Не совсем. Это ты можешь либо эт-самое в лужу, либо просто в сторону "растоманов" - в зависимости от настроения и желаний левой пятки. А тут
https://doc.rust-lang.org/std/primitive.u32.html#method.wrap...
> Wrapping (modular) addition. Computes self + rhs, wrapping around at the boundary of the type.

все, как хочет погроммист, вне зависимости от опций и языковых расширений компилятора


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

96. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +3 +/
Сообщение от Анонми (?), 16-Сен-23, 19:38 
> ты просто берёшь и делаешь UB

Ахаха! Чел, ты это серьезно?

Вот и все, что нужно знать о противниках Раста. Зато уже ведь всех окрестил неофитами и пионерами...

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

76. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +1 +/
Сообщение от Анонми (?), 16-Сен-23, 17:06 
> Пионеры не в состоянии понять, что UB - это следствие разнородности аппаратных платформ, с которыми C++ должен уметь эффективно работать непосредственно

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

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

80. Скрыто модератором  +/
Сообщение от Аноним (-), 16-Сен-23, 17:35 
Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от warlock66613 (ok), 16-Сен-23, 20:02 
Вы явно путаете undefined behavior и implementation-defined behavior. Это _очень_ разные вещи.

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

101. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 20:19 
Нет, это вы не понимаете, что аппаратная платформа отличается от компилятора, для которого и применяется термин "implementation-defined", и что для аппаратной платформы поведение может быть четко определено даже если оно не определено в стандарте языка.
Ответить | Правка | Наверх | Cообщить модератору

105. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Анонми (?), 16-Сен-23, 20:44 
Ну как бы да, это и есть implementation-defined behavior. Но вы его путаете с undefined behavior, которое при любом раскладе undefined.
Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (128), 17-Сен-23, 11:00 
> Ну как бы да, это и есть implementation-defined behavior. Но вы его
> путаете с undefined behavior, которое при любом раскладе undefined.

Из одного может получиться другое. Скажем формат signed - implementation defined. Откуда вытекает что signed overflow - UB, потому что может быть что так что сяк. В зависимости от формата хранения.

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

131. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 17-Сен-23, 11:22 
Я ничего не путаю. Это ты не понимаешь, что есть стандарт C++ для десятков компиляторов и сотен аппаратных платформ, в котором есть свои области определения, а есть компиляторы и платформы, которые эти области определения расширяют. То, что что-то не определено по стандарту ISO не означает, что оно не определено по спецификации GCC/Clang и/или AMD. А ты это сравниваешь с пионерским язычком, у которого вообще никакого стандарта нет и есть полторы реализации компиляторов. С точки зрения стандартов весь rust и любая программа на нём - UB.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

159. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (158), 17-Сен-23, 18:37 
ага, ага.
стандарт есть, но мягкий 🤣

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

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

163. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  –1 +/
Сообщение от Аноним (147), 17-Сен-23, 20:36 
Ты имеешь ввиду мозилу, которая получив опыт, свалила с rust'а?
Ответить | Правка | Наверх | Cообщить модератору

175. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (158), 18-Сен-23, 10:27 
мозила свалила с раста только в альтернативной реальности местных икспертов.
Ответить | Правка | Наверх | Cообщить модератору

176. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 18-Сен-23, 10:37 
> Ты имеешь ввиду мозилу, которая получив опыт, свалила с rust'а?

Ты нагло лжешь.

https://wiki.mozilla.org/Oxidation#Rust_Components
https://4e6.github.io/firefox-lang-stats/

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

178. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Серб (ok), 18-Сен-23, 14:09 
Так, интереса ради, что на нем сейчас пишут в firefox?

Что подсмотреть за интересными примерами?

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

123. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Советский инженерemail (?), 17-Сен-23, 10:12 
Бла бла бла UB, бла бла бла implementation-defined ...

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

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

141. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 17-Сен-23, 12:44 
> Так и что там с корректностью?
> Что значит по сути предьяв и сказать нечего. Остаётся только извивается.

С корректностью чего именно? По сути каких именно предьяв?

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

142. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (158), 17-Сен-23, 12:58 
>С корректностью чего именно?

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

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

143. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (31), 17-Сен-23, 13:03 
> Бла бла бла UB, бла бла бла implementation-defined ...
> Так и что там с корректностью?

Чел, при наличии UB в коде и сам код, и получающиеся из него бинари некорректны по определению. Какое "бла бла бла"?

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

112. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (-), 16-Сен-23, 21:37 
> Пионеры не в состоянии понять, что UB - это следствие разнородности аппаратных
> платформ, с которыми C++ должен уметь эффективно работать непосредственно.

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

Поэтому код для "int" и "uint16_t" де факто получается как правило одинаковый. Однако есть разница: если вы удумаете назначить что-то явно левое, типа 100500 в uint16_t - вы таки можете варнинг поиметь, а вон там оно спокойно вкатится - чего доброго заюзается как индекс массива какого, на самом деле это опечаточка вышла - но по чужой памяти покатались знатно. И спасибо если не послали ее в сеть или куда там и еще более спасибо если не вкатили это из сети ничего не подозревавшей программе фиг знает куда вообще.

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

Более того - это даже до олдов дошло. До тех которые нормальные. Читать Торвальдса в пуллреквестах bcachefs до просветления. Там где про bit fields vs enum. И это все - вот как раз поэтому. Там Торвальдс мастеркласс по антибагу до кучи дал. Его то жизнь заставила. А кентушка створил какую-то хрень, запостив pull с явным багом и довольно крутым. А старого лиса вот не проведешь - баги за версту чует.

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

77. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Анонми (?), 16-Сен-23, 17:18 
> Страуструп тут недавно выступал и совершенно точно подметил, что те, кто думает, что корректность программы исчерпывается правильной работой с памятью, не понимают примерно ничего в этой жизни

Да, да... А то, что более 70% всех уязвимостей в софте вызваны именно неправильной работой с памятью в C и C++ он тактично промолчал?

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

90. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Аноним (54), 16-Сен-23, 18:49 
Нет, ровно об этом и говорил: do not use low-level unsafe features - hide them in containers or libraries.
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от Анонми (?), 16-Сен-23, 19:52 
> hide them

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

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

92. Скрыто модератором  +/
Сообщение от неАнон (?), 16-Сен-23, 19:03 
Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

192. "Выпуск cppcheck 2.12, статического анализатора кода для язык..."  +/
Сообщение от BeLord (ok), 22-Сен-23, 11:44 
Ну и где у нас нормальные компиляторы?-))
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

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

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




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

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