docs: Phase 15.5 Core Box Unification更新&既存システム発見
Phase 15.5計画と実装状況を更新: - CLAUDE.md: Phase 15.5を最新アップデートに追加 - CURRENT_TASK.md: Core Box Unificationを現在のタスクに設定 - 重要な発見: NYASH_USE_PLUGIN_BUILTINS=1が既に完全実装済み - 環境変数制御システムが src/box_factory/mod.rs に存在 - 新規実装不要、既存機能の活用が鍵と判明 ChatGPTの革命的提案とTask先生の詳細分析により、 3層→2層アーキテクチャ移行の道筋が明確化 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
25
CLAUDE.md
25
CLAUDE.md
@ -240,23 +240,18 @@ NYASH_DISABLE_PLUGINS=1 ./target/release/nyash --backend llvm program.nyash
|
||||
- `NYASH_USING_PROFILE=dev|smoke|debug` でプロファイル化
|
||||
- または `--using-mode=dev` CLIフラグで統合
|
||||
|
||||
## 📝 Update (2025-09-24) 🚀 MIR Call命令統一Phase 3.1-3.3完了!
|
||||
- ✅ **Phase 1-2完了** - MIR基盤構築と統一メソッド実装
|
||||
- **定義外部化**: `src/mir/definitions/call_unified.rs`(297行)
|
||||
- **統一メソッド**: `emit_unified_call()`+便利メソッド3種実装済み
|
||||
## 📝 Update (2025-09-24) 🚀 Phase 15.5 Core Box Unification計画策定!
|
||||
- ✅ **Phase 15.5計画完成** - コアBox削除→2層構造への革命
|
||||
- **3層→2層**: コアBox(nyrt内蔵)削除、プラグイン/ユーザーBoxのみに
|
||||
- **削減目標**: 約700行(nyrt実装600行 + 特別扱い100行)
|
||||
- **既存システム発見**: `NYASH_USE_PLUGIN_BUILTINS=1`と`NYASH_PLUGIN_OVERRIDE_TYPES`が完全実装済み
|
||||
- **実装戦略**: DLL動作確認→Nyashコード化の段階的移行
|
||||
- **詳細ドキュメント**: [phase-15.5-core-box-unification.md](docs/development/roadmap/phases/phase-15/phase-15.5-core-box-unification.md)
|
||||
- ✅ **MIR Call命令統一Phase 3.1-3.3完了**
|
||||
- **統一メソッド**: `emit_unified_call()`実装済み
|
||||
- **環境変数制御**: `NYASH_MIR_UNIFIED_CALL=1`で切り替え可能
|
||||
- ✅ **Phase 3.1-3.3完了** - 基本関数とBoxCallの統一Call移行成功!
|
||||
- **indirect call**: `build_indirect_call_expression`で`CallTarget::Value`使用
|
||||
- **print関数**: `call_global print()`として統一(ExternCall→Callee::Global)
|
||||
- **function call**: `build_function_call`で`CallTarget::Global`使用
|
||||
- **BoxCall統一**: `emit_box_or_plugin_call`で`CallTarget::Method`使用
|
||||
- **実行確認**: `env NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --dump-mir`で動作確認済み
|
||||
- 📊 **マスタープラン進捗** - 4つの実行器で完全統一へ
|
||||
- **削減見込み**: 7,372行 → 5,468行(**26%削減**)
|
||||
- **処理パターン**: 24 → 4(**83%削減**)
|
||||
- **Phase 15寄与**: 全体目標の約7%(重要な柱)
|
||||
- **詳細ドキュメント**: [mir-call-unification-master-plan.md](docs/development/roadmap/phases/phase-15/mir-call-unification-master-plan.md)
|
||||
- 🎯 **6種類→1種類**: Call/BoxCall/PluginInvoke/ExternCall/NewBox/NewClosure → **MirCall**
|
||||
- **6種類→1種類**: Call/BoxCall/PluginInvoke/ExternCall/NewBox/NewClosure → **MirCall**
|
||||
|
||||
## 🧪 テストスクリプト参考集(既存のを活用しよう!)
|
||||
```bash
|
||||
|
||||
@ -1,18 +1,41 @@
|
||||
# Current Task — MIR Architecture Revolution (Design Innovation)
|
||||
# Current Task — Phase 15.5 Core Box Unification (3層→2層革命)
|
||||
|
||||
Updated: 2025‑09‑24
|
||||
|
||||
## 🎯 **現在進行中: Phase 15.5 JSON v0中心化・統一Call基盤革命**
|
||||
**セルフホスティング前の基盤アーキテクチャ大改革**
|
||||
## 🎯 **現在進行中: Phase 15.5 Core Box Unification**
|
||||
**コアBox(nyrt内蔵)削除による3層→2層アーキテクチャ革命**
|
||||
|
||||
📋 **詳細ドキュメント**: [Phase 15.5 README](docs/development/roadmap/phases/phase-15.5/README.md)
|
||||
- 📊 **進捗追跡**: [実装状況](docs/development/roadmap/phases/phase-15.5/implementation-status.md)
|
||||
- 🛡️ **戦略**: [段階移行計画](docs/development/roadmap/phases/phase-15.5/migration-phases.md) | [リスク分析](docs/development/roadmap/phases/phase-15.5/risk-analysis.md)
|
||||
📋 **詳細ドキュメント**: [Phase 15.5 Core Box Unification](docs/development/roadmap/phases/phase-15/phase-15.5-core-box-unification.md)
|
||||
- 📊 **削減目標**: 約700行(nyrt実装600行 + 特別扱い100行)
|
||||
- 🛡️ **戦略**: DLL動作確認 → Nyashコード化の段階的移行
|
||||
|
||||
### MIR Call命令統一実装 (Phase A進行中)
|
||||
**ChatGPT5 Pro A++設計による6種類Call命令→1つのMirCallへの統一作業**
|
||||
### ✅ **重要な発見:既存システムが完全実装済み!**
|
||||
- **環境変数制御**: `NYASH_USE_PLUGIN_BUILTINS=1` + `NYASH_PLUGIN_OVERRIDE_TYPES="StringBox,IntegerBox"`
|
||||
- **実装箇所**: `src/box_factory/mod.rs:119-143`に完全な優先度制御システム
|
||||
- **結論**: 新規実装不要、既存機能の活用が鍵
|
||||
|
||||
### ✅ **Phase 1-2完了済み**(2025-09-24)
|
||||
### 実装フェーズ計画
|
||||
#### Phase A: プラグイン版動作確認(1週目)
|
||||
- [ ] 環境変数制御のドキュメント作成
|
||||
- [ ] プラグイン版StringBox/IntegerBox/ArrayBox/MapBoxの動作テスト
|
||||
- [ ] パフォーマンス測定(FFIオーバーヘッド確認)
|
||||
|
||||
#### Phase B: MIRビルダー統一(2週目)
|
||||
- [ ] `src/mir/builder.rs`の特別扱い削除(行407-424)
|
||||
- [ ] `src/mir/builder/utils.rs`の型推論削除(行134-156)
|
||||
- [ ] すべてのBoxを`MirType::Box(name)`として統一
|
||||
|
||||
#### Phase C: nyrt実装削除(3週目)
|
||||
- [ ] `crates/nyrt/src/lib.rs`からコアBox関数削除(約300行)
|
||||
- [ ] `crates/nyrt/src/plugin/array.rs`削除(143行)
|
||||
- [ ] `crates/nyrt/src/plugin/string.rs`削除(173行)
|
||||
|
||||
#### Phase D: Nyashコード化(将来)
|
||||
- [ ] `apps/lib/core_boxes/`にNyash実装作成
|
||||
- [ ] StringBox, IntegerBox, ArrayBox, MapBoxのNyash版実装
|
||||
- [ ] 静的リンクによる性能最適化
|
||||
|
||||
### ✅ **MIR Call命令統一実装完了済み**(2025-09-24)
|
||||
- [x] **MIR定義の外部化とモジュール化**
|
||||
- `src/mir/definitions/`ディレクトリ作成
|
||||
- `call_unified.rs`: MirCall/CallFlags/Callee統一定義(297行)
|
||||
|
||||
Reference in New Issue
Block a user