From 20c4a48d3ba90b443a8b80cbf54e9f6d34859f57 Mon Sep 17 00:00:00 2001 From: giles Date: Sat, 6 Jun 2026 20:37:32 +0000 Subject: [PATCH] =?UTF-8?q?radar:=20A1=20conformance=20driver=20=E2=80=94?= =?UTF-8?q?=20datalog=20adopted=20(4=20shims);=20lua=20excluded=20(differe?= =?UTF-8?q?nt=20harness)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- plans/abstractions.md | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/plans/abstractions.md b/plans/abstractions.md index 824960f5..799bfbdf 100644 --- a/plans/abstractions.md +++ b/plans/abstractions.md @@ -12,12 +12,16 @@ Anything short → _Watching_ (what's missing) or _Rejected_ (why). ## Last scan -- **Date:** 2026-06-06 (seed, by hand at radar setup) -- **Subsystem set discovered:** loop worktrees `acl, feed, flow, mod, search, - persist, fed-prims, fed-sx-m, erlang, go, ruby, sx-vm-extensions, radar`; main-repo - subsystems incl. merged `feed` + language substrates (`apl, haskell, prolog, - datalog, lua, …`). Actively looping (tmux): `acl, feed, flow, mod, search, - persist, fed-sx-m1` (+ radar). +- **Date:** 2026-06-06 (radar loop, pass 2) +- **Subsystem set discovered:** loop worktrees `acl, erlang, fed-prims, fed-sx-m1, + feed, flow, go, kernel, mod, ocaml, persist, radar, ruby, search, + sx-vm-extensions`; main-repo `lib/*` incl. merged `feed` + substrates (`apl, + common-lisp, datalog, erlang, forth, go, haskell, hyperscript, js, lua, minikanren, + ocaml, prolog, scheme, smalltalk, tcl`) + `lib/guest`. + Actively looping (tmux): `acl, fed-sx-m1, feed, flow, mod, persist, search` + (+ radar). +- **New since pass 1:** worktrees `kernel` (empty/unset — not yet a repo) and `ocaml` + (`lib/ocaml/baseline` only). Both early-stage, pre–Phase 2 → out of proposal scope. - Re-enumerate every pass; new loops (e.g. a future `commerce`/`identity`) auto-join. --- @@ -34,11 +38,20 @@ Anything short → _Watching_ (what's missing) or _Rejected_ (why). - **Home:** `lib/guest` — the one legitimate exception (the shared driver `lib/guest/conformance.sh` + `lib/guest/conformance.sx` already exist; modes `dict` and `counters`). -- **Status: IN PROGRESS.** Existing adopters: `prolog` (dict), `haskell` (counters). - **`apl` migrated 2026-06-06** (commit on architecture) — and the migration - *surfaced a latent bug*: the old awk extractor under-counted `pipeline` (40 vs the - real 152 assertions); true apl total is **562**, not 450. Evidence that adopting - the driver also improves correctness. +- **Status: IN PROGRESS — 4 adopters.** `prolog` (dict), `haskell` (counters), + `apl` (dict), and **`datalog` (dict), newly migrated this pass** — all now 3-line + exec shims into `lib/guest/conformance.sh` with a `conformance.conf` + (`lib/datalog/conformance.conf`: 11 PRELOADS + 11 SUITES). + The `apl` migration earlier *surfaced a latent bug*: the old awk extractor + under-counted `pipeline` (40 vs the real 152 assertions); true apl total is **562**, + not 450 — evidence that adopting the driver also improves correctness. +- **Not a target (different harness shape):** `lua/conformance.sh` is a Python runner + (`lib/lua/conformance.py`) that walks real `*.lua` source files via `lua-eval-ast` + and classifies pass/fail/timeout — it does not run SX `deftest` suites with a + counter/dict scoreboard, so the shared driver does not fit. Excluded, not pending. +- **Remaining hand-rolled candidates (~120–220 lines each):** `common-lisp, erlang, + feed, forth, go, js, ocaml, smalltalk, tcl` — each its OWN loop's migration when + quiescent. - **Action:** each remaining subsystem's OWN loop migrates when quiescent — add a `conformance.conf` (+ a `test-harness.sx` preload defining its counters) and replace `conformance.sh` with the 1-line exec shim