Обновить

Opus 4.6 и команда ИИ-агентов написала компилятор С за 2 недели

Время на прочтение2 мин
Охват и читатели11K
Всего голосов 9: ↑5 и ↓4+4
Комментарии31

Комментарии 31

добавление новых фич часто ломает старые.

Иными словами за 20 000$ получили одноразовый код.

Люди его поддерживать не смогут, т.к. там нет структуры и логики, а ИИ агенты постоянно хотят переписать уже работающие функции в надежде исправить баг или добавить новый функционал, поэтому в результате всё ломается.

20000$ - это затраты на агентов, надо полагать. ЗП самой команды в таких случаях, как правило, не считают

"там нет структуры и логики" - это вы исходники данного компилятора изучили, что бы сделать такой вывод? или это ваше предположение?
PS: проблема переписывания работающего кода ИИ-чат-ботами, по моим наблюдениям, была исправлена ещё полгода назад.

PS: проблема переписывания работающего кода ИИ-чат-ботами, по моим наблюдениям, была исправлена ещё полгода назад.

По моим - еще вчера во всяком случае точно исправлена не была. Может сегодня конечно поменялось что..

Они решили изобрести 1С

Исходники любого компилятора - это не возможный для поддержки код, без структуры и логики. Специфика такая.

Не соглашусь, GCC живёт и поддерживается уже почти сорок лет. Не будь там структуры и логики, фиг бы он пережил 90-е.

Загляните в исходники GCC, а потом в CCC и сделайте выводы сами. Признаться честно у CCC они не самые "нечитаемые" среди виденных мною homebrew компиляторов.

Да, я глянул и исходники GCC, и глянул на Claude's C Compiler.

Если в коде GCC - везде аккуратные "кирпичики" из небольших чистых функций. то CCC - "шлакоблоки" копипасты и отмазок.

Хм, а не является ли код CCC частично следствием отравления контекста агентов "Мы пишем компилятор для C", отчего они и путались между Rust/C?

А вообще, нужен следующий эксперимент: 32 Клода, которые два месяца будут рефакторить и переписывать CCC до идиоматического чистого Rust, с фокусом на логику и структуру проекта. :)

Через 2 года это будет стоить 200 долларов и знимать два дня. И подобный одноразовый код станет обыденностью -- если нужно будет поправить что-то то проще будет написать с нуля, чем что либо разбирать.

Через 2 года это будет стоить 200 долларов

или 200000

Про 2 года - это настолько смелый предмет, достойный фанатика или уровня СЕО компании, заинтересованного в инвестициях.

Замедление прогресса и упор "потолок" уже виден невооружённым взглядом. Даже заинтересованные СЕО "смещают" свои обещания на более поздние сроки.

Трезво оценивая: текущий уровень уже неплох, а рассчитывать на 100 кратное улучшение (удешевление) - ну очень оптимистично.

Иными словами за 20 000$ получили одноразовый код.

В этом видимо и вся прелесть для создателей ЛЛМок, все напишут неподдерживаемый софт, и потом чтобы расширить функциональность или пофиксить баги проще с ноля всё еще раз написать опять за 20к$. Нужно отдать должное, это гениальный бизнес план.

Так и запишем

"Модель Opus 4.6 доказала свою неспособность доводить проекты до ума без пинков от живого эксперта"

Слэш лишний в конце

Нет, там вообще не пытались пройти формальные тесты. Тут хоть пытались

Насколько я помню, когда народ взял этот репозиторий и попробовал его скомпилировать, выяснилось что это не получается и сыплются десятки ошибок. Что не помешало заявить о грандиозном успехе ИИ.

Не забываем, что LLMки обучались в том числе и на коде компиляторов, то есть, у них уже был готовый рабочий исходник "в голове"

Давайте говорить как есть: они его просто взяли и скопипастили. Списывали две недели, ещё и тыкать носом в тетрадь приходилось.

Не, у них вышло вольное сочинение на тему. Причём если посмотреть репу, то там весь код в духе "пофигу, что у нас Rust, пишем, как будто это C, не перечитываем, не переписываем"

А «кожаные» с нуля прям компиляторы пишут? То что ЛЛМ смогла довести компилятор си до рабочего состояния о чем то да и говорит.

Ну в какой-то момент всё-таки писали с нуля.

Ну берем самый "олдовый" из живых - GCC - был получен Столлманом в ходе переписывания, еще более олдового, компилятора Pastel(Столлману отдали исходники компилятора языка Паскаль, сказав "используй как хочешь"). А прежде чем GCC научился в "полную поддержку Си 89" - прошло лет 5.

(Не было)

Тесты не получились.

Понадобились некодифицируемые знания в виде golden tests /сравнения с эталоном

Мдя...

Без формальной спецификации C (которой в полном виде не существует, только стандарт с UB и implementation-defined) автоматические тесты в принципе недостаточны. Golden tests — это признание: "мы не знаем что правильно, но знаем что делает GCC"

Но, если подумать, это не проблема LLM

P.S.

GCC ~15 млн строк (с фронтендами всех языков), чистый C-фронтенд + middle-end ~2-3 млн.

100к строк это очень мало. Видимо, только парсинг + кодоген, без оптимизаций

НЛО прилетело и опубликовало эту надпись здесь

CompCert верифицирует только подмножество C (без части фич: VLA, некоторые битовые поля, goto-хитрости)

Linux и реальные проекты используют GCC-расширения (__attribute__, inline asm, statement expressions), которых в CompCert нет

Golden tests — это признание: "мы не знаем что правильно, но знаем что делает GCC"

Если задача собрать Linux, то это правильный подход. Код ядра - это в основном про возможность сборки с помощью GCC, а не соответствие стандартам.

"мы не знаем что правильно, но знаем что делает GCC" - все верно, чтобы собрать Linux - надо быть конкретно GCC/C, Clang буквально флаг-в-флаг, атрибут-в-атрибут прикидывается GCC, чтобы тонны "как бы сишных исходников" собирать.

Помню прошлый эксперимент с созданием таким образом браузера закончился репозиторием, который даже не компилировался, интересно здесь кто-то проверял результат или он ограничивается громкими заявлениями?

Такое себе. Это не компилятор - а его приближение, найденное случайным поиском на фиксированном датасете. Вообще неподдерживаемый, забагованный и нерабочий продукт жизнедеятельности.

Во-первых, там написан неоптимизирующий компилятор: скомпилированнй код работает хуже gcc без оптимизаций. Неоптимизирующий компилятор Си - это не такая уж и сложная вещь. Почти работающие компиляторы Си можно написать в одно лицо. Вообще, простенькие компиляторы дают писать студентам в качестве задачи в нормальных университетах на курсах по компиляторам. Тут задача посложнее, конечно, но не на порядки. Десяток толковых инженеров за 2 недели точно справятся. Но, кроме всяких контестов, никто ничего такого уже лет 30 не делал, потому что это мертворожденное и бессмысленное занятие. Смысла в такой поделке нет, а допиливать это до настоящего оптимизирующего компилятора - работа на десятилетия.

Во-вторых, оно компилирует какой-то прибитый гвоздями набор исходников, на которых училось. Добавьте туда еще каких-нибдь проектов и придется тратить еще неизвестное количество недель и десяток дысяч долларов, чтобы оно и их компилировало. Например, оно не компилирует Hello, world без танцев с бубном.

В-третьих, и главное - этот "компилятор" компилирует даже программы с ошибками. Положительные тесты на то, что оно должно скомпилировать у них были, а вот отрицательных, похоже, не особо. Сколько еще тысяч долларов надо потратить на допиливание? Обратите внимание, поскольку там нет дизайна-логики-смысла, а лишь беспорядочная генерация случайных токенов с отсеиванием непроходящих тесты вариантов, тут нельзя сказать, что оставшиеся мелкие баги быстро и дешево допилить. Возможно оно сошлось в локальный оптимум, из которого очень далеко до правильной реализации. Возможно оно вообще никогда не сойдется. Все, кто пользовался агентами на достаточно сложных вещах сталкивались с этим, когда оно исправляет что-то оно ломает кучу других мест.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации