feat(llvm): Phase 97 - Call/PHI/Plugin強化 + リファクタリング準備
## 概要 LLVM backend のCall処理、PHI wiring、Plugin loader を強化。 次のリファクタリング(箱化モジュール化)のための準備も含む。 ## 変更内容 ### LLVM Call処理強化 - `mir_call/__init__.py`: Call ルーティングロジック改善 - `mir_call/global_call.py`: print処理の marshal強化 - `mir_call/method_call.py`: メソッド呼び出し処理改善 - `boxcall.py`: BoxCall処理改善 ### PHI処理強化 - `phi_manager.py`: PHI管理改善 - `phi_wiring/wiring.py`: PHI配線ロジック強化(+17行) - `phi_wiring/tagging.py`: Type tagging改善 - `resolver.py`: Value解決ロジック強化(+34行) ### Copy伝播 - `copy.py`: Copy命令のType tag伝播追加(+10行) ### Plugin loader強化 - `library.rs`: エラー出力改善、[plugin/missing]ログ追加(+34行) - fail-fast強化 ### テスト - `phase97_json_loader_escape_llvm_exe.sh`: Phase 97 E2Eテスト追加 - `phase97_next_non_ws_llvm_exe.sh`: Phase 97 E2Eテスト追加 ### その他 - `nyash_kernel/lib.rs`: Kernel側の改善(+23行) ## 統計 - 14ファイル変更 - +256行 / -53行 = +203 net ## 次のリファクタリング準備 以下の箇所がリファクタリング対象として識別済み: 1. Call ルーティング箱の明文化 2. print の marshal 箱 3. TypeFacts/Tagging 箱の一本化 4. PHI Snapshot 契約のSSOT 5. Plugin loader のエラー出力統合 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -48,3 +48,13 @@ def lower_copy(
|
||||
if os.environ.get('NYASH_LLVM_VMAP_TRACE') == '1':
|
||||
print(f"[vmap/id] copy dst={dst} src={src} vmap id={id(vmap)} before_write", file=sys.stderr)
|
||||
safe_vmap_write(vmap, dst, val, "copy", resolver=resolver)
|
||||
|
||||
# TypeFacts propagation (SSOT): preserve "stringish" tagging across Copy.
|
||||
# Many MIR patterns materialize a temp then Copy into a local; without this,
|
||||
# string equality/concat may incorrectly fall back to integer/handle ops.
|
||||
try:
|
||||
if resolver is not None and hasattr(resolver, "is_stringish") and resolver.is_stringish(src):
|
||||
if hasattr(resolver, "mark_string"):
|
||||
resolver.mark_string(dst)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user