Комментарии 31
добавление новых фич часто ломает старые.
Иными словами за 20 000$ получили одноразовый код.
Люди его поддерживать не смогут, т.к. там нет структуры и логики, а ИИ агенты постоянно хотят переписать уже работающие функции в надежде исправить баг или добавить новый функционал, поэтому в результате всё ломается.
20000$ - это затраты на агентов, надо полагать. ЗП самой команды в таких случаях, как правило, не считают
"там нет структуры и логики" - это вы исходники данного компилятора изучили, что бы сделать такой вывод? или это ваше предположение?
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ки обучались в том числе и на коде компиляторов, то есть, у них уже был готовый рабочий исходник "в голове"
Давайте говорить как есть: они его просто взяли и скопипастили. Списывали две недели, ещё и тыкать носом в тетрадь приходилось.
А «кожаные» с нуля прям компиляторы пишут? То что ЛЛМ смогла довести компилятор си до рабочего состояния о чем то да и говорит.
Ну в какой-то момент всё-таки писали с нуля.
(Не было)
Тесты не получились.
Понадобились некодифицируемые знания в виде golden tests /сравнения с эталоном
Мдя...
Без формальной спецификации C (которой в полном виде не существует, только стандарт с UB и implementation-defined) автоматические тесты в принципе недостаточны. Golden tests — это признание: "мы не знаем что правильно, но знаем что делает GCC"
Но, если подумать, это не проблема LLM
P.S.
GCC ~15 млн строк (с фронтендами всех языков), чистый C-фронтенд + middle-end ~2-3 млн.
100к строк это очень мало. Видимо, только парсинг + кодоген, без оптимизаций
Golden tests — это признание: "мы не знаем что правильно, но знаем что делает GCC"
Если задача собрать Linux, то это правильный подход. Код ядра - это в основном про возможность сборки с помощью GCC, а не соответствие стандартам.
"мы не знаем что правильно, но знаем что делает GCC" - все верно, чтобы собрать Linux - надо быть конкретно GCC/C, Clang буквально флаг-в-флаг, атрибут-в-атрибут прикидывается GCC, чтобы тонны "как бы сишных исходников" собирать.
Помню прошлый эксперимент с созданием таким образом браузера закончился репозиторием, который даже не компилировался, интересно здесь кто-то проверял результат или он ограничивается громкими заявлениями?
Такое себе. Это не компилятор - а его приближение, найденное случайным поиском на фиксированном датасете. Вообще неподдерживаемый, забагованный и нерабочий продукт жизнедеятельности.
Во-первых, там написан неоптимизирующий компилятор: скомпилированнй код работает хуже gcc без оптимизаций. Неоптимизирующий компилятор Си - это не такая уж и сложная вещь. Почти работающие компиляторы Си можно написать в одно лицо. Вообще, простенькие компиляторы дают писать студентам в качестве задачи в нормальных университетах на курсах по компиляторам. Тут задача посложнее, конечно, но не на порядки. Десяток толковых инженеров за 2 недели точно справятся. Но, кроме всяких контестов, никто ничего такого уже лет 30 не делал, потому что это мертворожденное и бессмысленное занятие. Смысла в такой поделке нет, а допиливать это до настоящего оптимизирующего компилятора - работа на десятилетия.
Во-вторых, оно компилирует какой-то прибитый гвоздями набор исходников, на которых училось. Добавьте туда еще каких-нибдь проектов и придется тратить еще неизвестное количество недель и десяток дысяч долларов, чтобы оно и их компилировало. Например, оно не компилирует Hello, world без танцев с бубном.
В-третьих, и главное - этот "компилятор" компилирует даже программы с ошибками. Положительные тесты на то, что оно должно скомпилировать у них были, а вот отрицательных, похоже, не особо. Сколько еще тысяч долларов надо потратить на допиливание? Обратите внимание, поскольку там нет дизайна-логики-смысла, а лишь беспорядочная генерация случайных токенов с отсеиванием непроходящих тесты вариантов, тут нельзя сказать, что оставшиеся мелкие баги быстро и дешево допилить. Возможно оно сошлось в локальный оптимум, из которого очень далеко до правильной реализации. Возможно оно вообще никогда не сойдется. Все, кто пользовался агентами на достаточно сложных вещах сталкивались с этим, когда оно исправляет что-то оно ломает кучу других мест.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Opus 4.6 и команда ИИ-агентов написала компилятор С за 2 недели