Корпорация Anthropic столкнулась с кризисом после того, как опытный разработчик по неосторожности добавил вывод предупреждений в код компании. Программа, выходя из корректного выполнения, печатала сообщение «yay, done», которое скрипты считали главным признаком успеха. Однако при ошибках деструкторы или атexit-обработчики вдруг выводили предупреждения после этого сообщения, из-за чего автоматизированные системы начинали думать, что процесс провалился. Вместо того чтобы исправить баг в коде, команда занялась поиском всех мест, где могли возникнуть подобные предупреждения, чтобы не рисковать критическими задачами. Даже если бы кто-то нашел ограниченное число таких случаев через grep, разработчики опасались пропустить ошибки в других командах и не успеть выпустить патчи. Коллеги предложили несколько обходных путей, включая двойной вывод «yay, done» в деструкторах при наличии предупреждений, что разожгло техническую дискуссию о различиях между функциями очистки attribute((destructor)) и атexit-обработчиками. Другие идеи включали подавление предупреждений по умолчанию с возможностью включения их по запросу или запись логов в отдельный файл. Один из сотрудников упомянул, что подобное решение уже реализовало кто-то другой ранее. Когда разработчик закончил читать чат с предложениями «помощников», он задумчиво улыбнулся и резюмировал ситуацию фразой: «Все методы допустимы, кроме решения реальной проблемы».
Разработчик случайно сломал сборку из-за предупреждений
06.05.2026 15:52 · hackernews