9a8d3850e7
Deleted examples/prelude.ail.json (-559 lines). The cross-form-identity preflight test that ratified pd.3's load-bearing assumption at module hash 3abe0d3fa3c11c99 has discharged its purpose and was removed along with its supporting bytes; the long-term prelude_parse_yields_canonical_hash anchor stays. The ail-CLI migrate-bare-cross-module-refs subcommand's defensive include + lockstep skip-branch removed; the rewrite logic's prelude-fallback capability silently retired with the synthetic insert (known debt, doc-comment updated to reflect). One in-mod core test relocated to crates/ailang-core/tests/workspace_pin.rs (pd.2.4 dev-dep cycle precedent — in-mod call to ailang_surface still structurally impossible). carve_out_inventory.rs: 8 → 7 carve-outs, §C4(b) row dropped, header sentence updated. form-a-default-authoring.md §C4(b) gets a "RETIRED 2026-05-14 by milestone prelude-decouple" status marker; original historical text preserved. New prelude_decouple_carve_out_pin.rs asserts examples/prelude.ail.json does NOT exist. Milestone prelude-decouple closed: prelude exists on disk only as examples/prelude.ail; ailang-core embeds zero prelude bytes; CLAUDE.md "authors write .ail" doctrine holds without exception. cargo test --workspace 573 green; bench/cross_lang.py + bench/compile_check.py exit 0; bench/check.py exit 1 with the established noise envelope (14th observation of bench_list_sum.bump_s since audit-cma; pd.3 is filesystem + spec text + test deletion only, no codegen / runtime / typecheck path edited — baseline pristine). Folds in the orphan pd.2 INDEX entry that was left uncommitted in the working tree.
29 lines
1.2 KiB
Rust
29 lines
1.2 KiB
Rust
//! pd.2/pd.3 (`prelude-decouple` milestone): pin the canonical
|
|
//! identity of the parsed prelude as a literal hex hash. Updates
|
|
//! intentionally on prelude-content changes (record the why in the
|
|
//! per-iter journal); accidental drift trips immediately.
|
|
//!
|
|
//! pd.2 also carried a `prelude_ail_and_json_parse_to_identical_module`
|
|
//! cross-form-identity preflight that compared `parse(prelude.ail)`
|
|
//! against `serde_json::from_str(prelude.ail.json)`. The preflight
|
|
//! discharged its purpose at pd.2 close (PASSED at hash
|
|
//! `3abe0d3fa3c11c99`) and was retired in pd.3 alongside the
|
|
//! `prelude.ail.json` file.
|
|
|
|
use ailang_core::workspace::module_hash;
|
|
use ailang_surface::parse_prelude;
|
|
|
|
#[test]
|
|
fn prelude_parse_yields_canonical_hash() {
|
|
let m = parse_prelude();
|
|
let h = module_hash(&m);
|
|
// The expected hex is captured at pd.2-iter close (Step 5 of this task).
|
|
// It updates intentionally on prelude-content changes; record the why
|
|
// in the per-iter journal entry.
|
|
assert_eq!(
|
|
h, "3abe0d3fa3c11c99", // captured at pd.2 iter close
|
|
"prelude module hash drifted; if intentional, capture the new \
|
|
hex below + record the why in the per-iter journal."
|
|
);
|
|
}
|