Volcano
next()
Call Stack vs Compiled Code Tracing
Volcano:
pull from the final join
— each
next()
pushes a frame (spill) and returning pops (reload). Compiled: single fused loop — we trace the
paper-style
pseudocode as it runs.
Volcano (iterator)
Compiled (data-centric)
Step ▷
Auto
Reset
Phase: open root (build structures)
Volcano: CALL (push frame / spill)
Volcano: RETURN (pop frame / reload)
Materialize / aggregate
0
Spills (CALL frames)
0
Materializations
0
Aggregations (Γ)
0
Steps
“Register” (current payload):
—
We treat a new
frame
(Volcano) as a spill point. Compiled keeps tuples live in the hot loop and only touches memory at pipeline breakers.
R1
(build Hₐ=b from σ)
R2
(σ → Γ
z
)
R3
(probe)
Call stack
Step log
Compiled pseudocode (paper-style)
Step log