«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. Поддержать меня можно подпиской на канал "сбежавшая нейросеть", где я рассказываю про ИИ с творческой стороны.

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

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

5 часов назад

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

Команда Prusa Research выпустила первую публичную альфа‑версию слайсера PrusaSlicer 3.0. Авторы переписали интерфейс, переработали систему профилей, добавили поддержку полноценной работы с несколькими

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

5 часов назад

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

Anthropic выпустила апдейт своих топовых моделей – Claude Fable 5.1 и Claude Mythos 5.1. Это одна и та же модель под капотом, различающаяся уровнем защитных ограничений: Fable 5.1 доступна всем в цело

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

5 часов назад

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

Creality представила 3D‑принтер SPARKX i8 с поддержкой четырёхцветной печати. Его главная особенность заключается в системе QuarTeks, в которой прутки филамента подведены практически к самому соплу, б

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

6 часов назад

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

Автор YouTube‑канала UFD Tech рассказал, что MacBook Neo необычно быстро расходует источник SSD‑накопителя. Всё дело в небольшом объёме оперативной памяти, из‑за которой устройство активно записывает

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

6 часов назад

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

Организация Anthropic предупредила, что инфостилеры перехватывают сеансы Claude и открывают злоумышленникам доступ к учётным записям пользователей. Читать далее