;; ========================================================================== ;; test-gate-pins.sx — W14 regression pins for dc7aa709's landed fixes ;; ;; The quick-wins batch (commit dc7aa709) landed real semantics fixes but ;; shipped WITHOUT pinning tests, so a regression would pass silently. This ;; file pins each confirmed-and-fixed finding with a minimal repro lifted ;; from the review lane files (plans/sx-review/*.md). One suite per finding. ;; ;; TEST-ONLY: no semantics edits. If a pin fails, the fix regressed — do NOT ;; relax the assertion; investigate the evaluator/primitive change. ;; ========================================================================== ;; -------------------------------------------------------------------------- ;; K18 [W7, high] expt silently wrapped at 63-bit int — now promotes to float ;; like +/*. Repro (core.md): (expt 2 62) -> -4611686018427387904 (wrapped); ;; (expt 2 100) -> 0. Fixed: both are positive floats. ;; -------------------------------------------------------------------------- (defsuite "gate-K18-expt-overflow" (deftest "small integer exponents stay exact" (do (assert= (expt 2 0) 1) (assert= (expt 2 10) 1024))) (deftest "expt 2^62 does not wrap to a negative int" (assert (> (expt 2 62) 0))) (deftest "expt 2^100 does not wrap to zero" (assert (> (expt 2 100) 0))) (deftest "expt 2^100 promotes to float" (assert (number? (expt 2 100)))))