На прошлой неделе Anthropic представила CCC (Claude's C Compiler) — полноценный C-компилятор, написанный Claude Opus 4.6 на Rust. Компания заявила, что он способен собрать ядро Linux. Автор техблога Harshanu проверил это на практике — и результаты оказались далеки от рекламных.

На бенчмарке SQLite 3.46 код, скомпилированный CCC, отработал за 2 часа 6 минут — тот же тест с GCC без оптимизаций занял 10,3 секунды. Разница — 737 раз. На сложных запросах с вложенными подзапросами отставание достигало 158 000 раз. Причина — в примитивном распределении регистров: CCC использует один регистр как "челнок" между ячейками стека, превращая каждую операцию в цепочку обращений к памяти. Бинарники при этом получаются в 2,7–3 раза больше, а компилятор потребляет в 5,9 раза больше оперативной памяти.

С ядром Linux 6.9 ситуация еще интереснее. CCC действительно скомпилировал все 2 844 исходных файла на C без единой ошибки — но на этапе линковки получил 40 784 ошибки undefined reference. Компилятор генерирует неправильные релокации для структур __jump_table и __ksymtab, поэтому итоговый бинарник vmlinux собрать не удалось. Заявление Anthropic о сборке ядра формально верно — но только для этапа компиляции, не для получения рабочего образа.

Отдельной деталью стало то, что флаги оптимизации -O2 и -O3 в CCC ничего не делают — бинарники при любых настройках получаются побайтно идентичными. 15 проходов SSA-оптимизации запускаются всегда, независимо от флага, а продвинутых оптимизаций вроде инлайнинга, развертки циклов или векторизации у компилятора просто нет. Вдобавок первый же issue в репозитории проекта — Hello World не компилируется на чистой Ubuntu и Fedora из-за неправильных путей к системным заголовкам. Он набрал 288 реакций и больше 200 комментариев.

Как демонстрация возможностей Claude результат впечатляет: ИИ написал 100 тысяч строк компилятора, который корректно разбирает реальный C-код. Но до практического применения CCC далеко — 40 лет оптимизаций GCC пока не заменить за две недели и $20 000 на API.

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