Archive / Reverse-transpilation notes

The Reverse Rewrite

Four Rust codebases were translated back into idiomatic modern C++, then compared against the originals through behavioral tests, structure, and translation notes.

This is a completed archive, not an active software project. The articles are the main entry point; the code directories remain here as supporting reference.

If you just want the plain description: this is a set of notes on translating Rust back into modern C++.

A Chinese reading edition is available at index.zh.html.

The series

  1. 01 Methodology / hexyl The first full transpilation, the basic translation table, and the initial distinction between expressiveness and rejection.
  2. 02 The Full Circle / uutils-coreutils A three-way comparison across GNU C, Rust, and the transpiled C++ versions of echo, cat, and tr.
  3. 03 The Hard Case / mini-redis The one place where translation stopped being mostly mechanical and had to become architectural.
  4. 04 The Round Trip / fish shell A comparison between transpiled C++, the original C++, and a later Rust rewrite of the same code lineage.
  5. 05 Notes on Expressiveness and Rejection A synthesis of what the experiments seem to suggest, and a modest sketch of a possible workflow beyond simple language debates.
  6. 06 Afterword A short note on how the series was actually made, and on what AI changed about the cost of checking an intuition.

Supporting material