phase15: implement Phase S root treatment for break control flow

🔧 **Phase S (Immediate Stabilization) Implementation**
- Create control flow utilities module (src/mir/utils/)
- Refactor loop_builder.rs duplicated code to utilities
- Fix PHI incoming predecessor capture per ChatGPT Pro analysis

📊 **AI Collaborative Analysis Complete**
- Task agent: Root cause identification
- Gemini: Strategic 3-phase approach
- codex: Advanced type inference solution (archived)
- ChatGPT Pro: Definitive staged treatment strategy

🗂️ **Documentation & Archive**
- Strategy document: docs/development/strategies/break-control-flow-strategy.md
- codex solutions: archive/codex-solutions/ (100+ lines changes)
- Update CLAUDE.md with 2025-09-23 progress

 **Expected Impact**
- Resolve collect_prints null return issue
- Eliminate code duplication (4 locations unified)
- Foundation for Phase M (PHI unification) and Phase L (BuildOutcome)

🎯 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-23 07:13:32 +09:00
parent 7ab1e59450
commit 2e93403de0
12 changed files with 2070 additions and 99 deletions

View File

@ -255,6 +255,14 @@ NYASH_CLI_VERBOSE=1 ./target/release/nyash program.nyash
# JSON IR出力
NYASH_DUMP_JSON_IR=1 ./target/release/nyash program.nyash
# MIR出力重要
NYASH_DUMP_MIR=1 ./target/release/nyash program.nyash
NYASH_VM_DUMP_MIR=1 ./target/release/nyash program.nyash # VM実行時
./target/release/nyash --dump-mir program.nyash # フラグ版
# PyVMデバッグ
NYASH_PYVM_DEBUG=1 ./target/release/nyash program.nyash
# パーサー無限ループ対策
./target/release/nyash --debug-fuel 1000 program.nyash
@ -277,19 +285,28 @@ NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash program.nyash
- 🎯 **AI協働デバッグ**: Claude+ChatGPT修正+系統的トレースの完璧な連携実現
- 📋 詳細: JITアーカイブは `archive/jit-cranelift/` に完全移動、復活手順も完備
## 📝 Update (2025-09-22) 🎯 Phase 15 JSON Native実装導入調査継続中
## 📝 Update (2025-09-22) 🎯 Phase 15 重要バグ発見&根本原因解明完了!
-**using systemパーサー問題完全解決** `NYASH_RESOLVE_FIX_BRACES=1`でブレースバランス自動修正
- 🆕 **JSON Native実装を導入** 別Claude Code君の`feature/phase15-nyash-json-native`から`apps/lib/json_native/`取り込み完了
- 🔧 **ChatGPTの統合実装承認** JSON読み込み処理統合は正しい方向性、技術的に高度
- 🐛 **重大バグ完全解明!**
- **問題**: `collect_prints`メソッドで`break`の後のコードが実行されずnullを返す
- **根本原因判明**: `src/mir/loop_builder.rs``do_break()``switch_to_unreachable_block_with_void()`を呼び、break後のコードをunreachableとマーク
- **MIR解析結果**:
- Block 1394, 1407: 直接Block 1388null returnにジャンプ
- Block 1730: 正常なArrayBox return
- レジスタ2: `new ArrayBox()`、レジスタ751: `const 0`null
- **デバッグ環境変数**: `NYASH_DUMP_JSON_IR=1`, `NYASH_PYVM_DEBUG=1`でMIR/PyVM詳細追跡可能
- **一時解決策**: `break``finished = 1`フラグに置き換え(根治が必要)
- 📊 **現在の状況**:
- using systemパーサーエラー: ✅ 完全解決
- collect_prints()処理: ✅ echo/itoa正常動作
- collect_prints()根本原因: ✅ loop_builder.rs特定完了
- JSON Native: 📦 取り込み済みmatch式互換性の課題あり
- 🔍 **調査中**: collect_prints()戻り値の異常終了問題Codex/Task並行調査中
- 🎯 **技術成果**:
- Task先生の調査により、using system統合の複雑な技術課題を解決
- JSON Native実装yyjson置き換えの基盤完成度90%
- 🚀 **Phase 15セルフホスティング**: 主要障害を克服、JSON Native統合準備中
- PyVM内蔵BoxArrayBox等の早期リターンバグ修正
- MIR JSON解析によるbreak/continue制御フロー問題の完全解明
- loop_builder.rsのdo_break()修正が必要(次のタスク)
- 🚀 **Phase 15セルフホスティング**: MIRレベルの問題も特定済み、修正準備完了
## 📝 Update (2025-09-18) 🌟 Property System革命達成
-**Property System革命完了** ChatGPT5×Claude×Codexの協働により、stored/computed/once/birth_once統一構文完成
@ -300,6 +317,18 @@ NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash program.nyash
- 🗃️ **アーカイブ整理**: 古いphaseファイル群をarchiveに移動、導線クリーンアップ完了
- 📋 詳細: [Property System仕様](docs/proposals/unified-members.md) | [Python統合計画](docs/development/roadmap/phases/phase-10.7/)
## 📝 Update (2025-09-23) 🔧 break制御フロー問題の段階的根治戦略確定
- 🎯 **AI協働分析完了** task+Gemini+codex+ChatGPT Pro最強モードで根本原因完全特定
- 🔍 **根本問題**: break文が値を返す設計歪み → collect_printsメソッドでnull値返却
- 🚀 **3段階根治戦略決定**:
- **フェーズS即効止血**: PHI incoming修正終端ガード徹底
- **フェーズMPHI一本化**: no_phi_mode撤廃で数百行削減
- **フェーズL根本解決**: BuildOutcome導入で完全治癒
- 📊 **期待効果**: 80k→20k圧縮に大きく貢献設計歪み根絶
- 💾 **codex解決策保存**: archive/codex-solutions/に高度な型推論実装を保管
- 📚 **戦略文書化**: [break-control-flow-strategy.md](docs/development/strategies/break-control-flow-strategy.md)完成
- 🎯 **次のアクション**: フェーズSから段階的実行開始
## 📝 Update (2025-09-14) 🎉 セルフホスティング大前進!
- ✅ Python LLVM実装が実用レベル到達esc_dirname_smoke, min_str_cat_loop, dep_tree_min_string全てPASS
- 🚀 **Phase 15.3開始!** NyashコンパイラMVP実装が`apps/selfhost-compiler/`でスタート!