✓
Passing This code compiles and runs correctly.
Code
// PINS: a [depends_on] edge orders WHOLE corpus passes, not per-row visits —
// under the stripe the dependent rule's FIRST firing follows the depended-on
// rule's LAST (`A 2` precedes `B 1`). Row-fused execution of these two rules
// (A 1, B 1, A 2, B 2) would break this pin: the fusion license 690_044 names
// covers only UNCONSTRAINED rules, and the declared edge is the stratification
// unit — ruling (h)'s DBSP-strata reading, a stratum completes before the next
// begins. First four lines are the two sites' root-position sweeps (per site,
// textual order); the last four are the stripe.
import std/io
import std/store
std/store:new(game, capacity: 8) { hp: i64 }
std/store:insert(game) { hp: 1 }
| row _ |> _
| full |> _
std/store:insert(game) { hp: 2 }
| row _ |> _
| full |> _
[name(alpha)]std/store:rule(game)
! row a |> std/io:print.ln("A {{ a.hp:d }}")
[name(beta)|depends_on(alpha)]std/store:rule(game)
! row b |> std/io:print.ln("B {{ b.hp:d }}")
std/store:stripe(game)
Actual
A 1
A 2
B 1
B 2
A 1
A 2
B 1
B 2
Expected output
A 1
A 2
B 1
B 2
A 1
A 2
B 1
B 2
Flows
flow ~new click a branch to expand · @labels scroll to their anchor
new (expr: game, capacity: 8, source: hp: i64)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (expr: game, source: hp: 1)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (expr: game, source: hp: 2)
flow ~rule click a branch to expand · @labels scroll to their anchor
rule (expr: game)
flow ~rule click a branch to expand · @labels scroll to their anchor
rule (expr: game)
flow ~stripe click a branch to expand · @labels scroll to their anchor
stripe (expr: game)
Test Configuration
MUST_RUN