Commit Graph

2 Commits

Author SHA1 Message Date
Brummel 818177d835 iter embedding-abi-m1.1 (PARTIAL 3/7): schema + surface + baseline prerequisites; plan Repair
Tasks 1-3 of docs/plans/embedding-abi-m1.1.md, a verified known-good
subset (cargo build --workspace exit 0; full workspace green; the
roundtrip_cli all-examples gate green):

- Task 1: CLI build-path MissingEntryMain baseline pin
  (examples/embed_noentry_baseline.ail + embed_missing_main_baseline.rs;
  triple-assertion, layered on the green codegen-unit pin lib.rs:3314).
- Task 2: additive FnDef.export: Option<String> (serde default +
  skip_serializing_if, modelled on FnDef.doc); compile-driven thread
  of export: None across ~85 FnDef/AstFnDef literals / 18 files incl.
  all in-source #[cfg(test)] mod tests + drift/hash/spec-drift
  literals + the codegen lib.rs:3320 in-source pin; hash-stability
  golden pin; DESIGN.md fn-JSON "export" line. DONE_WITH_CONCERNS
  (plan symbol content_hash_fn -> def_hash per hash_pin.rs, plan-
  pseudo-vs-reality class, plan corrected).
- Task 3: Form-A (export "<sym>") modifier — parse_export +
  parse_fn thread + write_fn_def emission + form_a.md grammar;
  byte-identical round-trip.

Task 4 BLOCKED (Boss plan-defect: fixtures declared module != file
stem; AILang's loader hard-enforces module==stem at workspace.rs:438,
so ail check panicked on load before the gate). Boss resolution
(Option 2, overriding the orchestrator's Option 1, rationale in the
journal + plan Design-decision 6): keep descriptive embed_* filenames,
rename fixture MODULES to their stems — the C symbol backtest_step
stays via (export ...), demonstrating spec Decision 2's mangling-
decoupling rather than violating it; archive becomes
libembed_backtest_step.a, internal symbol @ail_embed_backtest_step_step,
host.c unchanged. Plan fixed (Design-decision 6 + Task-4 module==stem
+ Task-5/6/7 dependent strings + the no-*. Float-head + content_hash_fn
concerns folded). Headline fixture corrected; blocked-Task-4 WIP
discarded (recreated by the [4,7] re-dispatch from the fixed plan).

PARTIAL commit (not the iter's final commit): the implement Repair
path mandates committing the known-good subset so the [4,7]
re-dispatch starts from a clean tree that includes Tasks 1-3 (Tasks
4-7 structurally depend on the schema field + surface). INDEX line
added when the full iter lands post-re-dispatch.
2026-05-18 14:32:39 +02:00
Brummel b0bd7efeaf plan: embedding-abi-m1.1 — linkable artifact + scalar C entrypoint
7-task decomposition of docs/specs/2026-05-18-embedding-abi-m1.md
(committed 51160e9, user-approved, grounding-check PASS).

Task 1 (FIXED FIRST, per spec sequencing): CLI build-path
MissingEntryMain baseline pin, RED-first, before any staticlib code
— layered on the already-green codegen-unit pin lib.rs:3314.
Tasks 2-7: additive FnDef.export (~95-site compile-driven thread,
hash-stable) -> Form-A (export "<sym>") round-trip -> scalar-only
+ effect-free check gate (two CheckError Error variants, clause-3
in code) -> codegen Target::StaticLib (suppress @main +
MissingEntryMain, emit @<sym> forwarder) -> ail build
--emit=staticlib (lib<entry>.a + separate libailang_rt.a) ->
C host-harness E2E coherent-stop proof + DESIGN.md honesty.

ailang-plan-recon file-map Boss-verified against source (ast.rs /
parse.rs / print.rs / form_a.md / check+codegen lib.rs / main.rs /
design_schema_drift.rs / DESIGN.md all re-read; recon locations
accurate). Both crate-wide compile-break tasks scrubbed for
planner self-review item 7 (all callers threaded inside the
breaking task before its 0-errors gate). Roadmap M1 context line
refreshed: plan landed, next = implement.
2026-05-18 14:02:55 +02:00