> Прошу без автомобильных аналогий, ибо я лишь пешеход (до работы пешком идти
> 15 минут). Ок. Тогда аналогия простая - вы, переходя дорогу на зелёный свет, можете смотреть в небо, но лучше глядеть по сторонам.
> Однако насколько я понимаю, следование ПДД всеми участниками движения
> не гарантирует невозникновение аварийных ситуаций (где уже кто-то будет тупо вынужден
> в кого-то врезаться и стать в результате нарушителем),
Почему? ПДД пишутся для того, чтобы при полном соблюдении ПДД и исправности транспорта аварий не было в принципе.
> Поправьте, если не прав, ибо я не знаю ПДД. К тому
> же, когда ты пишешь код и ты видишь UB, то у
> тебя есть возможность его исправить, а когда случилось ДТП -- у
> тебя уже нет возможности его исправить.
Это, если код пишешь ТЫ. А если это огромная, дико полезная программа с полувековой историей (типа Maxima)?
Ещё пронзительнее пример - ScanKromsator, который некий Bolega начал писать году в 1996-м. Программа дико полезна - ей обработана подавляющая часть .djvu файлов со сканами отечественной технической литературы. Но это именно говнокод, где его автор - непонятно, где исходники - тоже. Глюков море, но переписывание займёт лет 10, т.к. внутре SK хорошие алгоритмы + эвристики.
> Но Ленин, как и разработчики gcc лишь выполнял свою задачу, они
> не должны думать о таких побочных эффектах.
Ленин - нет, а gccшники - да.
Буквально год назад был пример с поломкой SPEC. Тоже ошибка в тесте, тоже ломает оптимизация gcc. Но при выборе "удавчик, крокодильчик или хомячок": исправление SPEC => все предыдущие результаты в унитаз, забить => gcc больше не проходит SPEC, вставить костыль; почему-то выбирают 3-й вариант.
> Что такое "хрупкая" сборка? Естественно ветка вводимая в production должна работать надёжно.
> А обычно это release-сборки, следовательно...
Вы правильно всё поняли. Следовательно, debug мы компилируем с -O2, а release - с -O0? ;-)