From a160c186fd924ac313ed6b17312965a831c10fd5 Mon Sep 17 00:00:00 2001 From: Selfhosting Dev Date: Wed, 24 Sep 2025 04:55:55 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Phase=2015.5=20Core=20Box=20Unification?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=86=E6=97=A2=E5=AD=98=E3=82=B7=E3=82=B9?= =?UTF-8?q?=E3=83=86=E3=83=A0=E7=99=BA=E8=A6=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CLAUDE.md | 25 ++++++++++--------------- CURRENT_TASK.md | 41 ++++++++++++++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 80c1ddf3..7058af33 100644 --- a/CLAUDE.md +++ b/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 diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 7c279623..779d8474 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -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行)