Workflow and Source Panels
Task Result Slots
Store independent task results in scalar slots before summarizing them.
task slots
Separate result slots make replay easier to follow because each task updates its own scalar state.
Task Result Slots
task_result_slots.php
Replay: real traced execution (multi-file project)
<?php
function fill_read_slot($value) {
return $value + 10;
}
function fill_write_slot($value) {
return $value * 3;
}
$seed = 5;
$readSlot = 0;
$writeSlot = 0;
$readSlot = fill_read_slot($seed);
$writeSlot = fill_write_slot($seed);
$total = $readSlot + $writeSlot;
echo "read=" . $readSlot . "\n";
echo "write=" . $writeSlot . "\n";
echo "total=" . $total . "\n";
<?php
function fill_read_slot($value) {
return $value + 10;
}
function fill_write_slot($value) {
return $value * 3;
}
$seed = 2;
$readSlot = 0;
$writeSlot = 0;
$readSlot = fill_read_slot($seed);
$writeSlot = fill_write_slot($seed);
$total = $readSlot + $writeSlot;
echo "read=" . $readSlot . "\n";
echo "write=" . $writeSlot . "\n";
echo "total=" . $total . "\n";
<?php
function fill_read_slot($value) {
return $value + 10;
}
function fill_write_slot($value) {
return $value * 3;
}
$seed = 8;
$readSlot = 0;
$writeSlot = 0;
$readSlot = fill_read_slot($seed);
$writeSlot = fill_write_slot($seed);
$total = $readSlot + $writeSlot;
echo "read=" . $readSlot . "\n";
echo "write=" . $writeSlot . "\n";
echo "total=" . $total . "\n";
$seed ← 5, $readSlot ← 0, $writeSlot ← 0
10$seed→ 5 = 5; //@seed=2, 811$readSlot→ 0 = 0;12$writeSlot→ 0 = 0;1314$readSlot = fill_read_slot($seed5);15$writeSlot = fill_write_slot($seed);function fill_read_slot($value)
1<?php2function fill_read_slot($value5) {3 return $value5 + 10;4}$readSlot ← 15
14$readSlot→ 15 = fill_read_slot($seed5);15$writeSlot = fill_write_slot($seed5);16$total = $readSlot + $writeSlot;function fill_write_slot($value)
6function fill_write_slot($value5) {7 return $value5 * 3;8}$writeSlot ← 15, $total ← 30
14$readSlot = fill_read_slot($seed);15$writeSlot→ 15 = fill_write_slot($seed5);16$total→ 30 = $readSlot15 + $writeSlot15;1718echo "read=" . $readSlot15 . "\n";19echo "write=" . $writeSlot15 . "\n";20echo "total=" . $total30 . "\n";outputread=15 write=15 total=30
$seed ← 2, $readSlot ← 0, $writeSlot ← 0
10$seed→ 2 = 2;11$readSlot→ 0 = 0;12$writeSlot→ 0 = 0;1314$readSlot = fill_read_slot($seed2);15$writeSlot = fill_write_slot($seed);function fill_read_slot($value)
1<?php2function fill_read_slot($value2) {3 return $value2 + 10;4}$readSlot ← 12
14$readSlot→ 12 = fill_read_slot($seed2);15$writeSlot = fill_write_slot($seed2);16$total = $readSlot + $writeSlot;function fill_write_slot($value)
6function fill_write_slot($value2) {7 return $value2 * 3;8}$writeSlot ← 6, $total ← 18
14$readSlot = fill_read_slot($seed);15$writeSlot→ 6 = fill_write_slot($seed2);16$total→ 18 = $readSlot12 + $writeSlot6;1718echo "read=" . $readSlot12 . "\n";19echo "write=" . $writeSlot6 . "\n";20echo "total=" . $total18 . "\n";outputread=12 write=6 total=18
$seed ← 8, $readSlot ← 0, $writeSlot ← 0
10$seed→ 8 = 8;11$readSlot→ 0 = 0;12$writeSlot→ 0 = 0;1314$readSlot = fill_read_slot($seed8);15$writeSlot = fill_write_slot($seed);function fill_read_slot($value)
1<?php2function fill_read_slot($value8) {3 return $value8 + 10;4}$readSlot ← 18
14$readSlot→ 18 = fill_read_slot($seed8);15$writeSlot = fill_write_slot($seed8);16$total = $readSlot + $writeSlot;function fill_write_slot($value)
6function fill_write_slot($value8) {7 return $value8 * 3;8}$writeSlot ← 24, $total ← 42
14$readSlot = fill_read_slot($seed);15$writeSlot→ 24 = fill_write_slot($seed8);16$total→ 42 = $readSlot18 + $writeSlot24;1718echo "read=" . $readSlot18 . "\n";19echo "write=" . $writeSlot24 . "\n";20echo "total=" . $total42 . "\n";outputread=18 write=24 total=42