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 <noreply@anthropic.com>
This commit is contained in:
@@ -35,8 +35,13 @@ finally:
|
|||||||
from shared.sx.parser import parse_all
|
from shared.sx.parser import parse_all
|
||||||
from shared.sx.types import NIL
|
from shared.sx.types import NIL
|
||||||
|
|
||||||
eval_expr = mod.eval_expr
|
# Use tree-walk evaluator for interpreting .sx test files.
|
||||||
trampoline = mod.trampoline
|
# 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()
|
env = mod.make_env()
|
||||||
|
|
||||||
# Platform test functions
|
# Platform test functions
|
||||||
|
|||||||
@@ -14,8 +14,13 @@ sys.path.insert(0, _PROJECT)
|
|||||||
|
|
||||||
from shared.sx.parser import parse_all
|
from shared.sx.parser import parse_all
|
||||||
from shared.sx.ref import sx_ref
|
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
|
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
|
# Build env with primitives
|
||||||
env = make_env()
|
env = make_env()
|
||||||
|
|||||||
@@ -8,8 +8,16 @@ _PROJECT = os.path.abspath(os.path.join(_HERE, "..", "..", ".."))
|
|||||||
sys.path.insert(0, _PROJECT)
|
sys.path.insert(0, _PROJECT)
|
||||||
|
|
||||||
from shared.sx.parser import parse_all
|
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
|
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
|
# Build env with primitives
|
||||||
env = make_env()
|
env = make_env()
|
||||||
|
|||||||
Reference in New Issue
Block a user