From 0693586e6f9888616528c4959f3d8ebd4b7a1a8c Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 6 Mar 2026 00:20:32 +0000 Subject: [PATCH] Minor wording fixes in server architecture essay Co-Authored-By: Claude Opus 4.6 --- sx/sx/essays.sx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sx/sx/essays.sx b/sx/sx/essays.sx index 8cb6d2d..467ef6a 100644 --- a/sx/sx/essays.sx +++ b/sx/sx/essays.sx @@ -156,7 +156,7 @@ (~doc-section :title "The island constraint" :id "island" (p :class "text-stone-600" - "SX is an embedded language. It runs inside a host — Python on the server, JavaScript in the browser. The central architectural constraint is that SX is a " (strong "pure island") ": the evaluator sees values in and values out. No host objects leak into the SX environment. No SX expressions reach into host internals. Every interaction between SX and the host passes through a declared, validated boundary.") + "SX is an embedded language. It runs inside a host language — for example Python on the server, JavaScript in the browser. The central architectural constraint is that SX is a " (strong "pure island") ": the evaluator sees values in and values out. No host objects leak into the SX environment. No SX expressions reach into host internals. Every interaction between SX and the host passes through a declared, validated boundary.") (p :class "text-stone-600" "This is not a performance optimization or a convenience. It is the property that makes self-hosting possible. If host objects can leak into SX environments, then the spec files depend on host-specific types. If SX expressions can call host functions directly, the evaluator's behavior varies per host. Neither of those is compatible with a single specification that bootstraps to multiple targets.") (p :class "text-stone-600" @@ -173,7 +173,7 @@ (div :class "border rounded-lg p-4 border-stone-200" (h3 :class "font-semibold text-stone-800 mb-2" "Tier 2: I/O primitives") (p :class "text-stone-600 text-sm" - "Declared in " (code :class "text-violet-700 text-sm" "boundary.sx") ". About 34 functions — cross-service queries, fragment fetching, request context access, URL generation. Async and side-effectful. They need host context (HTTP request, database connection, config). The SX resolver identifies these in the render tree, gathers them, executes them in parallel, and substitutes results back in.")) + "Declared in " (code :class "text-violet-700 text-sm" "boundary.sx") ". Cross-service queries, fragment fetching, request context access, URL generation. Async and side-effectful. They need host context (HTTP request, database connection, config). The SX resolver identifies these in the render tree, gathers them, executes them in parallel, and substitutes results back in.")) (div :class "border rounded-lg p-4 border-stone-200" (h3 :class "font-semibold text-stone-800 mb-2" "Tier 3: Page helpers") (p :class "text-stone-600 text-sm"