844 B
844 B
二重セルフビルドテスト(決定性検証)
目的
コンパイラの決定性保証(Rust/Go業界標準)
方式
Stage 0 (凍結EXE) → Hako₁
Hako₁ → Hako₂
Hako₂ → Hako₃
検証: Hako₂ == Hako₃ (バイト同一)
実装
# tools/ci/double-selfhost-test.sh
STAGE0=./bin/hako-frozen-v1.exe
$STAGE0 apps/selfhost/full_compiler.hako -o hako-stage1.exe
./hako-stage1.exe apps/selfhost/full_compiler.hako -o hako-stage2.exe
./hako-stage2.exe apps/selfhost/full_compiler.hako -o hako-stage3.exe
cmp -s hako-stage2.exe hako-stage3.exe || exit 1
echo "✅ Deterministic!"
CI統合
- GitHub Actions: 毎push/PR
- quick-selfhost プロファイル追加検討
- 失敗時 → 非決定性コンパイル警報
タイミング
Phase 15.76完了後 → 凍結EXE生成時に設定