Add adapter-sx.sx transpilation, async wrapper, and SX_USE_REF switching

- Transpile adapter-sx.sx (aser) alongside adapter-html.sx for SX wire format
- Add platform functions: serialize, escape_string, is_special_form, is_ho_form,
  aser_special (with proper control-flow-through-aser dispatch)
- SxExpr wrapping prevents double-quoting in aser output
- async_eval_ref.py: async wrapper with I/O primitives, RequestContext,
  async_render, async_eval_to_sx, async_eval_slot_to_sx
- SX_USE_REF=1 env var switches shared.sx imports to transpiled backend
- 68 comparison tests (test_sx_ref.py), 289 total tests passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-05 22:05:35 +00:00
parent 4534fb9fee
commit 7982a07f94
6 changed files with 1872 additions and 7 deletions

View File

@@ -0,0 +1,7 @@
"""Reference SX evaluator — transpiled from canonical .sx spec files.
This package provides the bootstrap-compiled evaluator as an alternative
backend to the hand-written evaluator.py / html.py / async_eval.py.
Enable by setting SX_USE_REF=1 environment variable.
"""