Commit Graph

3 Commits

Author SHA1 Message Date
6134bd2ea5 Stepper persistence: use def-store instead of broken cookies
The home stepper's step-idx signal was not persisting across SX
navigation because set-cookie/freeze-to-sx wasn't working in the
WASM kernel. Replace with def-store which uses a global registry
that survives island re-hydration.

Also fix sx_http.exe build: add sx_http back to dune, inline scope
primitives (Sx_scope module was removed), add declarative form
stubs and render stubs, fix /sx/ home route mapping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 18:27:08 +00:00
e1ef883339 SX renderer: adapter-html.sx as sole renderer, conditions, pattern matching
Evaluator: conditions/restarts, pattern matching, render-trace support.
adapter-html.sx: full SX-defined HTML renderer replacing native OCaml.
spec/render.sx: updated render mode helpers.
sx_browser.ml: use SX render-to-html instead of native.
sx_ref.ml: evaluator updates for conditions + match.
Bootstrap + transpiler updates for new forms.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 01:28:53 +00:00
0d5770729f sx-host step 3: HTTP server mode + define shorthand + SX highlighter
HTTP server (--http PORT): OCaml serves sx-docs directly, no Python.
Loads components at startup, routes /sx/ URLs, renders full pages with
shell. Geography page: 124ms TTFB (vs 144ms Quart). Single process.

define shorthand: (define (name args) body) desugars to
(define name (fn (args) body)) in the CEK step function.

SX highlighter (lib/highlight.sx): pure SX syntax highlighting with
Tailwind spans. Tokenizes SX/Lisp code — comments, strings, keywords,
components, specials, numbers, booleans. Replaces Python highlight.py.

Platform constructors: make-lambda, make-component, make-island,
make-macro, make-thunk, make-env + accessor functions bound for
evaluator.sx compatibility in HTTP mode.

Tests: 1116/1117 OCaml, 7/7 Playwright (main tree).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 16:15:58 +00:00