«64 Claude одновременно»: создатель Bun рассказал, как ИИ переписал миллион строк кода
Джарред Самнер, создатель JavaScript-рантайма Bun, опубликовал детальный разбор того, как проект переписали с языка Zig на Rust. Этот пост он обещал с 9 мая, но ожидание того стоило: впервые раскрыта методология одной из самых громких ИИ-миграций кода — с динамическими воркфлоу, пробными прогонами, состязательным ревью и десятками параллельных агентов.
Сам переезд состоялся еще в мае: пул-реквест с примерно миллионом строк Rust-кода влили в основную ветку через шесть дней после открытия. В Bun на тот момент было 535 496 строк кода на Zig без учета комментариев — Самнер оценивает, что переписывание силами небольшой команды инженеров заняло бы год с заморозкой багфиксов и новых фич. Главным мотивом стали ошибки работы с памятью: значительная часть багов Bun сводилась к use-after-free и double-free — обращению к уже освобожденной памяти и ее повторному освобождению. В безопасном Rust все это превращается в ошибки компиляции и автоматическую очистку через Drop.
За решением стояла и усталость: "Наш список багфиксов выглядел плохо, и я устал засыпать с тревогой о крашах в Bun", — пишет Самнер, подчеркивая, что не винит Zig и всегда будет благодарен языку, без которого Bun не зашел бы так далеко. При этом он сразу отсекает карикатурное представление о процессе: написать промпт "Перепиши Bun на Rust. Не делай ошибок" и молиться — это не то, как делаются такие вещи.
Ключевым условием стало то, что тестовый набор Bun написан на TypeScript и не зависит от языка рантайма: миллион проверок, которые изначально писались для версии на Zig, стали эталоном для Rust-порта — если тесты проходят, значит, новая реализация ведет себя так же, как старая. Дальше — инженерия процесса. Монолитную кодовую базу Самнер захотел разбить примерно на 100
Читать на habr.com