AI Wrote a PHP Engine in Rust, Passes 17% of PHP-src Tests, Renders WordPress

Someone who doesn't know Rust just had an AI build a PHP interpreter in it. The result, Phargo, serves a 26 KB WordPress front page from a SQLite database — through an engine containing zero lines of PHP's actual C source code. It's a from-scratch interpreter written in Rust, generated by an AI agent with the human's role reduced to: run tests, inspect score, say "continue" or "regressed, look again."
The experiment uses PHP's own test suite as an impartial oracle: ~22,000 .phpt files accumulated over 30 years, covering everything from DateTime daylight-saving math to var_dump() on floats. Current pass rate: 3,844 of 22,037 (17.4%). Because the suite includes C extension tests (GD, curl, SOAP, MySQL drivers) that are out of scope, the realistic ceiling is ~40-45%. The project started at zero and climbs via failure histograms: the AI identifies the biggest cluster of failing tests, implements a fix, runs the full 22,000-test suite (~7 minutes), and commits if the number goes up — no human code review needed.
Lessons from the Trenches
Early progress plateaued from a subtle bug: line endings. The test corpus was checked out on Windows with CRLF endings, and the scoreboard compared output byte-for-byte, silently failing every multi-line test. PHP's own test runner normalizes before comparison. One line of normalization code turned hundreds of tests green. The lesson: measure your measurement — your oracle is only as honest as the harness connecting you to it.
Another discovery: some older regression tests allocate absurd structures or expand into infinite generators, originally designed to run inside PHP's carefully-fenced CI. One such test hard-restarted the development machine. The project now filters tests that are known CI-only bombs.
The Loop
- AI runs a failure histogram over the whole corpus to find the biggest fixable cluster.
- AI implements the fix.
- Scoreboard runs all ~22,000 tests (~7 minutes).
- If the number goes up: commit, push, repeat.
- If it goes down: human says "hmm, that regressed, look again."
The human's job is essentially aiming — reading terminal output like a medieval king reviewing naval charts, then typing the developer's most powerful phrase: "looks good, continue."
📖 Read the full source: HN AI Agents
👀 See Also

Diagnosing Operational Drift and Task Amnesia in OpenClaw with Gemini 2.5 Flash on Proxmox
OpenClaw users report issues with persistent workflows on a Proxmox VM, citing operational drift and task amnesia. Despite stable performance in one-off tasks, the Gemini 2.5 Flash model struggles with automation and memory in this setup.

Analysis of 100M tokens in Claude Code reveals 99.4% input usage
Analysis of 1,289 requests across extended coding sessions shows Claude Code used 100.3M input tokens (99.4%) versus only 616K output tokens (0.6%), with 84.2M tokens cached due to repeated context re-sending.

OpenClaw's New Release: A Simple Name Change or a Major Upgrade?
OpenClaw, previously known as ClawDBot, has undergone a transformation. Read on to find out whether this change is merely cosmetic or introduces new features and improved stability.

Claude Code v2.1.158: Auto Mode Now on Bedrock, Vertex, Foundry for Opus 4.7/4.8
Claude Code v2.1.158 enables auto mode on Bedrock, Vertex, and Foundry for Opus 4.7 and 4.8. Opt in with CLAUDE_CODE_ENABLE_AUTO_MODE=1.