feat(phi): Phase 27.4-C - HeaderPhiBuilder bypass for JoinIR experiment

JoinIR 実験経路限定で Header φ 生成をスキップ可能に。

実装内容:
- トグルシステム: joinir_header_bypass_enabled() / is_joinir_header_bypass_target()
- バイパス実装: loop_builder.rs で関数名チェック後に emit_header_phis() をスキップ
- ターゲット関数: Main.skip/1, FuncScannerBox.trim/1 のみ
- テスト更新: JoinIR テストファイルに Phase 27.4-C 対応コメント追加

環境変数:
- NYASH_JOINIR_EXPERIMENT=1 AND NYASH_JOINIR_HEADER_EXP=1 の両方が必要

本線影響: ゼロ(MIR/LoopForm→VM 経路は完全に影響なし)
This commit is contained in:
nyash-codex
2025-11-23 10:08:48 +09:00
parent c7bd5a5465
commit df2248d3c1
5 changed files with 63 additions and 2 deletions

View File

@ -9,6 +9,12 @@
// 実行条件:
// - デフォルトでは #[ignore] にしておいて手動実行用にする
// - 環境変数 NYASH_JOINIR_EXPERIMENT=1 で実験モード有効化
//
// Phase 27.4-C 対応:
// - このテストは JoinIR 変換のみを検証VM 実行なし)
// - NYASH_JOINIR_HEADER_EXP=1 を併用すると Header φ bypass が有効化される
// - bypass 時は MIR に Header φ が生成されないが、このテストでは JoinIR のみ検証するため問題なし
// - 将来的に JoinIR runner 実行を追加する際は、bypass モードでも正しく動作することを確認する
use crate::ast::ASTNode;
use crate::mir::join_ir::*;

View File

@ -9,6 +9,12 @@
// 実行条件:
// - デフォルトでは #[ignore] にしておいて手動実行用にする
// - 環境変数 NYASH_JOINIR_EXPERIMENT=1 で実験モード有効化
//
// Phase 27.4-C 対応:
// - このテストは JoinIR 変換のみを検証VM 実行なし)
// - NYASH_JOINIR_HEADER_EXP=1 を併用すると Header φ bypass が有効化される
// - bypass 時は MIR に Header φ が生成されないが、このテストでは JoinIR のみ検証するため問題なし
// - 将来的に JoinIR runner 実行を追加する際は、bypass モードでも正しく動作することを確認する
use crate::ast::ASTNode;
use crate::mir::join_ir::*;