From 203f9a49a1dee4c00689fa1cde4d966e736ce13e Mon Sep 17 00:00:00 2001 From: giles Date: Sat, 14 Mar 2026 01:17:47 +0000 Subject: [PATCH] Fix remaining test runners for CEK-default mode: override to tree-walk run_type_tests.py, run_signal_tests.py, run_continuation_tests.py all needed the same sx_ref.eval_expr/trampoline override to tree-walk that was applied to the CEK test runners. Without this, transpiled HO forms (ho_map, etc.) re-entered CEK mid-evaluation causing "Unknown frame type: map" errors. All 186 tests now pass across 5 suites. Co-Authored-By: Claude Opus 4.6 --- shared/sx/ref/run_continuation_tests.py | 9 +++++++-- shared/sx/ref/run_signal_tests.py | 7 ++++++- shared/sx/ref/run_type_tests.py | 10 +++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/shared/sx/ref/run_continuation_tests.py b/shared/sx/ref/run_continuation_tests.py index 8a7729e..1164266 100644 --- a/shared/sx/ref/run_continuation_tests.py +++ b/shared/sx/ref/run_continuation_tests.py @@ -35,8 +35,13 @@ finally: from shared.sx.parser import parse_all from shared.sx.types import NIL -eval_expr = mod.eval_expr -trampoline = mod.trampoline +# Use tree-walk evaluator for interpreting .sx test files. +# CEK is now the default, but test runners need tree-walk so that +# transpiled HO forms (ho_map, etc.) don't re-enter CEK mid-evaluation. +eval_expr = mod._tree_walk_eval_expr +trampoline = mod._tree_walk_trampoline +mod.eval_expr = eval_expr +mod.trampoline = trampoline env = mod.make_env() # Platform test functions diff --git a/shared/sx/ref/run_signal_tests.py b/shared/sx/ref/run_signal_tests.py index 89a5eea..abcfb5d 100644 --- a/shared/sx/ref/run_signal_tests.py +++ b/shared/sx/ref/run_signal_tests.py @@ -14,8 +14,13 @@ sys.path.insert(0, _PROJECT) from shared.sx.parser import parse_all from shared.sx.ref import sx_ref -from shared.sx.ref.sx_ref import eval_expr, trampoline, make_env, scope_push, scope_pop, sx_context +from shared.sx.ref.sx_ref import make_env, scope_push, scope_pop, sx_context from shared.sx.types import NIL, Island, Lambda +# Use tree-walk evaluator for interpreting .sx test files. +eval_expr = sx_ref._tree_walk_eval_expr +trampoline = sx_ref._tree_walk_trampoline +sx_ref.eval_expr = eval_expr +sx_ref.trampoline = trampoline # Build env with primitives env = make_env() diff --git a/shared/sx/ref/run_type_tests.py b/shared/sx/ref/run_type_tests.py index 8a63f0f..7ff2339 100644 --- a/shared/sx/ref/run_type_tests.py +++ b/shared/sx/ref/run_type_tests.py @@ -8,8 +8,16 @@ _PROJECT = os.path.abspath(os.path.join(_HERE, "..", "..", "..")) sys.path.insert(0, _PROJECT) from shared.sx.parser import parse_all -from shared.sx.ref.sx_ref import eval_expr, trampoline, make_env, env_get, env_has, env_set +from shared.sx.ref import sx_ref +from shared.sx.ref.sx_ref import make_env, env_get, env_has, env_set from shared.sx.types import NIL, Component +# Use tree-walk evaluator for interpreting .sx test files. +# CEK is now the default, but the test runners need tree-walk so that +# transpiled HO forms (ho_map, etc.) don't re-enter CEK mid-evaluation. +eval_expr = sx_ref._tree_walk_eval_expr +trampoline = sx_ref._tree_walk_trampoline +sx_ref.eval_expr = eval_expr +sx_ref.trampoline = trampoline # Build env with primitives env = make_env()