Phase 20.16 — Frozen v1(Stage 0→1→2)
Purpose
- 凍結ツールチェーンの最小一式(compiler/core, runtime/minimal‑vm, stdlib/minimal)を構築し、自己ビルドの再現性を確認する。
Strategy
- Stage 0: Rust で frozen‑v1 をビルド(発射台)
- Stage 1: frozen‑v1 で同一ソースを再ビルド(自己)
- Stage 2: 生成物の hash/正規化 diff を比較し、再現性を確認(S3 は任意)
Acceptance Criteria
- S0→S1→S2 のビルドが安定し、S1 と S2 の差分が 0(または許容差分が文書化)
- JSON v0 / Core 意味論 / 診断タグは v1 仕様として固定(docs 参照)
- quick/integration は既定OFF、opt‑in で selfhost canary が全緑
Notes
- 「削減%」のメトリクスは廃止。代わりに契約準拠率・再現性・パリティで測る。
- 詳細戦略:
../FROZEN_TOOLCHAIN_STRATEGY.md - Stage driver:
docs/development/tools/stage-pipeline.md(S0/S1/S2 の使い方)
Results (closeout)
- S2(strict) 比較は代表サンプルで緑(nested‑if, diamond+phi)。loop サンプルは verifier 警告の観測教材として保留。
- MIR JSON の安定化(ValueId の遭遇順リネンバリング)を導入し、2回 emit の差分を大幅に低減。
- child_env をヘルパーに一元化(selfhost 子/nyvm(Core)/Gate‑C JSON 経路)。inline selfhost 経路もヘルパー適用。
- HKI v1 bring-up: kni.* を第一表記にし、
HAKO_KNI_TIME/HAKO_KNI_FSゲートと Gate‑C preflight を追加。fs/time スモークを quick/core に追加。 - HKI canary を quick allowlist へ組み込み(opt‑in)。追加:
kni.fs.read_all負例/正例、kni.time.now_ms、kni.console.log。 - Gate‑C(Core) で Map 正例を追加(
canary_gate_c_core_map_(len|get)_vm.sh)。 - 既定トグル:
SMOKES_ENABLE_CORE_CANARY=1を明示したときのみ HKI 正例を実行(既定ONは Gate 整備後に再検討)。