Repository navigation
v0.57.0
Watching the module go
Layer 20 knows what an instruction means. The narrator knows what it is
called. One tier down those two were joined into something that shows a
program going, and up here they never were, which left the module as the last
thing in this file that could be read and run and not watched.
What is worth showing is not the same. A machine has registers, so a step
there says which one it wrote. A wasm function has a stack, so a step here
says what it left on top, and names the locals that moved beside it. A step
is reported once the following step has begun, because that is the first
moment its effect can be read; the last one has nothing after it and is said
with what the function answered.
The interpreter takes a watcher rather than being copied for this. One branch
per instruction, and no second implementation of the same semantics to keep in
step with the first, which is the mistake this file would have made a year ago.
The claim that every step it runs is a step it can name now covers the module
as well as the three texts: 17969 of them.
python3 ouroboros.py --trace-wasm
Full Changelog: v0.56.0...v0.57.0
LOC: 25793