local_cse kept an available expression at a join when its vreg's other definition was dominated by the join; inside a loop that definition can reach the join again (back edge), so the next iteration read the wrong value (an awaited loop stored its sum as the coroutine's resumed flag). A definition dominated by the join now counts as stable only if it cannot reach the join. Found by the new differential runner (diff_full.sh adds the compiler test corpus and a Calculator input replay on Linux). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
697 B
Text
52 lines
697 B
Text
# Calculator input script for diff_full.sh: `click <widget name>`, `text <s>`, `step <frames>`, `snap`.
|
|
# Every `snap` appends the display, the tape and the widget tree text to the state dump.
|
|
step 5
|
|
snap
|
|
click k_1
|
|
click k_2
|
|
click k_mul
|
|
click k_3
|
|
click k_dot
|
|
click k_5
|
|
click k_eq
|
|
step 3
|
|
snap
|
|
click k_clear
|
|
click k_9
|
|
click k_sqrt
|
|
click k_eq
|
|
step 3
|
|
snap
|
|
click k_clear
|
|
click k_4
|
|
click k_5
|
|
click k_sin
|
|
click k_add
|
|
click k_2
|
|
click k_power
|
|
click k_1
|
|
click k_0
|
|
click k_eq
|
|
step 3
|
|
snap
|
|
click k_clear
|
|
text 7*8-6/4
|
|
click k_eq
|
|
step 3
|
|
snap
|
|
click k_clear
|
|
click k_1
|
|
click k_ln
|
|
click k_add
|
|
click k_pi
|
|
click k_mul
|
|
click k_e
|
|
click k_eq
|
|
step 3
|
|
snap
|
|
click k_back
|
|
click k_sign
|
|
click k_percent
|
|
click k_fact
|
|
step 3
|
|
snap
|