38150ae923326d7d007e4c2862d4e1f027f08497
M4 (sequence crossing via the List ADT) was struck during its own /boss brainstorm, in the Step-2/3 Q&A, before any spec — the "problem mis-framed -> don't ratify a known-unneeded shape into the roadmap" brainstorm path. No spec, no grounding-check, no planner handoff. Why: held against DESIGN.md feature-acceptance criterion clause 2, M4 removes no redundancy. The shipped M3 export gate is_c_abi_type (crates/ailang-check/src/lib.rs:1934-1953) is a per-parameter loop accepting a C scalar OR a single-ctor all-scalar record independently per param; the forwarder's llvm_scalar maps every non-scalar Type::Con to ptr (M3-frozen). So (State, Tick) -> State with both as single-ctor all-scalar records is already gate-accepted and forwarder-supported today. The minimal data-server binding is M3 (shipped) + a host-side per-tick loop; cons-list crossing would add a 2N+1-box-per-chunk host builder and the deferred flat-array perf debt, with no named consumer (M5's adapter unrolls each chunk host-side; whole-chunk in-kernel visibility is semantically void — State threads across calls regardless of chunk boundaries). Outcome: M4 retired in docs/roadmap.md (struck entry kept one cycle for context, never [x] — never shipped); M5 reconciled (depends on M4 -> M3 + the Tick-coverage todo; adapter unrolls host-side; friction feeds the host-per-tick-FFI vs. batch-crossing P2 perf decision); residual recorded as a new [todo] Tick-coverage on M3 — an E2E + fixture pinning the two-record-param per-tick (State, Tick) -> State shape (test backfill, no brainstorm). Rationale + the honest mid-Q&A correction (I had wrongly asserted M5 needs M4) in docs/journals/2026-05-18-brainstorm-embedding-abi-m4-retired.md; INDEX.md mirrors it.
roadmap: retire Embedding ABI — M4 (never speced) — speculative infra by feature-acceptance clause 2
Description
No description provided
Languages
Rust
91.6%
Python
4.6%
C
1.8%
LLVM
1.6%
Shell
0.4%