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>
This commit is contained in:
Selfhosting Dev
2025-09-24 14:13:15 +09:00
parent f4fe548787
commit f0608e9bb1
42 changed files with 682 additions and 536 deletions

View File

@ -60,32 +60,28 @@ echo 'print("Hello Nyash!")' > local_tests/test_hello.nyash
## PHI ポリシーPhase15と検証トグル
- 既定は PHIoffエッジコピー方式だよ。MIR では Phi を発行せず、合流は predecessor 側に `Copy` を挿入して表現するよ。
- LLVM/llvmlite 側が PHI を合成するAOT/EXE。PyVM は意味論のリファレンスとして動作
- Phase15 では PHIonMIR14が既定だよ。MIR ビルダーがブロック先頭へ `Phi` を配置し、検証も SSA 前提で実施するよ。
- レガシー検証で edge-copy 互換が必要なら `NYASH_MIR_NO_PHI=1` を明示してね(`NYASH_VERIFY_ALLOW_NO_PHI=1` も忘れずに)
- 詳細は `docs/reference/mir/phi_policy.md` を参照してね。
テスト時の環境(推奨)
```bash
# 既定の PHI-off を明示(未設定なら 1 と同義)
export NYASH_MIR_NO_PHI=${NYASH_MIR_NO_PHI:-1}
# 既定: 何も設定しない → PHI-on
# エッジコピー厳格検証(オプション)
# マージブロック自身の self-copy 禁止、全 predecessor に Copy があるか検査
# レガシー PHI-off の再現が必要なときだけ明示的に切り替え
export NYASH_MIR_NO_PHI=1
export NYASH_VERIFY_ALLOW_NO_PHI=1
# さらに edge-copy 規約を厳格チェックしたい場合(任意)
export NYASH_VERIFY_EDGE_COPY_STRICT=1
# PHI-onレガシー/保守限定、開発者のみ)
# ビルド時に feature を付け、実行時は 0 に設定
cargo test --features phi-legacy
NYASH_MIR_NO_PHI=0 cargo test --features phi-legacy -- --ignored
```
スモークスクリプトの既定
- `tools/smokes/curated_llvm.sh`: `NYASH_MIR_NO_PHI=${NYASH_MIR_NO_PHI:-1}` を既定設定
- `tools/smokes/fast_local.sh`: 同上。`NYASH_VERIFY_EDGE_COPY_STRICT` は opt-in既定 0
PHI-on の補助トレース
- `NYASH_LLVM_TRACE_PHI=1``NYASH_LLVM_TRACE_OUT=tmp/phi.jsonl` を組み合わせると、PHI がどの predecessor から値を受け取っているかを確認できるよ。
## PHI 配線トレースJSONL
- 目的: LLVM 側の PHI 合成が、PHIoff のエッジコピー規約に整合しているかを可視化・検証する。
- 目的: LLVM 側の PHI 配線が、PHI-on で生成された SSA と legacy edge-copy (PHI-off)両方に整合しているかを可視化・検証する。
- 出力: 1 行 JSONJSONL`NYASH_LLVM_TRACE_OUT=<path>` に追記出力。
- イベント: `finalize_begin/finalize_dst/add_incoming/wire_choose/snapshot` などpred→dst 整合が分かる)