|
|
cfc697821f
|
Step 5.5 phase 3: transpile HTML renderer from SX spec
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>
|
2026-04-03 20:16:26 +00:00 |
|