cross-posted from: https://piefed.world/c/tech/p/1101720/programbench-a-new-benchmark-by-swe-bench-creators-from-facebook-meta-to-see-if-llms-can
Comments
Links
./ProgramBench
Can language models rebuild programs from scratch?
Given only a compiled binary and its documentation, agents must architect and implement a complete codebase that reproduces the original program’s behavior.
In each task, the agent receives an executable and its documentation, and it must re-implement the given executable. It does not get access to any of the executable’s source code, it cannot de-compile the executable, and cannot use the internet. There are 200 tasks in total covering different program complexities, ranging from small terminal utilities like jq and ripgrep to massive software projects like the PHP compiler, FFmpeg, and SQLite.
The agent must choose a language, design the architecture, write all source code, and produce a build script. Every design decision is the model’s to make.
Once the agent submits a program, our test suite compares the candidate program’s behavior against the original program. A candidate program passes only if all tests for that task pass.
Photo source: X/Twitter.


well duh. You can test this yourself and even ALLOW the agent to access the internet. if you asks it to build something let it pick it’s own language. 9 times out of 10 it’s going to pick a language that tech bros and tech blogs have been raving about on linkedin and other sites. AND then it generally wont’ utilize the latest API or update to said language if no one has written about said latest API/update. months ago I tried this as a test. Claude selected Smithy and Rust I believe (can’t remember exactly) but the problem was it was utilizing an out of date Smithy version to try and get it to work with an up to date Rust version even though the latest Smithy was available it refused to utilize it. Why? well no one wrote about Smithy. So it would use the version it could find blog posts and articles written about it.
Now if you take internet access away from the agent, it’s not going to know what to use.