From 7172f0d775fa07e0be7760ca08a6a519639910c7 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 28 Jun 2026 19:13:54 +0000 Subject: [PATCH] =?UTF-8?q?host:=20100%=20serving=20JIT=20=E2=80=94=20drop?= =?UTF-8?q?=20the=20host=20jit-exclude=20(surface=20miscompiles=20in=20dev?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per dev intent: don't mask JIT errors. Remove (jit-exclude! "host/*" "dream-*" "dr/*") so ALL request-path SX runs under JIT. Host handlers miscompile on first call in the http-listen path (map/rest arg bug → 500, self-heals on retry); that surfacing is the point — it exercises the JIT against real durable-IO traffic and gives the sx-vm-extensions loop the full miscompile list to fix (kernel bugs A/B in plans/HANDOFF-jit-miscompile.md). Datalog JIT win stays (/tags fast). Co-Authored-By: Claude Opus 4.8 --- lib/host/serve.sh | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/host/serve.sh b/lib/host/serve.sh index 3a972938..55bf96ab 100755 --- a/lib/host/serve.sh +++ b/lib/host/serve.sh @@ -99,17 +99,13 @@ EPOCH=1 for M in "${MODULES[@]}"; do echo "(epoch $EPOCH)"; echo "(load \"$M\")"; EPOCH=$((EPOCH+1)) done - # Serving-mode JIT: exclude the request-path SX (host app + Dream framework) from - # JIT. Those functions miscompile on first call in the http-listen + cek_run_with_io - # path (a map/rest arg bug → 500, then self-heals via CEK fallback — but the first - # hit fails). They're IO-bound anyway, so CEK is no slower. The JIT win is the - # Datalog/relations saturation (dl-*/relations-*), which JITs cleanly and stays on - # (e.g. /tags 2.5s -> 0.76s). - if [ "${SX_SERVING_JIT:-}" = "1" ]; then - echo "(epoch $EPOCH)" - echo "(eval \"(jit-exclude! \\\"host/*\\\" \\\"dream-*\\\" \\\"dr/*\\\")\")" - EPOCH=$((EPOCH+1)) - fi + # Serving-mode JIT runs at 100% — NO host jit-exclude. The request-path SX (host + # app + Dream framework) miscompiles on first call in the http-listen + + # cek_run_with_io path (map/rest arg bug → 500, self-heals on retry via CEK + # fallback). That's deliberate in DEV: surfacing every miscompile (the + # `[jit] … first-call fallback` log lines) exercises the JIT against real traffic + # and feeds the bug list to the sx-vm-extensions loop. Do NOT mask it with a + # jit-exclude — see plans/HANDOFF-jit-miscompile.md. # Point the blog at the DURABLE file backend (persists under $SX_PERSIST_DIR), # then idempotently seed a welcome post (sx_content = SX element markup, the # editor's content model). Re-seeding is a no-op if the slug already exists.