Phase番号再編成: プラグインBox統一化を10.1に昇格

- 革新的発見: 既存プラグインシステム(C ABI)でJIT→EXE実現可能
- Phase 10.1: プラグインBox統一化(新規)
- Phase 10.5: Python統合(旧10.1を移動)
- CURRENT_TASKを更新して新計画を反映

Everything is Box → Everything is Plugin への進化
This commit is contained in:
Moe Charm
2025-08-29 03:32:50 +09:00
parent 4167491e92
commit 6fdc52457e
20 changed files with 188 additions and 77 deletions

View File

@ -1,22 +1,33 @@
# 🎯 CURRENT TASK - 2025-08-29Phase 10.1 キックオフ+リファクタ
# 🎯 CURRENT TASK - 2025-08-29Phase 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.1Python統合→ Phase 10.5へ
## 現在地Done / Doing / Next
- ✅ DonePhase 10.10
- GC Switchable RuntimeGcConfigBox/ Unified DebugDebugConfigBox
- JitPolicyBoxallowlist/presets/ HostCallのRO運用events連携
- CIスモーク導入runtime/compile-events/ 代表サンプル整備
- 🔧 DoingRefactor before 10.1
- `extern_thunks.rs` 抽出済builder → `src/jit/lower/extern_thunks.rs`
- `cfg_dot.rs` 抽出済core → `src/jit/lower/cfg_dot.rs`
- ⏭️ NextPhase 10.1 Kickoff
- Week1開始Python統合の環境・入り口整備
- 10.10の回帰はCIスモークで継続監視
- 🔧 DoingPhase 10.1 新計画
- ArrayBoxのプラグイン化PoC開始
- JIT lowering層の統一設計
- リファクタリング作業は継続core_hostcall.rs完了
- ⏭️ NextPhase 10.1 実装
- Week1: ArrayBoxプラグイン化と性能測定
- Week2: 主要ビルトインBoxの移行
- Week3: スタティックリンク基盤構築
- Week4: EXE生成実証
## リファクタリング計画(機能差分なし)
1) core_hostcall 分割イベントloweremit_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プラグイン実装とテスト
- JITPlugin呼び出しパス確立
- パフォーマンス測定と最適化
## Phase 10.5旧10.1Python統合
- 参照: `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再起動用メモ

View File

@ -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 → プラグインBoxC 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 から始めましょう!**
*"Everything is Box → Everything is Plugin → Everything is Possible"*

View File

@ -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 から始めましょう!**