Replaces 753 lines of hand-written sx_render.ml with 380 lines (17 transpiled functions from spec/render.sx + web/adapter-html.sx, plus native PREAMBLE and FIXUPS). Source of truth is now the SX spec files: - spec/render.sx: registries, helpers (parse-element-args, definition-form?, eval-cond, process-bindings, merge-spread-attrs, is-render-expr?) - web/adapter-html.sx: dispatch (render-to-html, render-list-to-html, dispatch-html-form, render-html-element, render-html-component, render-lambda-html, render-value-to-html) Native OCaml retained in PREAMBLE/FIXUPS for: - Tag registries (dual string list / value List) - Buffer-based escape_html_raw and render_attrs - expand_macro, try_catch, set_render_active platform functions - Forward refs for lake/marsh/island (web-specific) - setup_render_env, buffer renderer, streaming renderer New bootstrap: hosts/ocaml/bootstrap_render.py Transpiler: added eval-expr, expand-macro, try-catch, set-render-active!, scope-emitted to ml-runtime-names. 2598/2598 tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
18 KiB
18 KiB