nyash-codex
e46034c6ea
feat(llvm): Phase 134-A - mir_call.py unified 設計完成
681行の giant ファイルを機能別に分割し、箱化モジュール化を達成。
Changes:
- NEW: src/llvm_py/mir_call_compat.py (120 lines)
- JSON v0/v1 互換層を一元管理
- normalize_callee(), detect_format_version()
- NEW: src/llvm_py/instructions/mir_call/ (7 files)
- __init__.py: Canonical Dispatcher (lower_mir_call)
- global_call.py: Global関数呼び出し (90 lines)
- method_call.py: Boxメソッド呼び出し (175 lines)
- constructor_call.py: Boxコンストラクタ (122 lines)
- closure_call.py: Closure生成 (87 lines)
- value_call.py: 動的関数値呼び出し (112 lines)
- extern_call.py: 外部C ABI呼び出し (135 lines)
- ARCHIVE: mir_call.py → mir_call_legacy.py
Technical Achievements:
✅ mir_call.py: 681行 → 分割(各 80-175行、責務 明確)
✅ Phase 133 ConsoleLlvmBridge パターンを継承
✅ NYASH_MIR_UNIFIED_CALL フラグ完全廃止
✅ legacy dispatcher 削除(NotImplementedError 根治)
✅ JSON v0/v1 互換層を mir_call_compat.py に一元化
✅ Fail-Fast 原則確立
✅ テスト: 全 mir_call 関連テスト PASS
Design Principles Inherited:
- Phase 133 ConsoleLlvmBridge 箱化パターン継承
- Each module has clear responsibility
- mir_call_compat.py で Phase 124+ v0削除が容易
- テスト分割で保守性大幅向上
Next Phase:
Phase 134-B - StringBox bridge 分離(boxcall.py:130-282)
Phase 134-C - CollectionBox bridge 分離(boxcall.py:325-375)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 12:06:34 +09:00
..
2025-12-03 13:42:05 +09:00
2025-09-17 10:58:12 +09:00
2025-09-17 10:58:12 +09:00
2025-09-17 10:58:12 +09:00
2025-12-04 10:52:10 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-03 13:59:06 +09:00
2025-12-02 21:52:18 +09:00
2025-12-04 06:26:59 +09:00
2025-12-04 06:02:03 +09:00
2025-12-03 14:33:04 +09:00
2025-12-04 06:02:03 +09:00
2025-11-27 17:05:46 +09:00
2025-11-27 17:05:46 +09:00
2025-11-29 15:57:14 +09:00
2025-11-29 15:57:14 +09:00
2025-11-29 15:57:14 +09:00
2025-11-30 08:54:18 +09:00
2025-12-02 09:45:54 +09:00
2025-11-30 10:10:45 +09:00
2025-12-02 10:19:07 +09:00
2025-12-02 11:16:01 +09:00
2025-12-02 12:36:28 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 20:18:13 +09:00
2025-12-02 20:18:13 +09:00
2025-12-02 20:18:13 +09:00
2025-12-02 20:30:22 +09:00
2025-12-02 20:18:13 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 19:37:01 +09:00
2025-12-02 21:09:15 +09:00
2025-12-02 21:09:15 +09:00
2025-12-03 18:16:49 +09:00
2025-12-03 19:37:32 +09:00
2025-12-03 19:37:32 +09:00
2025-12-03 19:22:55 +09:00
2025-12-03 21:32:14 +09:00
2025-12-03 21:12:37 +09:00
2025-12-03 22:03:16 +09:00
2025-12-04 03:35:25 +09:00
2025-12-04 03:58:02 +09:00
2025-12-04 04:30:30 +09:00
2025-12-04 04:30:30 +09:00
2025-12-04 04:42:32 +09:00
2025-12-04 06:26:59 +09:00
2025-12-04 04:42:32 +09:00
2025-12-04 04:42:32 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:17:10 +09:00
2025-12-04 06:24:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 06:02:03 +09:00
2025-12-04 11:04:29 +09:00
2025-12-04 10:57:13 +09:00
2025-12-04 11:28:55 +09:00
2025-12-04 11:44:55 +09:00
2025-12-04 12:06:34 +09:00
2025-11-23 05:53:27 +09:00
2025-12-04 03:58:02 +09:00
2025-12-04 04:30:30 +09:00
2025-11-21 07:00:05 +09:00
2025-11-21 08:03:03 +09:00
2025-11-21 08:03:03 +09:00
2025-11-20 17:10:03 +09:00
2025-11-20 17:10:03 +09:00
2025-11-20 17:10:03 +09:00