LINUX.ORG.RU

ИИ создал новый компилятор С

 ,


0

3

Степень прохождения тестовых наборов компиляторов, включая GCC Torture Tests, составляет 99%. Уже собирает ядра Linux, PostgreSQL, SQLite, Redis, FFmpeg, GNU coreutils, Busybox, CPython, QEMU, LuaJIT и ещё около 150 проектов. Для разработки компилятора было привлечено 16 AI-агентов, которые после двух недель работы и около двух тысяч сеансов в Claude Code сгенерировали 100 тысяч строк кода на Rust.

Код компилятора

Перемещено hobbit из development


Ответ на: комментарий от CrX

Ну вообще-то это неплохое достижение.

Zero compiler-specific dependencies — the frontend, SSA-based IR, optimizer, code generator, peephole optimizers, assembler, linker, and DWARF debug info generation are all implemented from scratch. Claude’s C Compiler produces ELF executables without any external toolchain.

Правда, не представляю, сколько теперь надо потратить времени, чтобы разобраться, как работает этот код. Пока похоже на write-only подход.

C
()
                            // Parse optional GCC-style flags after the closing quote
                            let mut has_flag_1 = false;
                            let mut k = j + 1; // skip closing quote
                            while k < line_end {
                                // Skip whitespace
                                while k < line_end && bytes[k] == b' ' {
                                    k += 1;
                                }
                                if k < line_end && bytes[k].is_ascii_digit() {
                                    let flag_start = k;
                                    while k < line_end && bytes[k].is_ascii_digit() {
                                        k += 1;
                                    }
                                    if let Some(flag) = parse_u32_from_digits(&bytes[flag_start..k]) {
                                        if flag == 1 {
                                            has_flag_1 = true;
                                        }
                                    }
                                } else {
                                    break;
                                }
                            }

https://github.com/anthropics/claudes-c-compiler/blob/main/src/common/source.rs

Но все-таки пока оно знатный говнокод пишет

C
()
Ответ на: комментарий от C

Правда, не представляю, сколько теперь надо потратить времени, чтобы разобраться, как работает этот код.

The resulting compiler has nearly reached the limits of Opus’s abilities. I tried (hard!) to fix several of the above limitations but wasn’t fully successful. New features and bugfixes frequently broke existing functionality.

Это просто генератор технического долга, на который потратили 20 тысяч долларов. Ну и да, команда разработчиков там активно помогала.

error_
()
Ответ на: комментарий от Radjah

ОС вроде уже есть и даже с браузером

Браузер отдельно тоже есть https://github.com/wilsonzlin/fastrender но все это напоминает решения с подгонкой под готовый ответ. То есть оно как бы работает, но только на том что входило в тестовый набор, для того же компилятора если заглянуть сюда https://github.com/anthropics/claudes-c-compiler/issues там же куча элементарных дебильных ошибок типа https://github.com/anthropics/claudes-c-compiler/issues/168 и при этом компилятор умудрялся собирать и запускать ядро линукса. В общем результат пока скорее отрицательный, ничего сложного и рабочего даже для вещей для которых можно тупо подгонять под выхлоп существующих приложений (в случае сабжа под выхлоп gcc) пока ИИ создать не может. А весь этот шум только для выбивания денег из инвесторов.

anonymous
()
Ответ на: комментарий от cobold

Работают как положено?

Вы, что, хотите чтобы процесс разработки компилятора затянулся на десятиление? :) Вы ещё предложите ИИ, сравнить эти бинарники по скорости работы с тем, что после gcc получется.

mky ★★★★★
()

На LinkedIn встретился небольшой пост с краткой характеристикой этого компилятора. ИМХО, самое главное там – это скриншот со сравнением того, что делает GCC и чего не делает ССС: https://ibb.co/qLCmtdYr

eao197 ★★★★★
()
Ответ на: комментарий от C

сколько теперь надо потратить времени, чтобы разобраться, как работает этот код

А сколько времени потратили, чтобы разобраться в бинарнике gcc? Наверное никому это и в голову не приходило. В выхлопе ИИ не надо разбираться. Надо разбираться в том, как правильно ставить ему задачу.

vbr ★★★★★
()
Ответ на: комментарий от beastie

T9 на стероидах

Это сначала он был Т9, а шас вон уже компилятор собрал, а завтра он уже будет Т800, а послезавтра - Т1000 и все, капец кожанным…

pihter ★★★★★
()
Ответ на: комментарий от vbr

В выхлопе ИИ не надо разбираться. Надо разбираться в том, как правильно ставить ему задачу.

И утрата компетенций через 3… 2… 1…

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

pihter ★★★★★
()
Ответ на: комментарий от pihter

И утрата компетенций через 3… 2… 1…

Извозчики тоже утратили компетенции по уходу за лошадьми. Что поделаешь, беспощадная поступь прогресса.

Говорят вон в насах не смогли сатурн 5 перепостроить когда вновь понадобился - просто взяли движки от шаттлов, которые тоже производить уже не умеют.

Думаю, что не очень-то и хотели.

че ж с нами будет если мы ещё и код писать черному ящику доверием не разбирая че он делает?

Так тут выбора особого нет. Ты не доверяешь - тебя уволят, наймут выпускника курсов по управлению клаудой, он доверит.

Что с нами будет - вопрос интересный и у меня ответа на него нет. Точней пока ответ такой - кто сколько успеет заработать до начала массовой безработицы, тот так и будет жить. Кто-то по помойкам, кто-то на проценты от депозита/сдачи квартир. Со всякими шабашками. В общем эдакие 90-е, только без перспективы улучшения. Может быть будет всё лучше, если власть имущие внезапно расщедрятся и начнут выплачивать всем пенсию по недееспособности, хотя с чего бы. Может будет постапокалипсис и всякие там рыщущие банды с золотыми огороженными городами, куда пустят лишь долларовых миллионеров.

А может быть развитие LLM внезапно упрётся в стенку и остановится на уровне чего-то среднего между недо-джуниором и пере-сеньором, для управления которым нужны хорошие скиллы и в целом ничего кардинально не изменится. Но этот сценарий мне кажется маловероятным. ИИ уже слишком хорош.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

Но этот сценарий мне кажется маловероятным. ИИ уже слишком хорош.

Судя по реально нерабочим, но очень эффектным браузеру и компилятору мы или на пике или близко к пику кривой хайпа, так что не стоит делать преждевременных выводов.

anonymous
()
Ответ на: комментарий от vbr

А может быть развитие LLM внезапно упрётся в стенку и остановится на уровне чего-то среднего между недо-джуниором и пере-сеньором, для управления которым нужны хорошие скиллы и в целом ничего кардинально не изменится. Но этот сценарий мне кажется маловероятным.

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

ИИ уже слишком хорош.

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

Obezyan
()
Ответ на: комментарий от anonymous

Судя по реально нерабочим, но очень эффектным браузеру и компилятору мы или на пике или близко к пику кривой хайпа, так что не стоит делать преждевременных выводов.

Мне кажется, мы уже прошли пик, совсем недавно, и уже пошёл медленный спад хайпа. Но это пока только субъективные ощущения (и по миру, а не по рунету, рунет как всегда немножко отстаёт от мировых трендов).

CrX ★★★★★
()
Ответ на: комментарий от Obezyan

Заметил забавную вещь, чем глубже человек занимается ИИ тем больше он понимает насколько текущий ИИ плох.

Да, очень плохой ИИ, но за две недели и $20к, кожаные мешки не родили бы даже такую поделку. Его сравнивают с gcc забывая, сколько в gcc вложено ресурсов. Сабж, конечно, на практике использоваться не будет, но пойдет как proof of concept, что ИИ уже может делать такое.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Да, очень плохой ИИ, но за две недели и $20к, кожаные мешки не родили бы даже такую поделку.

С таким уровнем выхлопа - родили бы. Тупо пара студентов и книга дракона. Оно даже могло бы быть лучше. Посмотрите выше в треде картинку - оно игнорирует повторное определение, константность и многое другое. Оно даже хэлло врот не компилирует.

PPP328 ★★★★★
()
Ответ на: комментарий от goingUp

но за две недели и $20к, кожаные мешки не родили бы даже такую поделку

Потому что кожаные мешки знают, как потратить две недели и $20к с большей пользой (хотя даже «ничего не делать» в данном случае лучше для человечества, чем делать эту поделку).

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

Сабж, конечно, на практике использоваться не будет

Именно. Это совершенно бесполезная поделка. Толку от неё никакой, кроме хайпа и потраченного времени на ознакомление с ней. Отрицательная польза за $20к.

что ИИ уже может делать такое

«Такое» — это бесполезное и никому ненужное глюкалово? Да вроде все и так знали. Более того, ИИ может и для чего-то полезного использоваться.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)

Тут некоторые не вдупляют, что смысл данного эксперимента совсем не в создании ещё одного си компилятора (их и так до жопы). Чуваки отрабатывают рабочий процесс (ака workflow) по использованию ии агентов в разработке софта, и по ходу подкручивают гайки где надо. То, что уже в самом ближайшем будущем почти весь машинный код будет генерить машина, до сих пор не очевидно только дебилам людям с замедленным мышлением. Всякий девопс уже сейчас можно перекладывать на нейронки. Роль живого работчика смешается в сторону планирования и контроля качества. Учитесь сочинять спеки для ии ассистентов, малята. Спек - это тоже код, но совсем другого уровня абстракции, чем яп. Кстати, современные япы типа раста неплохо подходят для автоматической генерации ии асистентами, которым как раз помогает боров чекер, продвинутые тулзы и вот это вот всё. Скорее всего, рано или поздно какой-нибудь антропик выдумает специальный язычок для ии, и тогда увольнять можно будет не только всех джунов, но и большинство сеньйоров, но это не сегодня и не завтра, может быть послезавтра.

yvv1
()
Ответ на: комментарий от yvv1

Чуваки отрабатывают рабочий процесс (ака workflow) по использованию ии агентов в разработке софта, и по ходу подкручивают гайки где надо.

Ну так пусть отрабатывают. Зачем нам знать о том, как именно у них пока плохо получается? Вот когда будет итоговый, или хотя бы промежуточный интересный результат, тогда это будет повод обсудить. А тут-то что?

CrX ★★★★★
()
Ответ на: комментарий от CrX

Если вам незачем знать, то проходите мимо, не задерживайтесь. А нам например интересно. Новость заслуживающая внимания. Мы, правда, её на других ресурсах уже раз 10 читали, но такого обсуждения, как здесь ещё не было.

yvv1
()
Ответ на: комментарий от yvv1

какой-нибудь антропик выдумает специальный язычок для ии, и увольнять можно будет не только всех джунов, но и большинство сеньйоров

В конце концов сеньоров уволят и в антропике, и наступит полная благодать.

Nervous ★★★★★
()
Ответ на: комментарий от C

Но все-таки пока оно знатный говнокод пишет

Вот что оно пишет, если ему задать правильный запрос:

// Parse optional GCC-style flags after the closing quote
let has_flag_1 = bytes[j + 1..line_end]
    .split(|&b| b == b' ')
    .filter(|s| !s.is_empty())
    .filter_map(|s| parse_u32_from_digits(s))
    .any(|n| n == 1);
yvv1
()
Ответ на: комментарий от eao197

Вот что-что, а контроль качества доверять «живым работчикам» так себе идея.

Качество можно разными способами контроллировать, но окончательное решение, соответсвтует ли продукт заявленным критериям, или нет, принимает всё-таки человек.

yvv1
()
Ответ на: комментарий от yvv1

окончательное решение, соответсвтует ли продукт заявленным критериям, или нет, принимает всё-таки человек.

И человек этот – заказчик. А не разработчик.

Здесь же речь про то, кто код будет писать – все еще человек или же ИИ-ассистент. И если таки ИИ-ассистент, то что останется в процессе разработки для человека.

Вы тут нечто отфонтанировали и один из пунктов в вашем фонтане – это контроль качества. Так вот, практика показывает, что именно в контроле качества людям лучше не доверять. Иногда от слова совсем.

Вероятно, под контролем качества вы что-то специфическое имели в виду.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Человек несет персональную ответственность за контроль качества. Например, подписав акт ОТК. Если изделие окажется дефектным, и не дай Бог пострадают люди, ИИ-ассистента к уголовной ответственности будем привлекать?

Lusine
() автор топика
Ответ на: комментарий от eao197

И человек этот – заказчик. А не разработчик.

Это только в сказочном мире.

Вероятно, под контролем качества вы что-то специфическое имели в виду.

Абсолютно ничего специфического. Вот пример из личного опыта: я даю агенту задачу, он чего-то там выдаёт, прогоняет тесты, и заявляет об успешном завершении. А потом я обязательно это проверяю сам, чисто визуально, и проверкой работоспособности основных фич в ручную если нужно. Иногда приходится запрашивать изменения в несколько итераций. Только потом можно делать коммит/пр. До заказчика ещё ооочень далеко. Такова практическая реальность. Нейронка иногда тупо не понимает, чего ты от неё хочешь, и начинает делать то, что она считает правильным. В этом случае задачу нужно уточнять.

yvv1
()
Последнее исправление: yvv1 (всего исправлений: 3)
Ответ на: комментарий от Lusine

Человек несет персональную ответственность за контроль качества.

А зачем вы смешиваете ответственность и сами процедуры контроля качества?

Я говорю о том, что человек, как контролер качества, очень ненадежен. Не зря даже в программировании создают комплекс мер по контролю без участия человека (самый наглядный пример – юнит-тестирование).

Если yvv1 говорит, что человеку останется место только в контроле качества, то этого самого качества совсем не останется.

eao197 ★★★★★
()