diff --git a/docs/development/current/CURRENT_TASK.md b/docs/development/current/CURRENT_TASK.md index 777b597e..b2a7523e 100644 --- a/docs/development/current/CURRENT_TASK.md +++ b/docs/development/current/CURRENT_TASK.md @@ -1,22 +1,33 @@ -# 🎯 CURRENT TASK - 2025-08-29(Phase 10.1 キックオフ+リファクタ) +# 🎯 CURRENT TASK - 2025-08-29(Phase 10.1 革新的転換) -Phase 10.10 は完了(DoD確認済)。Phase 10.1 に入る前に、JIT Lower 周辺の分割リファクタを小刻みに完了させ、スモークを維持したまま移行します。 +Phase 10.10 は完了(DoD確認済)。**重大な発見**:プラグインシステムを活用したJIT→EXE実現の道を発見! + +## 🚀 革新的発見:プラグインBox統一化 + +### 核心的洞察 +- 既存のプラグインシステム(BID-FFI)がすでに**完全なC ABI**を持っている +- すべてのBoxをプラグイン化すれば、JIT→EXEが自然に実現可能 +- "Everything is Box" → "Everything is Plugin" への進化 ## ⏱️ 今日のサマリ -- 目的: 10.1 着手前のリファクタ(機能差分なし)を完了し、Week1を開始する。 -- スコープ: `src/jit/lower/core.rs / builder.rs` の整理のみ。挙動変更なし、ビルドとスモークは常にGreenを維持。 +- 発見: プラグインBox経由でのJIT→EXE実現可能性 +- 決定: Phase 10.1を「プラグインBox統一化」に変更 +- 移動: 旧Phase 10.1(Python統合)→ Phase 10.5へ ## 現在地(Done / Doing / Next) - ✅ Done(Phase 10.10) - GC Switchable Runtime(GcConfigBox)/ Unified Debug(DebugConfigBox) - JitPolicyBox(allowlist/presets)/ HostCallのRO運用(events連携) - CIスモーク導入(runtime/compile-events)/ 代表サンプル整備 -- 🔧 Doing(Refactor before 10.1) - - `extern_thunks.rs` 抽出済(builder → `src/jit/lower/extern_thunks.rs`) - - `cfg_dot.rs` 抽出済(core → `src/jit/lower/cfg_dot.rs`) -- ⏭️ Next(Phase 10.1 Kickoff) - - Week1開始(Python統合の環境・入り口整備) - - 10.10の回帰はCIスモークで継続監視 +- 🔧 Doing(Phase 10.1 新計画) + - ArrayBoxのプラグイン化PoC開始 + - JIT lowering層の統一設計 + - リファクタリング作業は継続(core_hostcall.rs完了) +- ⏭️ Next(Phase 10.1 実装) + - Week1: ArrayBoxプラグイン化と性能測定 + - Week2: 主要ビルトインBoxの移行 + - Week3: スタティックリンク基盤構築 + - Week4: EXE生成実証 ## リファクタリング計画(機能差分なし) 1) core_hostcall 分割(イベントlower+emit_host_call周辺) @@ -36,13 +47,17 @@ Phase 10.10 は完了(DoD確認済)。Phase 10.1 に入る前に、JIT Lower - ログ/イベント出力がリファクタ前と一致(体感差分なし) - `core.rs`/`builder.rs` の行数削減(目安 < 1000) -## Phase 10.1 キックオフ -- 参照: `docs/development/roadmap/phases/phase-10.1/` +## Phase 10.1 新計画:プラグインBox統一化 +- 参照: `docs/development/roadmap/phases/phase-10.1/` (新計画) +- 詳細: `docs/ideas/new-features/2025-08-28-jit-exe-via-plugin-unification.md` - Week1(概要) - - 10.1a: 計画再確認(I/O境界・GIL/FFI方針) - - 10.1b: 環境設定(最小ブリッジ・検証手順) - - 10.1c: パーサー統合の入口作成(Box-Firstで薄く) - - 10.1d: Core最小経路(Phase 1機能) + - ArrayBoxプラグイン実装とテスト + - JIT→Plugin呼び出しパス確立 + - パフォーマンス測定と最適化 + +## Phase 10.5(旧10.1):Python統合 +- 参照: `docs/development/roadmap/phases/phase-10.5/` (移動済み) +- ChatGPT5の当初計画を後段フェーズへ ## すぐ試せるコマンド(現状維持の確認) ```bash @@ -67,8 +82,10 @@ NYASH_JIT_EVENTS_COMPILE=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS_PATH=events.jso ``` ## 参考リンク -- Phase 10.1: `docs/development/roadmap/phases/phase-10.1/README.md` +- Phase 10.1(新): `docs/development/roadmap/phases/phase-10.1/README.md` - プラグインBox統一化 +- Phase 10.5(旧10.1): `docs/development/roadmap/phases/phase-10.5/README.md` - Python統合 - Phase 10.10: `docs/development/roadmap/phases/phase-10/phase_10_10/README.md` +- プラグインAPI: `src/bid/plugin_api.rs` - MIR命令セット: `docs/reference/mir/INSTRUCTION_SET.md` ## Checkpoint(再起動用メモ) diff --git a/docs/development/roadmap/phases/phase-10.1/README.md b/docs/development/roadmap/phases/phase-10.1/README.md index 211a59c1..5f420083 100644 --- a/docs/development/roadmap/phases/phase-10.1/README.md +++ b/docs/development/roadmap/phases/phase-10.1/README.md @@ -1,79 +1,93 @@ -# Phase 10.1 - PythonParserBox実装 +# Phase 10.1: JIT→EXE via Plugin Box Unification -見ただけで実装手順が分かる!順番通りに進めてください。 +## 🎯 革新的発見:すべてはプラグインになる -## 📂 サブフェーズ構成(順番に実行) +### 核心的洞察 +既存のプラグインシステム(BID-FFI)がすでに完全なC ABIを持っている。 +これを活用することで、JIT→EXE変換が現実的に可能。 -### 📋 Phase 10.1a - 計画と設計 -最初にここから!全体像を理解する。 -- 統合実装計画を読む -- エキスパート評価を確認 -- 5つの核心戦略を把握 +## 📊 フェーズ概要 -### ⚙️ Phase 10.1b - 環境設定 -開発環境を整える。 -- Python 3.11.9をインストール -- Cargo.tomlに依存関係追加 -- ディレクトリ構造準備 +### 目標 +- ビルトインBoxをプラグイン化してC ABI統一 +- JITから統一されたプラグインAPIを呼び出し +- スタティックリンクによるスタンドアロンEXE生成 -### 🔧 Phase 10.1c - パーサー統合 -CPythonパーサーをNyashに統合。 -- PythonParserBox実装 -- GIL管理の実装 -- JSON中間表現への変換 +### 背景 +``` +現在の構造: +- JIT → HostCall → Rustビルトイン(複雑) +- JIT → PluginInvoke → プラグインBox(C FFI) -### 💻 Phase 10.1d - Core実装 -基本的なPython構文の変換。 -- Phase 1機能(def/if/for/while) -- 意味論の正確な実装 -- 70%コンパイル率達成 +統一後: +- JIT → PluginInvoke → すべてのBox(統一!) +- EXE → PluginInvoke → スタティックリンクされたBox +``` -### 🔄 Phase 10.1e - トランスパイラー -Python→Nyashソース変換。 -- AST→Nyashソース生成 -- フォーマッター実装 -- コマンドラインツール +## 🚀 実装計画 -### 🧪 Phase 10.1f - テスト -Differential Testingでバグ発見。 -- CPython vs Nyash比較 -- ベンチマーク実行 -- バグ修正とCI統合 +### Week 1: ArrayBoxプラグイン化PoC +- ArrayBoxをプラグインとして再実装 +- JITからのプラグイン呼び出しテスト +- パフォーマンス測定(HostCall vs Plugin) -### 📚 Phase 10.1g - ドキュメント -使い方を文書化してリリース。 -- ユーザーガイド作成 -- APIリファレンス -- サンプルプロジェクト +### Week 2: 主要Box移行 +- StringBox、IntegerBox、BoolBoxのプラグイン化 +- JIT lowering層の統一(plugin_invoke経由) +- 既存HostCallとの共存メカニズム -## 🎯 各フェーズの目安時間 +### Week 3: 静的リンク基盤 +- プラグインの`.a`ライブラリビルド +- 最小ランタイム(nyash-runtime)設計 +- リンカースクリプト作成 -| フェーズ | 内容 | 目安時間 | -|---------|------|----------| -| 10.1a | 計画理解 | 2-3時間 | -| 10.1b | 環境設定 | 1-2時間 | -| 10.1c | パーサー統合 | 3-5日 | -| 10.1d | Core実装 | 1-2週間 | -| 10.1e | トランスパイラー | 3-5日 | -| 10.1f | テスト | 1週間 | -| 10.1g | ドキュメント | 3-5日 | +### Week 4: EXE生成実証 +- Hello Worldレベルのスタンドアロン実行 +- Linux/macOSでの動作確認 +- デバッグ情報とunwind対応 -**合計**: 約1ヶ月 +## 📁 ディレクトリ構造(予定) -## 🌟 最終目標 +``` +plugins/ +├── nyash-core-boxes/ # ビルトインBox群 +│ ├── nyash-array-plugin/ +│ ├── nyash-string-plugin/ +│ └── nyash-integer-plugin/ +├── nyash-runtime-minimal/ # 最小ランタイム +└── existing/ # 既存プラグイン + ├── nyash-file-plugin/ + └── nyash-net-plugin/ +``` -- **70%以上**の関数がコンパイル可能 -- **2-10倍**の性能向上 -- **10件以上**のNyashバグ発見 -- **実用的な**Python→Nyash移行ツール +## 🔗 関連資料 -## 💡 Tips +- [革新的アプローチ詳細](../../../ideas/new-features/2025-08-28-jit-exe-via-plugin-unification.md) +- [プラグインAPI仕様](../../../../reference/plugin-system/) +- [Phase 10.5: Python統合計画](../phase-10.5/) (旧10.1) +- [Phase 10.10: 前段階の成果](../phase-10/phase_10_10/) -- 各フェーズのREADME.mdを必ず読む -- 完了条件をチェックしながら進める -- テレメトリーで進捗を確認 -- 困ったらarchive/の資料も参照 +## ⚡ 成功指標 + +1. **技術的検証** + - ArrayBoxがプラグインとして動作 + - JITからの呼び出し成功 + - 性能劣化10%以内 + +2. **統合達成** + - 5つ以上のビルトインBoxがプラグイン化 + - JIT lowering層の完全統一 + +3. **EXE生成** + - スタンドアロン実行ファイル生成 + - 基本的なNyashプログラムの動作 + +## 🎉 期待される成果 + +- **Everything is Plugin** - 新たな設計哲学の確立 +- 自己ホスティングへの現実的な道筋 +- プラグインエコシステムの拡大可能性 --- -**さあ、Phase 10.1a から始めましょう!** \ No newline at end of file +*"Everything is Box → Everything is Plugin → Everything is Possible"* \ No newline at end of file diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/README.md b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/chatgpt5_original_idea.txt b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/chatgpt5_original_idea.txt rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/python_parser_box_design.txt b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/python_parser_box_design.txt rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/summary_2025_08_27.txt b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/archive/summary_2025_08_27.txt rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/expert_feedback_gemini_codex.txt b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/expert_feedback_gemini_codex.txt rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1a_planning/pythonparser_integrated_plan_summary.txt b/docs/development/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1a_planning/pythonparser_integrated_plan_summary.txt rename to docs/development/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1b_setup/README.md b/docs/development/roadmap/phases/phase-10.5/10.1b_setup/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1b_setup/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1b_setup/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/README.md b/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/builtin_box_implementation_flow.txt b/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/builtin_box_implementation_flow.txt rename to docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/python_parser_box_implementation_plan.txt b/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1c_parser_integration/python_parser_box_implementation_plan.txt rename to docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1d_core_implementation/README.md b/docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1d_core_implementation/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1d_core_implementation/python_implementation_roadmap.txt b/docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1d_core_implementation/python_implementation_roadmap.txt rename to docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1e_transpiler/README.md b/docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1e_transpiler/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1e_transpiler/python_to_nyash_transpiler.txt b/docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1e_transpiler/python_to_nyash_transpiler.txt rename to docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt diff --git a/docs/development/roadmap/phases/phase-10.1/10.1f_testing/README.md b/docs/development/roadmap/phases/phase-10.5/10.1f_testing/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1f_testing/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1f_testing/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/10.1g_documentation/README.md b/docs/development/roadmap/phases/phase-10.5/10.1g_documentation/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/10.1g_documentation/README.md rename to docs/development/roadmap/phases/phase-10.5/10.1g_documentation/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/README.md b/docs/development/roadmap/phases/phase-10.5/README.md new file mode 100644 index 00000000..a986df55 --- /dev/null +++ b/docs/development/roadmap/phases/phase-10.5/README.md @@ -0,0 +1,80 @@ +# Phase 10.5 - PythonParserBox実装 +*(旧Phase 10.1 - プラグインBox統一化の発見により番号変更)* + +見ただけで実装手順が分かる!順番通りに進めてください。 + +## 📂 サブフェーズ構成(順番に実行) + +### 📋 Phase 10.1a - 計画と設計 +最初にここから!全体像を理解する。 +- 統合実装計画を読む +- エキスパート評価を確認 +- 5つの核心戦略を把握 + +### ⚙️ Phase 10.1b - 環境設定 +開発環境を整える。 +- Python 3.11.9をインストール +- Cargo.tomlに依存関係追加 +- ディレクトリ構造準備 + +### 🔧 Phase 10.1c - パーサー統合 +CPythonパーサーをNyashに統合。 +- PythonParserBox実装 +- GIL管理の実装 +- JSON中間表現への変換 + +### 💻 Phase 10.1d - Core実装 +基本的なPython構文の変換。 +- Phase 1機能(def/if/for/while) +- 意味論の正確な実装 +- 70%コンパイル率達成 + +### 🔄 Phase 10.1e - トランスパイラー +Python→Nyashソース変換。 +- AST→Nyashソース生成 +- フォーマッター実装 +- コマンドラインツール + +### 🧪 Phase 10.1f - テスト +Differential Testingでバグ発見。 +- CPython vs Nyash比較 +- ベンチマーク実行 +- バグ修正とCI統合 + +### 📚 Phase 10.1g - ドキュメント +使い方を文書化してリリース。 +- ユーザーガイド作成 +- APIリファレンス +- サンプルプロジェクト + +## 🎯 各フェーズの目安時間 + +| フェーズ | 内容 | 目安時間 | +|---------|------|----------| +| 10.1a | 計画理解 | 2-3時間 | +| 10.1b | 環境設定 | 1-2時間 | +| 10.1c | パーサー統合 | 3-5日 | +| 10.1d | Core実装 | 1-2週間 | +| 10.1e | トランスパイラー | 3-5日 | +| 10.1f | テスト | 1週間 | +| 10.1g | ドキュメント | 3-5日 | + +**合計**: 約1ヶ月 + +## 🌟 最終目標 + +- **70%以上**の関数がコンパイル可能 +- **2-10倍**の性能向上 +- **10件以上**のNyashバグ発見 +- **実用的な**Python→Nyash移行ツール + +## 💡 Tips + +- 各フェーズのREADME.mdを必ず読む +- 完了条件をチェックしながら進める +- テレメトリーで進捗を確認 +- 困ったらarchive/の資料も参照 + +--- + +**さあ、Phase 10.1a から始めましょう!** \ No newline at end of file diff --git a/docs/development/roadmap/phases/phase-10.1/chatgpt5_integrated_plan.md b/docs/development/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/chatgpt5_integrated_plan.md rename to docs/development/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md