3ec406e687
raw-buf.1 (intercept registry) shipped (140a0c0). The intrinsic-bodies
milestone (#9) then landed and pulled the foundation out from under the
original raw-buf.2/.3 split, so this revises the spec.
Two foundation changes from intrinsic-bodies:
1. The placeholder-body convention the original spec leaned on
((body x) round-trip stubs) is gone. prelude.ail now uses
(intrinsic) markers, and check_fn (lib.rs:2173) typechecks every
non-intrinsic body including kernel-tier ones. RawBuf.get with a
placeholder body (declared (ret a), body constructs a RawBuf) is now
a hard type error — get/new/set/size MUST be (intrinsic).
2. An (intrinsic) marker now requires a matching INTERCEPTS entry as a
lockstep pair (intercepts_bijection_with_intrinsic_markers). The
"manifest visible / codegen deferred" intermediate state the original
raw-buf.2 was designed to ship is forbidden by that invariant — the
marker and its codegen entry must land in the same iteration.
Re-carve (3 remaining iterations, retirement isolated):
raw-buf.2 — kernel family-crate rename ailang-kernel-stub →
ailang-kernel. Pure refactor, zero behavioural change.
raw-buf.3 — RawBuf end-to-end: raw_buf module ((intrinsic) markers)
+ 12 INTERCEPTS entries + Term::New desugar + drop +
ailang-surface wiring + E2E. Manifest+codegen land
together. Workspace count 4 → 5.
raw-buf.4 — kernel_stub retirement: RawBuf subsumes every
ratification role (Term::New, param-in, kernel-tier
auto-import, intrinsic); answer entry + stub removed,
count 5 → 4.
Preserved unchanged: Goal, slab layout, feature-acceptance argument.
The raw_buf module Form-A source in § Concrete code shapes is
gate-verified: ail check → ok (35 symbols across 3 modules); the four
(intrinsic) markers are legal because the module is (kernel).
Grounding-check: 8/9 load-bearing current-behaviour assumptions
ratified by named green tests. The single override is the Term::New
codegen-deferral arm (lib.rs:2094 + sibling at lib.rs:3296, the latter
surfaced by the grounding agent) — a transient prep.2 marker that
raw-buf.3 deletes, not a relied-upon invariant; forward-ratified by
raw-buf.3's build-and-run E2E. Override logged, not a discard.