Repository navigation
Releases
ourc v0.1.1
ourc v0.1.1: a Rust compiler grown from 269 bytes of hand-written machine code. https://ourc.dev
What's new
- ourc's source is now valid Rust: rustc compiles it, and the rustc-built ourc emits IR byte-identical to the hex-built ourc on ourc's own 51,210-line source. That is a diverse double compilation of ourc against a fully independent compiler.
- To get there, the source defects that the tower's compilers accepted and rustc rejects were fixed: a field declared twice, refusal code in the wrong function, writes through
&self, and uses after a move. - No change in behaviour: rustc 1.99.1
tests/uiresults are identical to v0.1, test for test.
Numbers
- rustc 1.99.1
tests/ui: 10,837 of 20,072 passed (54%); 2,653 of 7,913 valid programs compiled correctly; 0 wrong answers among the 3,676 run-pass programs compared with rustc. - Compiles its own source to a byte-identical fixed point.
ourc sha256: 9d5fde72d8e5a4929bd929c2165b339c2adf054ab8d80672f0252a2d74074078
Built from the hand-written hex with LLVM 22.1.8, GCC 16.2.1, binutils 2.47 and glibc 2.44. To rebuild it rather than trust this binary, see Verify it yourself.
The binary needs x86-64 Linux, llc (LLVM 16 or newer) and cc. See README.md and LIMITATIONS.md in the tarball.
ourc v0.1
ourc v0.1: a Rust compiler grown from 269 bytes of hand-written machine code.
- Compiles a subset of Rust to native x86-64 Linux executables (via LLVM
llcandcc), and refuses the rest. A program it accepts runs as rustc's build of it does. - rustc 1.99.1
tests/ui: 10,837 of 20,072 tests passed; 0 wrong answers among the 3,676 run-pass programs compared with rustc. - Compiles its own 51,210-line source to a byte-identical fixed point.
ourc sha256: 10b9c17a1886a9e063499c544434f370f1c257057562c85dbd9ab03379354144
Built with LLVM 22.1.8, GCC 16.2.1, binutils 2.47 and glibc 2.44. To rebuild it from the hand-written hex instead of trusting this binary, see Verify it yourself.
The binary needs x86-64 Linux, llc (LLVM 16 or newer) and cc. See README.md and LIMITATIONS.md in the tarball.