C++ снова подставил тех, кто верил в «ну это же очевидно работает».
Алиасинг памяти — это когда один и тот же кусок RAM читают/пишут через разные типы. В теории — мелочь. На практике — привет, UB, сломанные оптимизации и баги, которые вылезают только на релизной сборке, под другим компилятором и в самый неудобный момент 💥
История у этой дыры грязная: сначала язык разрешал слишком много, потом компиляторы начали агрессивно оптимизировать, и код, который «годами жил», внезапно стал падать. Комитет попытался закрутить гайки, потом появились предложения «починить» алиасинг красиво… и почти все уткнулись в реальность: обратная совместимость, производительность, старый код и новые грабли.
Главный вывод простой: если вы не понимаете правила алиасинга, вы не оптимизируете C++ — вы ставите мину под чужой прод.
В WP-мире это тот же жанр, только вместо C++ — кривые плагины, кеш и ручные касты. Симптом один: «вчера работало, сегодня сломалось» ⚙️
WP Surgery
@WpSurgeryPro
C++ снова подставил тех, кто верил в «ну это же очевидно работает».
Этот пост опубликован в Telegram-канале WP Surgery. Подписаться можно по ссылке: @WpSurgeryPro.