«64 Claude одновременно»: создатель Bun рассказал, как ИИ переписал миллион строк кода

3 мин
«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 Rust-крейтов, но устранение циклических зависимостей вскрыло около 16 000 ошибок компиляции. "Безумное число для одного человека, но не такое уж безумное для 64 копий Claude одновременно", — пишет он. Чтобы агенты не мешали друг другу, воркфлоу группировал ошибки по файлам, cargo check запускался только в самом начале, а git не трогали до конца прогона.

Динамика впечатляет: через два дня после первого прогона CI список падающих тестов сократился с 972 файлов до 23, еще через полтора дня Linux полностью позеленел, последней сдалась Windows. Все эти 11 дней Самнер вручную мониторил воркфлоу, читал выводы агентов и просил Claude править сам цикл. В этом основной принцип подхода: когда что-то шло не так, чинили не код руками, а процесс, который этот код генерирует.

Rust-версия Bun уже почти месяц работает в продакшене: начиная с Claude Code 2.1.181 от 17 июня инструмент использует именно ее. Популярный разработчик Саймон Уиллисон в своей заметке назвал разбор Самнера описанием чрезвычайно изощренной агентной инженерии. Скептики, впрочем, никуда не делись: в новой кодовой базе насчитали более 13 000 блоков unsafe-кода — на порядки больше, чем в сопоставимых Rust-проектах, так что цена прямолинейного порта еще может дать о себе знать.

P.S. Поддержать меня можно подпиской на канал "сбежавшая нейросеть", где я рассказываю про ИИ с творческой стороны.

Читают сейчас

Встреча ко Дню сисадмина: три доклада из практики

40 минут назад

Встреча ко Дню сисадмина: три доклада из практики

Их работу замечают только в момент аварии, а за счётт реже, чем стоило бы. Ко Дню сисадмина решили это исправить — и позвали тех, кому есть чем поделиться. Ознакомиться далее

Школьники создадут ML-модель для помощи модераторам цифровых платформ

1 час назад

Школьники создадут ML-модель для помощи модераторам цифровых платформ

Открылась регистрация на международный конкурс по искусственному интеллекту AI Challenge. В основном этапе участникам предстоит решить практическую задачу от VK — разработать схема машинного обучения

Операторы связи зафиксировали долгосрочный увеличение голосового и СМС-трафика

1 час назад

Операторы связи зафиксировали долгосрочный увеличение голосового и СМС-трафика

Тенденция на увеличение числа звонков и СМС в России стал долгосрочным, следует из данных, предоставленных РБК крупными мобильными операторами. Читать далее

1 час назад

Вышла новая релиз Innostage PAM 1.7.0

Innostage представила новую версию Innostage PAM 1.7.0 — решения для управления привилегированным доступом в корпоративных инфраструктурах. В новой версии доработаны сценарии, от которых зависит повсе

К2Тех включил новую аналитическую СУБД Postgres Pro AXE в портфель решений по работе с данными

2 часа назад

К2Тех включил новую аналитическую СУБД Postgres Pro AXE в портфель решений по работе с данными

Крупнейший российский разработчик систем по управлению базами данных (СУБД) Postgres Professional и ИТ-компания с комплексной экспертизой К2Тех расширили сферы партнерства в части решений по работе с