3 Commits

Author SHA1 Message Date
swipelab
6f7d2f4db2 lang migration: rename signed integer types sN -> iN
Mechanical sweep of all .sx sources, plan docs, and tests/expected
snapshots for the sx language rename (s8/s16/s32/s64 -> i8/i16/i32/i64).
Verified: tools/run_tests.sh 23/23.

Note: the ios-sim build has 2 pre-existing 'restart' dot-call errors
from the sx opt-in UFCS change (sx a47ea14) — independent of this
rename (present pre-sweep); migrated in the follow-up commit.
2026-06-12 09:36:51 +03:00
swipelab
a7b41ccbca migrate to the new for-loop syntax
Drop the ':' before captures (for xs (x) / for 0..n (i)); the index
capture becomes the trailing open range (for xs, 0.. (x, i)). 136
headers across 26 files, mechanical.

Five headless tests (banner_layout, hit_test, swipe_commit,
swipe_intent, swipe_reshuffle) also gain a direct
#import "modules/ui/types.sx" — they named Point/Frame through a
transitive import, which bare visibility no longer permits.

Gates: sx build --target ios-sim main.sx links; tools/run_tests.sh
23/23.
2026-06-10 20:39:59 +03:00
swipelab
c35c63d8a9 P10.4: snapshot-test cascade-cue depth->index mapping (sx)
Add tests/cascade_cue.sx, a headless logic test that reuses audio.sx's
pure cascade_cue_index / cascade_cue_name (the exact functions
play_cascade calls) to lock the cascade-depth -> combo-cue clamp:
depth <= 1 -> combo1, depth >= COMBO_CLIPS -> combo5, monotonic between.
Covers the escalation logic the audio playback path can't gate-cover,
with no audio. Committed stdout/exit snapshot; suite is now 19 tests.
2026-06-05 20:06:21 +03:00