The same system at several depths: a guided tour you follow start to finish, a reference walkthrough you search, what changed in each release, and the measurements behind all of it.
Ten parts, starting from what a CPU actually does and ending at a translated Vulkan frame. Assumes no background: registers, instruction sets, condition flags, why phones are ARM and laptops are not, and the three ways to run code built for another chip. Read it in order.
The complete walkthrough, written to be searched rather than read through: register mapping, the translation lifecycle, NZCV flag emulation, the syscall path, proxy-library forwarding, and the ARM64 → x86_64 instruction-mapping reference.
Adding ARM64 translation to your own x86_64 image — emulator or real device — through the stock NativeBridge seams: a manifest overlay, four board-config lines, and one product inherit, or a prebuilt binary bundle when you cannot add source projects. Ends with a verification checklist down to the memfd:exec oracle that proves translation is actually executing.
Every release in one file, newest first: what was fixed, what it broke before it was fixed, and the verification behind each entry — host tests, both translator builds, the sample suite, the prebuilt-app gate and the benchmark sweep. Written as post-mortems rather than bullet lists, so an entry usually explains the failure as well as the change.
Every workload across all three execution tiers, regenerated from a real sweep rather than written by hand. Cells that exceeded a 10% relative interquartile range are marked and must not be quoted; benchmarking.md covers the methodology and how to read a noisy row.
What the translator does not implement yet, and what that costs at runtime — a missing JIT case falls back to the interpreter rather than failing, so the list is a performance map as much as a correctness one.