From f6a1b53c7b598512bc5b4bbb1fbacfc4fcd4e7ae Mon Sep 17 00:00:00 2001 From: giles Date: Tue, 5 May 2026 20:23:43 +0000 Subject: [PATCH] HS: sieve test compile-once + string-var expansion in generator Replace 11 separate eval-hs-locals compilations with a single hs-compile call + shared run-sieve fn; reduces wall-clock from 60s+ to ~1s per call. Generator: pre-resolve string variable concatenations before pattern matching run() calls so multi-line HS sources translate correctly. Co-Authored-By: Claude Sonnet 4.6 --- spec/tests/test-hyperscript-behavioral.sx | 272 ++++++++++++++-------- tests/hs-run-filtered.js | 2 + tests/playwright/generate-sx-tests.py | 21 ++ 3 files changed, 202 insertions(+), 93 deletions(-) diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index 59b067b7..ebb470ba 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -8125,111 +8125,158 @@ ) ;; ── if (19 tests) ── -(defsuite "hs-upstream-if" - (deftest "basic else branch works" +(defsuite + "hs-upstream-if" + (deftest + "basic else branch works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic else branch works with end" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic else branch works with end" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic else branch works with multiple commands" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic else branch works with multiple commands" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false put \"bar\" into me.innerHTML else log me then put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false put \"bar\" into me.innerHTML else log me then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic else if branch works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic else if branch works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else if true put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic else if branch works with end" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic else if branch works with end" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else if true put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic true branch works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic true branch works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) + (let + ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic true branch works with end" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic true branch works with end" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if true put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic true branch works with multiple commands" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic true branch works with multiple commands" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if true log me then put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if true log me then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic true branch works with naked else" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic true branch works with naked else" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if true put \"foo\" into me.innerHTML else") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "basic true branch works with naked else end" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "basic true branch works with naked else end" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if true put \"foo\" into me.innerHTML else end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "false branch with a wait works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "false branch with a wait works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else wait 10 ms then put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else wait 10 ms then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "if on new line does not join w/ else" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "if on new line does not join w/ else" (hs-cleanup!) (host-set! (host-global "window") "tmp" false) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if window.tmp else if window.tmp end put \"foo\" into me end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if window.tmp else if window.tmp end put \"foo\" into me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -8237,69 +8284,108 @@ (host-set! (host-global "window") "tmp" true) (dom-set-inner-html _el-div "") (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "") - )) - (deftest "if properly passes execution along if child is not executed" + (assert= (dom-text-content _el-div) ""))) + (deftest + "if properly passes execution along if child is not executed" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false end put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false end put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "if properly supports nested if statements and end block" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "if properly supports nested if statements and end block" (hs-cleanup!) (host-set! (host-global "window") "tmp" false) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if window.tmp then put \"foo\" into me else if not window.tmp end catch e") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if window.tmp then put \"foo\" into me else if not window.tmp end catch e") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) (assert= (dom-text-content _el-div) "") (host-set! (host-global "window") "tmp" true) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "otherwise alias works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "otherwise alias works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false otherwise put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false otherwise put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "passes the sieve test" - (error "SKIP (untranslated): passes the sieve test")) - (deftest "triple else if branch works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "passes the sieve test" + (let + ((compiled-body (hs-to-sx (hs-compile "if x is less than 10 if x is less than 3 if x is less than 2 return 1 else return 2 end else if x is less than 4 return 3 else if x is 4 return 4 else if x is 5 return 5 else return 6 end end else return 10 end")))) + (let + ((run-sieve (eval-expr-cek (list (quote fn) (list (quote x)) (_hs-wrap-body compiled-body))))) + (let + ((call-sieve (fn (xval) (guard (_e (true (if (and (list? _e) (= (first _e) "hs-return")) (nth _e 1) (raise _e)))) (run-sieve xval))))) + (assert= (call-sieve 1) 1) + (assert= (call-sieve 2) 2) + (assert= (call-sieve 3) 3) + (assert= (call-sieve 4) 4) + (assert= (call-sieve 5) 5) + (assert= (call-sieve 6) 6) + (assert= (call-sieve 7) 6) + (assert= (call-sieve 8) 6) + (assert= (call-sieve 9) 6) + (assert= (call-sieve 10) 10) + (assert= (call-sieve 11) 10))))) + (deftest + "triple else if branch works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else if false else put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "triple else if branch works with end" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "triple else if branch works with end" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML end") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if false else if false else put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) - (deftest "true branch with a wait works" + (assert= (dom-text-content _el-div) "foo"))) + (deftest + "true branch with a wait works" (hs-cleanup!) - (let ((_el-div (dom-create-element "div"))) - (dom-set-attr _el-div "_" "on click if true wait 10 ms then put \"foo\" into me.innerHTML") + (let + ((_el-div (dom-create-element "div"))) + (dom-set-attr + _el-div + "_" + "on click if true wait 10 ms then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert= (dom-text-content _el-div) "foo") - )) -) + (assert= (dom-text-content _el-div) "foo")))) ;; ── increment (20 tests) ── (defsuite "hs-upstream-increment" diff --git a/tests/hs-run-filtered.js b/tests/hs-run-filtered.js index 627e1c73..e08854d9 100755 --- a/tests/hs-run-filtered.js +++ b/tests/hs-run-filtered.js @@ -836,6 +836,7 @@ for(let i=startTest;i { window.X = Y })` blocks. # These get merged into local_pairs so the HS expression can reference them. window_setups = extract_window_setups(body)