From e1556fd102364c0afa2c86b9c5c7e2a2db734478 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Thu, 4 Jun 2026 15:28:30 -0400 Subject: [PATCH] docs: PLAN.md + memory updates for conformance gap-closing batch --- .beads/issues.jsonl | 2 ++ PLAN.md | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index d8bbb41..3e80b40 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -13,4 +13,6 @@ {"_type":"issue","id":"jolt-90c","title":"MED: filter/take-while not lazy — infinite-seq (take N (filter p (range))) loops","status":"closed","priority":3,"issue_type":"bug","owner":"yogthos@gmail.com","created_at":"2026-06-04T18:10:00Z","created_by":"Yogthos","updated_at":"2026-06-04T18:56:26Z","closed_at":"2026-06-04T18:56:26Z","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"jolt-7n5","title":"MED: REPL display — def/defn should print #'ns/name; lazy-seq printer realizes only head ((0 \u003cfunction\u003e))","status":"closed","priority":3,"issue_type":"bug","owner":"yogthos@gmail.com","created_at":"2026-06-04T18:09:59Z","created_by":"Yogthos","updated_at":"2026-06-04T18:55:11Z","closed_at":"2026-06-04T18:55:11Z","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"jolt-h0n","title":"MED: missing core fns — letfn fnil trampoline doseq cycle partition-all reductions dedupe keep-indexed map-indexed transduce reduce-kv assoc-in peek subvec read-string format","status":"closed","priority":3,"issue_type":"feature","owner":"yogthos@gmail.com","created_at":"2026-06-04T18:09:58Z","created_by":"Yogthos","updated_at":"2026-06-04T18:57:26Z","closed_at":"2026-06-04T18:57:26Z","dependency_count":0,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"jolt-cn4","title":"regex engine is a common subset (PEG-backed); lookaround/backrefs/named-groups unsupported","status":"open","priority":4,"issue_type":"feature","owner":"yogthos@gmail.com","created_at":"2026-06-04T19:27:50Z","created_by":"Yogthos","updated_at":"2026-06-04T19:27:50Z","dependency_count":0,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"jolt-4zg","title":"char type: chars represented as 1-char strings; (seq \"ab\") yields strings not \\a \\b — deferred design decision","status":"open","priority":4,"issue_type":"feature","owner":"yogthos@gmail.com","created_at":"2026-06-04T19:27:49Z","created_by":"Yogthos","updated_at":"2026-06-04T19:27:49Z","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"jolt-l8f","title":"transduce + transducer arities (1-arg map/filter/take); niche, deferred","status":"open","priority":4,"issue_type":"feature","owner":"yogthos@gmail.com","created_at":"2026-06-04T18:57:27Z","created_by":"Yogthos","updated_at":"2026-06-04T18:57:27Z","dependency_count":0,"dependent_count":0,"comment_count":0} diff --git a/PLAN.md b/PLAN.md index 643766a..df1d6f2 100644 --- a/PLAN.md +++ b/PLAN.md @@ -126,8 +126,18 @@ MED: - Lazy `filter`/`take-while`/`remove` over lazy input - REPL: lazy-seq printer walks full chain (capped); `def`/`defn` print `#'ns/name` -Deferred (niche / opt-in): `transduce` + transducer arities; compiler-path IFn -dispatch (the interpreter is the live path — `init` never enables `:compile?`). +**Gap-closing batch** (conformance grew to 157 cases): full atoms; typed +volatiles + delays (deref/force/realized?); quot/rem/mod sign semantics; a regex +subsystem (`src/jolt/regex.janet`, regex→PEG, `#"..."` literals, re-find/matches/ +seq, string split/replace); sorted-map/sorted-set; `Math/*` statics; ex-info/ +ex-data/ex-message; namespaced keywords; ~40 added core fns (split-at, take-nth, +butlast, filterv/mapv, reduced, min/max-key, find, some-fn, sequential?/ifn?/…) +plus defonce/macroexpand-1/letfn/doseq; and fixes to doto, assoc/update-on-vector, +frequencies, coll?, sort, partition. + +Deferred (niche / opt-in): char type (chars are 1-char strings); full regex +(lookaround/backrefs); `transduce` + transducer arities; compiler-path IFn +dispatch (interpreter is the live path). STM (refs/agents) intentionally skipped. ### Phase 17: Optimization