主要な変更: - MIR Core-13命令セット確定(Load/Store削除の革命的設計) - Const, BinOp, Compare(値・計算) - Jump, Branch, Return, Phi(制御) - Call, BoxCall, ExternCall(呼び出し) - TypeOp, Safepoint, Barrier(メタ) - Phase 12.7糖衣構文ドキュメント整理(超圧縮重視、可逆変換保証) - MIRビルダーのモジュール分割完了 - vtableテストスイート拡充 - AI協調開発ツール追加(並列リファクタリング支援) 詳細: - src/mir/instruction_introspection.rs: core13_instruction_names()追加 - MIRビルダー分割: decls.rs, exprs_*.rs, fields.rs - plugin_loader_v2: errors.rs, host_bridge.rs分離 - 論文用データ: mir13-final.md作成 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.4 KiB
2.4 KiB
MIRリファクタリング対象ファイル
🚨 緊急度高:大きなファイル(900行以上)
1. mir/verification.rs (965行)
分割案:
mir/verification/basic.rs- 基本検証mir/verification/types.rs- 型検証mir/verification/control_flow.rs- 制御フロー検証mir/verification/ownership.rs- 所有権検証
2. mir/builder.rs (930行)
状態: ChatGPT5が作業中 分割案:
mir/builder/exprs.rs- 式のビルド(一部完了)mir/builder/stmts.rs- 文のビルド(一部完了)mir/builder/decls.rs- 宣言のビルド(一部完了)mir/builder/control_flow.rs- 制御構造
3. mir/instruction.rs (896行)
状態: MIR13固定化で大幅変更予定 現在: 20命令(ChatGPT5設計)→ 目標: 13命令 作業内容:
- 不要な命令の削除
- BoxCall統一(ArrayGet/Set, RefNew/Get/Set等)
- TypeOp統一(TypeCheck, Cast)
4. mir/optimizer.rs (875行)
分割案:
mir/optimizer/constant_folding.rsmir/optimizer/dead_code.rsmir/optimizer/inline.rsmir/optimizer/type_inference.rs
📊 MIR命令削減マッピング(20→13)
削除予定の命令
ArrayGet, ArraySet → BoxCall
RefNew, RefGet, RefSet → BoxCall
WeakNew, WeakGet → BoxCall
MapGetProperty, MapSetProperty → BoxCall
TypeCheck, Cast → TypeOp
PluginInvoke → BoxCall(プラグイン統合)
Copy → Load + Store
Debug, Print → ExternCall
Nop → 削除
Throw, Catch → ExternCall
Safepoint → 削除(VMレベルで処理)
最終的な13-14命令
- Const - 定数
- Load - 読み込み
- Store - 書き込み
- BinOp - 二項演算
- UnaryOp - 単項演算
- Compare - 比較
- Branch - 条件分岐
- Jump - 無条件ジャンプ
- Return - 戻り値
- Call - 関数呼び出し
- BoxCall - Box操作統一
- TypeOp - 型操作統一
- Phi - SSA合流
- ExternCall - 外部呼び出し(オプション)
🚀 実行コマンド例
# 非同期でverification.rsのリファクタリング
./tools/codex-async-notify.sh "Refactor src/mir/verification.rs into smaller modules (basic, types, control_flow, ownership)"
# optimizer.rsの分割
./tools/codex-async-notify.sh "Split src/mir/optimizer.rs into separate optimization pass modules"
# MIR命令削減の実装
./tools/codex-async-notify.sh "Reduce MIR instructions from 57 to 13-14 by unifying with BoxCall and TypeOp"