Files
hakorune/docs/development/current/PHI_NORMALIZATION_PLAN.md
Selfhosting Dev f0608e9bb1 feat: Phase 2.4 レガシーアーカイブ整理完了(151MB削減)
## 🎉 完了項目
-  plugin_box_legacy.rs削除(7.7KB、参照ゼロ確認済み)
-  REMOVEDコメント整理(encode.rs簡潔化)
-  venv削除(143MB節約、.gitignoreは既存)
-  llvm_legacyスタブ化(8KB、compile_error!による安全化)

## 🏆 成果
- **リポジトリサイズ改善**: 151MB削減
- **コード整理**: レガシーコード安全にアーカイブ
- **プラグインファースト**: StrictPluginFirst継続動作

##  検証完了
- cargo build --release --features llvm (警告のみ、エラーなし)
- LLVMハーネス実行: print出力正常
- プラグイン動作: StringBox等正常動作

codex先生の戦略に従った安全な段階的削除を実行

Co-Authored-By: codex <noreply@anthropic.com>
2025-09-24 14:13:15 +09:00

2.0 KiB
Raw Blame History

Phi 正規化プラン9.78h スキャフォールド)

目的: ループ/分岐における Phi 選択を正道に戻し、借用衝突を避けつつ段階導入する。

ステータス更新2025-09-26: Step 3 まで実装済みで、MIR ビルダーは既定で PHI-on になったよ。以下のプランはアーカイブとして残しているよ。

段階プラン80/20

  • Step 1: 実行系での選択復帰(完了)
    • previous_block に基づき inputs[(bb==prev)] を選択。見つからない場合は先頭をフォールバック。
    • デバッグ: NYASH_VM_DEBUG_PHI=1 で選択ログ。
  • Step 2: LoopExecutor 連携
    • VM::loop_execute_phiLoopExecutor::execute_phi に委譲(安全な借用構成に整理)。
    • record_transition(from,to) をもとにヘッダ検出・イテレーション情報を活用。
  • Step 3: 正規 SSA への復帰
    • Builder 側で phi 挿入・seal・predecessor 更新を正道で実装。
    • Verifier に phi 一貫性(定義支配/マージ使用)チェックを追加・厳格化。
  • Step 4: ログ削減とテスト
    • 代表ケースloop/if-merge/whileをスナップショット化。
    • 既定で静音、NYASH_VM_DEBUG_PHI のみで詳細。

実装状況2025-08-26

  • Step 1 完了: VM::loop_execute_phiprevious_block による選択に対応。
  • Step 2 スケルトン導入: LoopExecutor へphi実行を委譲し、control_flow::record_transition(from,to)previous_block と遷移を記録。VM本体の分岐時に呼び出し済み。
  • 既知の課題: LoopExecutor のヘッダ検出/イテレーション管理の強化(いまは簡易)。

次アクション

  • LoopExecutor のヘッダ判定とイテレーション可視化を拡充(is_loop_header の実装、NYASH_VM_DEBUG_PHI 出力拡張)。
  • Builder 側の phi 正規化 TODO を CURRENT_TASK に追記seal/pred更新・Phi先頭挿入の確認用ユニットテスト追加