HS: sieve test compile-once + string-var expansion in generator
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 47s

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 <noreply@anthropic.com>
This commit is contained in:
2026-05-05 20:23:43 +00:00
parent 42c7a593cf
commit f6a1b53c7b
3 changed files with 202 additions and 93 deletions

View File

@@ -8125,111 +8125,158 @@
) )
;; ── if (19 tests) ── ;; ── if (19 tests) ──
(defsuite "hs-upstream-if" (defsuite
(deftest "basic else branch works" "hs-upstream-if"
(deftest
"basic else branch works"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic else branch works with end" "basic else branch works with end"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic else branch works with multiple commands" "basic else branch works with multiple commands"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false put \"bar\" into me.innerHTML else log me then put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic else if branch works" "basic else if branch works"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic else if branch works with end" "basic else if branch works with end"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic true branch works" "basic true branch works"
(hs-cleanup!) (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-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML")
(dom-append (dom-body) _el-div) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic true branch works with end" "basic true branch works with end"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic true branch works with multiple commands" "basic true branch works with multiple commands"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if true log me then put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic true branch works with naked else" "basic true branch works with naked else"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "basic true branch works with naked else end" "basic true branch works with naked else end"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "false branch with a wait works" "false branch with a wait works"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else wait 10 ms then put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "if on new line does not join w/ else" "if on new line does not join w/ else"
(hs-cleanup!) (hs-cleanup!)
(host-set! (host-global "window") "tmp" false) (host-set! (host-global "window") "tmp" false)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if window.tmp else if window.tmp end put \"foo\" into me end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
@@ -8237,69 +8284,108 @@
(host-set! (host-global "window") "tmp" true) (host-set! (host-global "window") "tmp" true)
(dom-set-inner-html _el-div "") (dom-set-inner-html _el-div "")
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "") (assert= (dom-text-content _el-div) "")))
)) (deftest
(deftest "if properly passes execution along if child is not executed" "if properly passes execution along if child is not executed"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false end put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "if properly supports nested if statements and end block" "if properly supports nested if statements and end block"
(hs-cleanup!) (hs-cleanup!)
(host-set! (host-global "window") "tmp" false) (host-set! (host-global "window") "tmp" false)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if window.tmp then put \"foo\" into me else if not window.tmp end catch e") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "") (assert= (dom-text-content _el-div) "")
(host-set! (host-global "window") "tmp" true) (host-set! (host-global "window") "tmp" true)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "otherwise alias works" "otherwise alias works"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false otherwise put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "passes the sieve test" "passes the sieve test"
(error "SKIP (untranslated): passes the sieve test")) (let
(deftest "triple else if branch works" ((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!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "triple else if branch works with end" "triple else if branch works with end"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML end") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo")))
)) (deftest
(deftest "true branch with a wait works" "true branch with a wait works"
(hs-cleanup!) (hs-cleanup!)
(let ((_el-div (dom-create-element "div"))) (let
(dom-set-attr _el-div "_" "on click if true wait 10 ms then put \"foo\" into me.innerHTML") ((_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) (dom-append (dom-body) _el-div)
(hs-activate! _el-div) (hs-activate! _el-div)
(dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil)
(assert= (dom-text-content _el-div) "foo") (assert= (dom-text-content _el-div) "foo"))))
))
)
;; ── increment (20 tests) ── ;; ── increment (20 tests) ──
(defsuite "hs-upstream-increment" (defsuite "hs-upstream-increment"

View File

@@ -836,6 +836,7 @@ for(let i=startTest;i<Math.min(endTest,testCount);i++){
"repeat forever works", "repeat forever works",
"repeat forever works w/o keyword", "repeat forever works w/o keyword",
"receives named events", "receives named events",
"passes the sieve test",
]); ]);
// Suites where JIT cascade legitimately exceeds the per-test step limit. // Suites where JIT cascade legitimately exceeds the per-test step limit.
const _NO_STEP_LIMIT_SUITES = new Set([ const _NO_STEP_LIMIT_SUITES = new Set([
@@ -852,6 +853,7 @@ for(let i=startTest;i<Math.min(endTest,testCount);i++){
"async hypertrace is reasonable": 8000, "async hypertrace is reasonable": 8000,
"hypertrace from javascript is reasonable": 8000, "hypertrace from javascript is reasonable": 8000,
"hypertrace is reasonable": 8000, "hypertrace is reasonable": 8000,
"passes the sieve test": 60000,
}; };
const _SLOW_DEADLINE_SUITES = { const _SLOW_DEADLINE_SUITES = {
"hs-upstream-core/runtimeErrors": 30000, "hs-upstream-core/runtimeErrors": 30000,

View File

@@ -2590,6 +2590,27 @@ def generate_eval_only_test(test, idx):
assertions = [] assertions = []
# Pre-resolve string variable assignments: `var str = "..." + "..." + ...`
# so that `run(str, opts)` is treated the same as `run("expanded", opts)`.
# JS `\n` / `\t` escape sequences in the joined value are collapsed to spaces
# since HS uses keyword delimiters (if/else/end/then), not indentation.
_str_vars = {}
for _sv in re.finditer(
r'(?:var|let|const)\s+(\w+)\s*=\s*((?:"(?:[^"\\]|\\.)*"|\'(?:[^\'\\]|\\.)*\'|\s*\+\s*)+)\s*;',
body, re.DOTALL
):
_vname = _sv.group(1)
_raw = _sv.group(2)
_parts = re.findall(r'"((?:[^"\\]|\\.)*?)"|\'((?:[^\'\\]|\\.)*?)\'', _raw)
_joined = ''.join(p[0] or p[1] for p in _parts)
# Collapse JS newline/tab escapes to spaces so the HS source is flat.
_joined = _joined.replace('\\n', ' ').replace('\\t', ' ')
_str_vars[_vname] = _joined
if _str_vars:
for _vname, _val in _str_vars.items():
_escaped = _val.replace('"', '\\"')
body = re.sub(r'\brun\(' + re.escape(_vname) + r'\b', f'run("{_escaped}"', body)
# Window setups from `evaluate(() => { window.X = Y })` blocks. # Window setups from `evaluate(() => { window.X = Y })` blocks.
# These get merged into local_pairs so the HS expression can reference them. # These get merged into local_pairs so the HS expression can reference them.
window_setups = extract_window_setups(body) window_setups = extract_window_setups(body)