Lambda calls in sx_call now go through the CEK machine instead of returning a Thunk for the tree-walker trampoline. This lets perform/ IO suspension work everywhere — including hyperscript wait/bounce. Key changes: - sx_runtime: Lambda case calls _cek_eval_lambda_ref (forward ref) - sx_vm: initializes ref with cek_step_loop + stub VM for suspension - sx_apply_cek: VmSuspended → __vm_suspended marker dict (not exception) - continue_with_call callable path: handles __vm_suspended with vm-resume-frame, matching the existing JIT Lambda pattern - sx_render: let VmSuspended propagate through try_catch - Remove invalid io-contract test (perform now suspends, not errors) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
141 KiB
141 KiB