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:
@ -60,32 +60,28 @@ echo 'print("Hello Nyash!")' > local_tests/test_hello.nyash
|
||||
|
||||
## PHI ポリシー(Phase‑15)と検証トグル
|
||||
|
||||
- 既定は PHI‑off(エッジコピー方式)だよ。MIR では Phi を発行せず、合流は predecessor 側に `Copy` を挿入して表現するよ。
|
||||
- LLVM/llvmlite 側が PHI を合成する(AOT/EXE)。PyVM は意味論のリファレンスとして動作。
|
||||
- Phase‑15 では PHI‑on(MIR14)が既定だよ。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 合成が、PHI‑off のエッジコピー規約に整合しているかを可視化・検証する。
|
||||
- 目的: LLVM 側の PHI 配線が、PHI-on で生成された SSA と legacy edge-copy (PHI-off) の両方に整合しているかを可視化・検証する。
|
||||
- 出力: 1 行 JSON(JSONL)。`NYASH_LLVM_TRACE_OUT=<path>` に追記出力。
|
||||
- イベント: `finalize_begin/finalize_dst/add_incoming/wire_choose/snapshot` など(pred→dst 整合が分かる)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user