feat(phi): Phase 27.6-2 - ExitPhiBuilder バイパス実装
ExitPhiBuilder にトグル付きバイパスを追加: - ヘルパー関数追加 (exit_phi_builder.rs:397-419) - joinir_exit_bypass_enabled(): トグルチェック - is_joinir_exit_bypass_target(): 対象関数判定 - 環境変数: NYASH_JOINIR_EXPERIMENT=1 + NYASH_JOINIR_EXIT_EXP=1 - バイパス実装 (loop_builder.rs:657-692) - Exit φ 生成前にバイパス判定 - 対象関数: Main.skip/1, FuncScannerBox.trim/1 - ログ: [loopform/exit-bypass] func=... exit=... header=... - Header φ バイパス(27.4-C)と対称的な実装 - 両方のトグルで Header/Exit φ の完全スキップが可能 - JoinIR 実験経路専用(本線影響ゼロ) - 動作確認 - トグル OFF: 372 passed; 9 failed(既存と一致)✅ - コンパイル: エラーゼロ ✅ 本線影響ゼロ。次は Phase 27.6-3 で A/B テスト。
This commit is contained in:
@ -394,6 +394,30 @@ impl<T: crate::mir::phi_core::loopform_builder::LoopFormOps> LoopFormOps for T {
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Phase 27.6-2: JoinIR Exit φ バイパス用ヘルパー関数
|
||||
// ============================================================================
|
||||
|
||||
/// JoinIR Exit φ 縮退実験トグル
|
||||
///
|
||||
/// - NYASH_JOINIR_EXPERIMENT=1
|
||||
/// - NYASH_JOINIR_EXIT_EXP=1
|
||||
///
|
||||
/// の両方が立っているときだけ true。
|
||||
pub(crate) fn joinir_exit_bypass_enabled() -> bool {
|
||||
crate::mir::join_ir::env_flag_is_1("NYASH_JOINIR_EXPERIMENT")
|
||||
&& crate::mir::join_ir::env_flag_is_1("NYASH_JOINIR_EXIT_EXP")
|
||||
}
|
||||
|
||||
/// Exit φ バイパス対象の関数かどうか
|
||||
///
|
||||
/// 当面は minimal/trim の 2 本だけ:
|
||||
/// - Main.skip/1
|
||||
/// - FuncScannerBox.trim/1
|
||||
pub(crate) fn is_joinir_exit_bypass_target(func_name: &str) -> bool {
|
||||
matches!(func_name, "Main.skip/1" | "FuncScannerBox.trim/1")
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Unit Tests
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user