From 275b3ea966df9943496c035d025b122cca649f56 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 May 2026 04:25:26 +0000 Subject: [PATCH] =?UTF-8?q?docs(tech-debt):=20split=20STDLIB-04=20into=200?= =?UTF-8?q?4a=E2=80=9304e=20per=20per-extern=20audit=20(Refs=20#175)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the single-row STDLIB-04 umbrella with 04a..04e — one row per PR, each tracking its own issue (#328 Mut, #329 error, #330 string_concat, #331 IO tests, #332 Pure close-as-done). Status column carries the audit finding (stub / missing / wired-but-untested / done) so the ledger reflects reality without a sibling audit doc. Refs #175. --- docs/TECH-DEBT.adoc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/TECH-DEBT.adoc b/docs/TECH-DEBT.adoc index eb01f0c9..25e960d2 100644 --- a/docs/TECH-DEBT.adoc +++ b/docs/TECH-DEBT.adoc @@ -159,7 +159,27 @@ complete; convergence ABI shared w/ Ephapax insert/set/remove/keys/values; AOT-gated (#136). Closes ESC-03 #247 (the #229 `Dict.t` target); unblocks the additive `Http.affine` headers→Dict upgrade -|STDLIB-04 |Residual `extern` builtins → real implementations |S3 |open +|STDLIB-04 |Residual `extern` builtins → real implementations (umbrella; +split into 04a–04e 2026-05-24 per per-extern audit, one row per PR) |S3 +|open (5 sub-rows) +|STDLIB-04a |Mut effect externs (`make_ref`/`get`/`set`) — currently +stub: surface syntax exists in `lib/js_codegen.ml` (~L144) but no real +wasm refcell or host-import lowering; round-trip unproven on all +backends |S3 |open — issue #328 +|STDLIB-04b |Throws extern `error` — missing in all backends +(`lib/interp.ml`, `lib/js_codegen.ml`, `lib/codegen_deno.ml`); sibling +`panic` is wired and `error` should mirror it (divergent `T`) |S3 |open +— issue #329 +|STDLIB-04c |`string_concat` extern — no direct wiring found; `++` +operator independently lowered. Decide: remove (operator-only) or wire +to mirror `++` |S3 |open — issue #330 +|STDLIB-04d |IO externs (`print`/`println`/`read_line`/`read_file`/ +`write_file`) — wired on all backends but no dedicated hermetic e2e +tests; test-debt, not impl-debt |S3 |open — issue #331 +|STDLIB-04e |Pure externs (`int_to_string`/`string_to_int`/ +`string_length`) — real + tested (`lib/interp.ml:615-633`, +`lib/codegen_deno.ml:263-272`); bookkeeping to mark DONE |S3 |open — +issue #332 |=== == Section D — INT (ecosystem integration)