----------------------------------------------------------------------------------
@MSGID: 2:5055/182 d70c9ed6
@PID: jNode ver. 1.5
@TID: jNode ver. 1.5
@CHRS: CP866 2
**Против лома нет приёма**
[К сожалению, более, чем актуальная
статья.](
https://habr.com/ru/articles/756000/)
А за оптимизации через UB надо компиляторщиков лупить ломом по
шаловливым ручонкам, которые растут из жопы.
И вот почему.
Вы кроссплатформенный ужас пробовали писать?
То, что в нем поведение стандартной библиотеки шланга (libc++) и GCC
(libstdc++) может в одном и том же месте отличаться - это половина беды.
То, что проприетарные компиляторы имеют собственные стандартные
библиотеки, отличные в поведении и реализации от сладкой парочки выше - это
тоже полбеды.
Как, скажите на милость, тестировать UB?
Вы сталкивались с таким UB, которое не приводит к немедленному краху?
А, наоборот, 40 раз дает один результат, а 41й - другой?
Вы пишете юнит-тесты таким образом, чтобы по 40 раз повторять одно
да потому? И сравниваете результаты? Ведь сравниваете?
У меня для вас феровые новости - ваши программы, которые вы
считаете безупречно вылизанными - в них может скрываться UB.
Вариантов, тащемта, немного. Не включать оптимизации. И юзеры Cmake
этим в большинстве успешно пользуются. Вы заметаете UB под ковер. До поры
до времени.
А вы видели, как код, работающий на одной платформе без сучка и
задоринки, немедленно ловит дэдлок на другой? А при попытке приаттачить к
висюку дебаггер, дабы посмотреть - "Чтоооооэтотаааааамвисииииит?!" -
незамедлительно обваливается, не давая, собственно, посмотреть - ачо висело-то?
Угадывай с одной ноты, чувак!
Это другая сторона медали - реализация системного API. И я скорбно
промолчу про расфрагментированные в хламину __разные__ платформы, которым API
libC - уже не указ.
До вас начинает доходить, почему я матом крою комитеты и тех, кто
потом следует указивкам и решениям этого совета джедаев?
Из вышесказанного следует, что корректных программ на планете - почти
не существует. Что это может означать в рамках всеобщей говнохренации
говнохренаторов - догадайтесь сами.
Используйте воображение.
PS. __Угадайте с трёх раз, почему компиляторщики вынуждены делать
оптимизации на грани фола, а? Ну? Ну? Ну? Потому, что вы их не делаете. Вы -
лично вы - считаете оптимизацию матерью всех зол. И оптимизацией вы
считаете положиться на закон Мура и завалить всё железками пошибчее. Капасити
рассчитать, ага. Алгоритмы? Это для собесов. В лучшем случае вы считаете
оптимизацией подправить пару-тройку ядерных параметров ОС. Это в лучшем случае. А
алгоритмы? Оптимизации в смысле Брендана? Это для дятлов вроде меня. Которым
заняться больше нехером. Самые продвинутые делают профилирование и оптимизируют
лишь торчащие больные пальцы, верно? Спасибо и на этом, как говорится.
Остальным - капасити рулит!!!!!111111 Такие делишки, ангелы мои. Такие делишки.
А компиляторщики - они знают, что пара лишних ассемблерных команд
оттяпывает 10% от производительности. Может оттяпать. Но вам-то что до этого,
вам не за это бапки плотят.__
http://fido.ortoped.org.ru/photo_2023-08-22_05-00-02.jpg
--- hssergey station
* Origin: jNode ver. 1.5 (2:5055/182)
SEEN-BY: 301/1 460/58 4500/1 5001/100 5005/49
5015/255 5019/40 5020/715 848
SEEN-BY: 5020/1042 4441 12000 5030/49 1081 5055/182
5058/104 5061/133
SEEN-BY: 5083/444
@PATH: 5055/182 5020/1042 4441