Files
hakorune/docs/CURRENT_TASK.md

170 lines
7.1 KiB
Markdown
Raw Normal View History

# 🎯 現在のタスク (2025-08-21 更新)
## 🎊 **Phase 9.75g-0 BID-FFI Plugin System - 完全完了!** 🎊
### ✅ **最終完了項目**2025-08-19
- ✅ plugin-tester型情報検証機能nyash.toml読み込み、型チェック
- ✅ plugin-tester重複メソッド名チェックNyash関数オーバーロード不採用対応
- ✅ Phase 9.75g-0完了ドキュメント作成200行包括的開発者ガイド
- ✅ セグフォルト修正HostVtable生存期間問題解決
- ✅ 型情報管理システム実装nyash.toml外部化、ハードコード完全削除
### 🚀 **革命的成果**
**NyashがプラグインでBox型を動的拡張可能に**
```nyash
// これが現実になった!
local file = new FileBox() // プラグイン提供
local db = new PostgreSQLBox() // 将来: プラグイン提供
local gpu = new CudaBox() // 将来: プラグイン提供
```
## ✅ **Phase 8.6 VM性能改善 - 完了!**
### 🎉 **VM性能改善 - 大成功報告!**
- **従来**: VMがインタープリターより0.9倍遅い(性能回帰)
- **🚀 最終達成**: **VM 50.94倍高速化達成!** 2025-08-20測定
- **期間**: 1日で完了2025-08-19
- **担当**: **Copilot**主導GitHub Issue #112, PR #113
### 📊 **技術詳細と成果**
- **MIR仕様**: **26命令**ExternCall含むで完全確定
- **VM実装**: 26命令MIR → バイトコード実行
- **改善内容**:
- Phase 1: デバッグ出力削除 → 18.84倍高速化
- Phase 3: メモリ最適化 → 22.80倍高速化
- 最終結果: **50.94倍高速化**
- **ベンチマーク結果** (2025-08-20):
- インタープリター: 78.66ms (1,271 ops/sec)
- VM: 1.54ms (64,761 ops/sec)
- **性能向上率: 50.94倍** 🚀
- **詳細**: `docs/予定/native-plan/issues/phase_8_6_vm_performance_improvement.md`
## 🚀 **Phase 9.78: LLVM PoC → Phase 9.8: BID Registry移行決定**
### **戦略的転換**2025-08-21
- ✅ LLVM PoC基盤完成MIR生成修正、モック実装
- ✅ Phase 9.8 BIDレジストリへの移行決定
- ✅ 重要な発見:**nyash.tomlが既に完璧な型情報を持っている**
- 🔄 新方針nyash.tomlを拡張してBID機能を統合
### **技術的成果**
- **モックLLVM統合**: `--backend llvm`オプション動作確認
- **アーキテクチャ実証**: MIR → LLVM変換パス確立
- **CI/CD対応**: 外部依存なしでテスト可能
### **革命的Windows戦略**
- **1回のIR生成で全OS対応**: Bitcodeキャッシュ戦略
- **PAL設計**: Platform Abstraction Layer構想
- **将来: APE単一バイナリ**: 小規模ツール向け
## 📦 **Phase 9.8: BID Registry + Code Generation - 開始!**
### **革命的発見nyash.toml活用戦略**2025-08-21
既存のnyash.tomlに必要な型情報がほぼ完備されていることが判明
#### 現在のnyash.toml
```toml
[plugins.FileBox.methods]
read = { args = [] }
write = { args = [{ from = "string", to = "bytes" }] }
open = { args = [
{ name = "path", from = "string", to = "string" },
{ name = "mode", from = "string", to = "string" }
] }
```
#### 拡張案Phase 9.8 + 9.9統合)
```toml
[plugins.FileBox.methods]
read = {
args = [],
returns = "string",
permissions = ["storage:read"],
effects = ["io"],
description = "Read file contents"
}
```
### **実装方針**
1. nyash.tomlを段階的に拡張後方互換維持
2. 拡張されたnyash.tomlから各バックエンド用コード生成
3. BID YAMLは大規模プラグイン用のオプションとして提供
### **🌟 重要な戦略的決定**
- **BID実装方針**: nyash.toml拡張を優先新規YAML不要
- **Phase 9.8 + 9.9統合**: FileBoxがVMで権限制御付きで動作することをゴールに
- **優先順位**: VM性能完了 → BIDレジストリ → 権限モデル → LLVM本格実装
### **最終目標**
- **インタープリター併用戦略**: 開発時(即時実行)+ 本番時AOT高性能
- **4バックエンド対応**: Interpreter/VM/WASM/AOT
- **プラグインエコシステム**: 無限拡張可能なBox型システム
## 📚 **参考資料**
### **BID-FFI Plugin System完全ドキュメント**
- [Phase 9.75g-0完了ドキュメント](Phase-9.75g-0-BID-FFI-Developer-Guide.md) - 包括的開発者ガイド
- [ffi-abi-specification.md](../説明書/reference/plugin-system/ffi-abi-specification.md) - BID-1技術仕様
- [plugin-tester使用例](../tools/plugin-tester/) - プラグイン診断ツール
### **VM性能改善関連**
- [phase_8_6_vm_performance_improvement.md](../予定/native-plan/issues/phase_8_6_vm_performance_improvement.md) - 詳細技術分析
- [copilot_issues.txt](../予定/native-plan/copilot_issues.txt) - 全体開発計画
## 🔧 **現在進行中ビルトインBoxプラグイン化プロジェクト**2025-08-18開始
### **目的**
- **ビルド時間短縮**: 3分 → 30秒以下
- **バイナリサイズ削減**: 最小構成で500KB以下
- **保守性向上**: 各プラグイン独立開発
### **対象Box13種類**
```
Phase 1: ネットワーク系HttpBox系、SocketBox
Phase 2: GUI系EguiBox、Canvas系、Web系
Phase 3: 特殊用途系AudioBox、QRBox、StreamBox等
```
### **進捗状況**
- ✅ プラグイン移行依頼書作成(`docs/plugin-migration-request.md`
- ✅ CopilotのBID変換コード抽出`src/bid-converter-copilot/`
- ✅ CopilotのBIDコード生成機能抽出`src/bid-codegen-from-copilot/`
- 🔄 HttpBoxプラグイン化作業をCopilotに依頼中
## 📋 **今日の重要決定事項2025年8月18日**
### **1. CopilotのPR管理戦略**
- ✅ 大規模変更1,735行を含むPR #117をrevert
- ✅ 必要な新規ファイルのみ選択的に抽出・保存
- ✅ cli.rs/runner.rsへの大幅変更は取り込まない方針
### **2. Copilot成果物の保存**
- **BID変換部分**: `src/bid-converter-copilot/` TLV、型変換
- **コード生成部分**: `src/bid-codegen-from-copilot/` (各言語向け生成)
- **活用方針**: 将来的にnyash2.toml実装時に参考資料として使用
### **3. 開発優先順位の明確化**
```
1. 🔄 ビルトインBoxプラグイン化HttpBox系から開始
2. → Phase 9.8 BIDレジストリnyash.toml拡張方式
3. → Phase 9.9 権限モデルFileBoxで実証
4. → Phase 10 LLVM本格実装将来検討
```
### **4. 選択的pull戦略の確立**
- **原則**: 必要な機能だけを取り込む
- **判断基準**: 現在の目標との関連性、複雑性、保守性
- **実践**: 新規ファイルは別フォルダに保存、既存ファイルの大幅変更は慎重に
---
**最終更新**: 2025年8月18日
**次回レビュー**: HttpBoxプラグイン完成時
**開発状況**: ビルトインBoxプラグイン化進行中
### 🎯 **次のアクション**
1. HttpBoxプラグイン化の完成待ちCopilot作業中
2. plugin-testerでの動作確認
3. 次のプラグイン化対象EguiBox等の準備