Bun-porten kostet 5,9 milliarder tokens: Anthropic deler migrasjonsoppskriften
Publiserer seksstegsprosessen Anthropic brukte da utviklere internt portet ti kodepakker med Claude Code, inkludert Bun-porten fra Zig til Rust som brente 5,9 milliarder ucachede input-tokens.
5,9 milliarder ucachede input-tokens og 690 millioner output-tokens. Det er token-regningen for å flytte Bun fra Zig til Rust, rundt 165 000 dollar i API-pris, ifølge Anthropics egen gjennomgang av ti interne kodemigrasjoner den siste måneden. Selskapet publiserte denne uken en detaljert prosessbeskrivelse med Claude Fable 5 og Claude Opus 4.8 i orkestrator-rollen.
Jarred Sumner, medgründer i Bun og ansatt hos Anthropic, produserte en million linjer Rust på under to uker. Hele Buns eksisterende testsuite gikk grønt i CI før merge, og de nitten regresjonene som dukket opp etterpå er fikset. Mike Krieger, co-lead i Anthropic Labs, portet en Python-kodebase til 165 000 linjer TypeScript i løpet av en helg med hundrevis av agenter, åtte fasegater og tre runder adversarial review.
«Jeg skrev Bun på ett år i en trang leilighet i Oakland, før LLM-ene» — Jarred Sumner, medgründer i Bun
Det metodiske poenget er verdt mer enn tallene. Anthropic formulerer kjerneinnsikten slik: «Du fikser ikke koden. Du fikser loopen som produserte koden.» Når en reviewer fanger samme feil på tvers av filer, er løsningen å legge én setning til regelboka og regenerere batchen, ikke å håndlappe filene. Regelboka vokser gjennom hele kjøringen, og koden blir aldri patchet mot den for hånd.
Rekkefølgen i oppstarten er streng: regelboka først, deretter gap-inventaret, fordi inventaret defineres av det regelbokas standardvalg ikke dekker. Så kjøres en mini-migrasjon på tre filer som stresstest. Sumner fanget to kritiske problemer der som ellers ville forplantet seg til alle 1 448 filene, og alle prøvefilene ble kastet etterpå. Arbeidskøen bygges fra disk hver gang ved å sjekke om målfila finnes, noe som gjør migrasjonen gjenopptagbar av konstruksjon.
Forutsetningen begge la ned først var en dommer som kan vurdere gammel og ny kode på like vilkår. Krieger manglet en portert testsuite og lot i stedet Claude bygge et paritetsoppsett med sju virkelige scenarioer, kjørt mot både Python-originalen og TypeScript-porten med diff på output. Deretter designet modellen sin egen ende-til-ende-suite og kjørte den autonomt fire netter på rad.
Hva bør du gjøre?
- Bygg dommeren før du skriver én linje av porten. Uten en test eller et paritetsoppsett som treffer begge kodebasene har du ingen exit-betingelse, og da vet du aldri når migrasjonen er ferdig.
- Plasser kompilatoren bevisst. Krieger kjørte TypeScript-kompilatoren inne i hver loop fordi den svarer på sekunder. Sumner utestengte cargo fra loopen fordi den bruker minutter, og samlet alle byggfeil i ett eget steg.
- Skill modellklassene etter rolle. Krieger kjørte tolv implementer-subagenter på Claude Sonnet og holdt de dyre modellene på review, som er der dømmekraften faktisk trengs.
Bakgrunn
Pulsen omtalte 19. juli at Claude Code allerede kjører Rust-porten av Bun i produksjon, bekreftet av Simon Willison via strenger i binæret. Anthropics innlegg er oppfølgeren som forklarer hvordan porten ble laget, og det er den delen som er overførbar til din egen kodebase.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.