feat(phi): Step 5-5-H完了 - Phantom block検証+PHI決定性向上
✅ Step 5-5-H: exit_preds検証でphantom block除外 - loop_snapshot_merge.rs line 268: CFG実在チェック追加 ✅ PHI生成決定性向上(4ファイル) - HashMap/HashSet → BTreeMap/BTreeSet変換 - if_phi.rs, loop_phi.rs, loop_snapshot_merge.rs, loopform_builder.rs ✅ 根本原因分析完了(Task先生調査) - ValueId変動の真因: HashMap非決定的イテレーション - 詳細: docs/development/current/main/valueid-*.md 📊 テスト結果: 267/268 PASS(退行なし) - mir_funcscanner_skip_ws: 非決定性残存(variable_map由来) - 後続タスクで対応予定 🎉 PHI Bug Option C実装ほぼ完了! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -97,3 +97,24 @@ fn mir_funcscanner_scan_methods_ssa_debug() {
|
||||
panic!("MIR verification failed for funcscanner_scan_methods_min (debug harness)");
|
||||
}
|
||||
}
|
||||
|
||||
/// Dev-only: FuncScannerBox.skip_whitespace/2 の VM 実行観測テスト
|
||||
///
|
||||
/// - Option C (LoopForm v2 + LoopSnapshotMergeBox + BTree* 化) 適用後、
|
||||
/// 267/268 テストは安定して緑になっているが、このテストだけ
|
||||
/// ValueId / BasicBlockId の非決定的な揺れが残っている。
|
||||
/// - 根本原因は variable_map(HashMap<String, ValueId>) の順序非決定性
|
||||
/// に起因する可能性が高く、Phase 25.3 では「既知の flakiness」として扱う。
|
||||
/// - 後続フェーズ(BoxCompilationContext / variable_map の BTreeMap 化)で
|
||||
/// 構造的に解消する予定のため、ここでは #[ignore] で通常テストから外す。
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn mir_funcscanner_skip_ws_vm_debug_flaky() {
|
||||
// このテストは、FuncScannerBox.skip_whitespace/2 を経由する最小ケースを
|
||||
// VM + NYASH_MIR_DEBUG_LOG 付きで実行し、__mir__ ログから挙動を目視確認するための
|
||||
// 開発用ハーネスとして残しておく。
|
||||
//
|
||||
// 実装詳細は tools 側の専用ハーネスおよび
|
||||
// docs/development/roadmap/phases/phase-25.3-funcscanner/README.md を参照。
|
||||
assert!(true, "dev-only flaky test placeholder");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user