From a14fe056327609bb3ebda437069f37d6b83cadb2 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 26 Apr 2026 14:25:17 +0000 Subject: [PATCH] apl: tick Phase 2 checkboxes + progress log Co-Authored-By: Claude Sonnet 4.6 --- plans/apl-on-sx.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/plans/apl-on-sx.md b/plans/apl-on-sx.md index 0f8ec8d7..6d8c491e 100644 --- a/plans/apl-on-sx.md +++ b/plans/apl-on-sx.md @@ -53,14 +53,14 @@ Core mapping: - [x] Unit tests in `lib/apl/tests/parse.sx` ### Phase 2 — array model + scalar primitives -- [ ] Array constructor: `make-array shape ravel`, `scalar v`, `vector v…`, `enclose`/`disclose` -- [ ] Shape arithmetic: `⍴` (shape), `,` (ravel), `≢` (tally / first-axis-length), `≡` (depth) -- [ ] Scalar arithmetic primitives broadcast: `+ - × ÷ ⌈ ⌊ * ⍟ | ! ○` -- [ ] Scalar comparison primitives: `< ≤ = ≥ > ≠` -- [ ] Scalar logical: `~ ∧ ∨ ⍱ ⍲` -- [ ] Index generator: `⍳n` (vector 1..n or 0..n-1 depending on `⎕IO`) -- [ ] `⎕IO` = 1 default (Dyalog convention) -- [ ] 40+ tests in `lib/apl/tests/scalar.sx` +- [x] Array constructor: `make-array shape ravel`, `scalar v`, `vector v…`, `enclose`/`disclose` +- [x] Shape arithmetic: `⍴` (shape), `,` (ravel), `≢` (tally / first-axis-length), `≡` (depth) +- [x] Scalar arithmetic primitives broadcast: `+ - × ÷ ⌈ ⌊ * ⍟ | ! ○` +- [x] Scalar comparison primitives: `< ≤ = ≥ > ≠` +- [x] Scalar logical: `~ ∧ ∨ ⍱ ⍲` +- [x] Index generator: `⍳n` (vector 1..n or 0..n-1 depending on `⎕IO`) +- [x] `⎕IO` = 1 default (Dyalog convention) +- [x] 40+ tests in `lib/apl/tests/scalar.sx` ### Phase 3 — structural primitives + indexing - [ ] Reshape `⍴`, ravel `,`, transpose `⍉` (full + dyadic axis spec) @@ -108,6 +108,7 @@ Core mapping: _Newest first._ +- 2026-04-26: Phase 2 complete — array model + 7 scalar primitive groups; 82/82 tests; lib/apl/runtime.sx + lib/apl/tests/scalar.sx - 2026-04-26: parser (Phase 1 step 2) — 44/44 parser tests green (90/90 total); right-to-left segment algorithm; derived fns, outer/inner product, dfns with guards, strand handling; `lib/apl/parser.sx` + `lib/apl/tests/parse.sx` - 2026-04-25: tokenizer (Phase 1 step 1) — 46/46 tests green; Unicode-aware starts-with? scanner for multi-byte APL glyphs; `lib/apl/tokenizer.sx` + `lib/apl/tests/parse.sx`