[О блоге] [наверх] [пред] [2021-11-10 10:57:07+03:00] [725aff6b7afa6fb0cea24d13d3733d21a984618b]
Темы: [c][hate]

Си должен умереть

http://cmustdie.com/
От Столярова (d026b3c3e20a717c7fd8aad8f5377c4fc4b90d0b) узнал про этот
сайт, прочитал. Согласен что со всеми этими undefined behaviour жопа.
Но, в конце есть выдержка диалога одного из разработчиков GCC (Andrew
Pinski), который своим изменением (якобы) поломал кучу кода. Вот с ходу,
честно говоря, я на стороне этого Пински полностью. Уж извините, но тот
факт, что масса людей написала security-critical код полагаясь не шибко
корректно -- это их проблемы. С какого чёрта компилятор должен думать о
fail-ах кучи остальных людей и делать по умолчанию совместимость с их
поведением? Есть отдельный флаг -fwrapv, но включать его по умолчанию, с
какой стати? Да, с каждой новой версией компилятора и прочего, я считаю
нормально проверять что в них изменилось и как теперь надо править
параметры сборки для своего не очень корректного кода.

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

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

Но, блин, аргументы про Ариан-5 -- говорят только об идиотизме людей
которые пишут на столь опасных языках такой опасный код. Вообще риторика
felix-gcc -- хамская и вообще удивительно как Пински спокойно отвечает и
реагирует на это, попутно показывая *как* надо проверять на переполнение.

    [оставить комментарий]