Als Demonstration der Möglichkeit, eigenstĂ€ndig umfangreiche Projekte mit dem neuen AI-Modell Claude Opus 4.6 zu erstellen, hat das Unternehmen Anthropic einen Compiler fĂŒr die Programmiersprache C generiert â den claudes-c-compiler â, der fĂŒr den Bau des Linux-Kernels, PostgreSQL, SQLite, Redis, FFmpeg, GNU coreutils, Busybox, CPython, QEMU, LuaJIT und rund 150 weiteren bekannten, getesteten Open-Source-Projekten geeignet ist. Die resultierenden Builds haben die von den Projekten bereitgestellten Testsets erfolgreich bestanden. Der erzeugte Linux-Kernel lĂ€sst sich erfolgreich starten und ermöglicht das Spielen von Doom. Der Code des Compilers wurde in der Programmiersprache Rust generiert und als Public Domain (CC0) veröffentlicht. Die Kompilierung von Projekten fĂŒr die Architekturen x86_64, i686, AArch64 und RISC-V 64 wird unterstĂŒtzt.
Der gesamte Code und die Dokumentation des Compilers wurden von dem Modell Claude Opus 4.6 generiert. Die menschliche Beteiligung beschrĂ€nkte sich auf die Definition von TestfĂ€llen, die das Endprodukt erfĂŒllen muss. Der interaktive Modus fĂŒr die Entwicklung, das Debugging und die QualitĂ€tskontrolle wurde nicht verwendet; das Modell Claude Opus hat die gesamte Arbeit basierend auf den gegebenen Anforderungen selbst erledigt. Eine manuelle ĂberprĂŒfung der Korrektheit des Compilers fand nicht statt, daher wird er nicht empfohlen, auĂer fĂŒr Experimente. Die Testdurchlaufquote der Compiler-Sets, einschlieĂlich der GCC Torture Tests, betrĂ€gt 99%.
FĂŒr die Entwicklung des Compilers wurden 16 KI-Agenten eingesetzt, die nach zwei Wochen Arbeit und rund zwei tausend Sitzungen in Claude Code 100.000 Zeilen Rust-Code generierten, die die Aufgabe ĂŒbernehmen, den Linux-Kernel 6.9 fĂŒr die Architekturen x86, ARM und RISC-V zu kompilieren. Bei der Code-Generierung wurde der neue Arbeitsmodus "agent teams" verwendet, der es mehreren Claude-KI-Agenten ermöglicht, parallel an einem gemeinsamen Codebasis zu arbeiten, autonom ohne menschliches Eingreifen. Bei den Kosten fĂŒr den API-Zugang wurde die Erstellung des Compilers auf 20.000 Dollar geschĂ€tzt (es wurden 2 Milliarden Eingabetoken ĂŒbermittelt und 140 Millionen Ausgabetoken generiert).
Der Compiler ist eigenstĂ€ndig und benötigt keine externen AbhĂ€ngigkeiten auĂer der Standardbibliothek von Rust. Alle Komponenten wurden von Grund auf neu erstellt, einschlieĂlich Frontend, Zwischenvertretung (IR) basierend auf SSA, Optimierer, Code-Generator, Assembler, Linker und Debug-Informationsgenerator im DWARF-Format. Das Frontend ist kompatibel auf Optionenebene mit GCC und kann als transparente Alternative zu GCC verwendet werden. Ausgegeben werden ausfĂŒhrbare Dateien im ELF-Format. Der Compiler unterstĂŒtzt ausschlieĂlich die Linux-Plattform (UnterstĂŒtzung fĂŒr macOS und Windows wurde nicht angestrebt).
Zu den EinschrĂ€nkungen gehört das Fehlen separater Optimierungsstufen (Optimierungsstufen von -O0 bis -O3, -Os und -Oz fĂŒhren zu gleicher Optimierung), es gibt Probleme mit der Verwendung von _Atomic und _Complex, das SchlĂŒsselwort __attribute__ wird teilweise unterstĂŒtzt und die Nutzung von NEON-Befehlen ist teilweise umgesetzt. Neben den in der vorbereiteten AI-Dokumentation zum Compiler beschriebenen EinschrĂ€nkungen werden in dem Artikel zur ProjektankĂŒndigung einige zusĂ€tzliche Probleme erwĂ€hnt:
- Es besteht keine UnterstĂŒtzung fĂŒr die Kompilierung im 16-Bit-Modus (der fĂŒr das Laden des Kernels benötigte 16-Bit-Code wurde in GCC erstellt).
- Fehler in der Implementierung des Linkers und Assemblers (bei der Vorbereitung der Demonstration wurden der GNU-Assembler und der GNU-Linker verwendet).
- Claudes C-Compiler ist derzeit nicht bereit, echte Compiler zu ersetzen, da nicht alle Projekte erfolgreich kompiliert werden.
- Der Optimierungsgrad des generierten Codes ist schlechter als der von GCC im Modus mit deaktivierten Optimierungen.
- Die QualitÀt des generierten Rust-Codes ist akzeptabel, jedoch deutlich schlechter als der Code, der von einem professionellen Programmierer erstellt wurde.
- Das Projekt erreicht fast die Grenzen der Möglichkeiten des Modells Opus 4.6 â Versuche, Fehler zu beheben oder zusĂ€tzliche Funktionen hinzuzufĂŒgen, fĂŒhrten in der Regel zu Störungen der bestehenden FunktionalitĂ€t.

Quelle: opennet.ru
