spec: embedding-abi-m1 — linkable artifact + scalar C entrypoint
Brainstorm complete for Embedding ABI M1 (first of the M1–M5 arc). User-approved 2026-05-18. Grounding-check PASS on 3rd dispatch (dispatch 1 false-BLOCK on an in-source unit test it missed; dispatch 2 PASS + located the pin; dispatch 3 PASS after honest prose correction). 7 design decisions pinned, all derived from the M1–M5 arc except the one genuine fork the user decided: - additive FnDef.export: Option<String> (FnDef.doc precedent) - (export "<sym>") author-chosen, mangling-decoupled C symbol - lib<entry>.a (program only) + separate libailang_rt.a - no runtime lifecycle API — documented no-call contract - --emit=staticlib suppresses @main + MissingEntryMain; needs >=1 (export) - export-signature gate: scalar-only + effect-free (clause-3 discriminator) - Task 1 fixed: MissingEntryMain build-path baseline pin (RED-first) Roadmap M1 flipped [ ] -> [~]. Next: planner in a fresh session (user-chosen session shape).
This commit is contained in:
+11
-3
@@ -129,7 +129,7 @@ work progresses.
|
||||
|
||||
## P1 — Next
|
||||
|
||||
- [ ] **\[milestone\]** Embedding ABI — M1: linkable artifact +
|
||||
- [~] **\[milestone\]** Embedding ABI — M1: linkable artifact +
|
||||
scalar C entrypoint + `main`-free lifecycle. First of a
|
||||
five-milestone arc (M1–M5) that makes a compiled AILang kernel
|
||||
callable in-process from a concurrent Rust host, so a swarm of
|
||||
@@ -178,8 +178,16 @@ work progresses.
|
||||
arithmetic callable from C/Rust, proven by a host harness that
|
||||
links the `.a`, calls the symbol, asserts the return.
|
||||
- context: 2026-05-18 chat (`data-server` analysis →
|
||||
embedding-ABI decomposition). No spec yet; brainstorm
|
||||
produces `docs/specs/<date>-embedding-abi-m1.md` at M1 start.
|
||||
embedding-ABI decomposition). Spec landed + user-approved
|
||||
2026-05-18: `docs/specs/2026-05-18-embedding-abi-m1.md`
|
||||
(grounding-check PASS on 3rd dispatch; 7 design decisions
|
||||
pinned — additive `FnDef.export: Option<String>` /
|
||||
`(export "<sym>")` mangling-decoupled symbol / `lib<entry>.a`
|
||||
+ separate `libailang_rt.a` / no runtime lifecycle API /
|
||||
`--emit=staticlib` suppresses `@main`+`MissingEntryMain` /
|
||||
scalar+effect-free export gate / Task 1 fixed =
|
||||
`MissingEntryMain` build-path baseline pin). Next: `planner`
|
||||
in a fresh session (user-chosen session shape).
|
||||
|
||||
- [ ] **\[milestone\]** Embedding ABI — M2: per-thread runtime
|
||||
context + concurrency safety. `ailang_ctx_new()/_free` threaded
|
||||
|
||||
Reference in New Issue
Block a user