Files
hakorune/docs/development/roadmap/native-plan/llvm/Copilot-Request-LLVM-PoC.md
Moe Charm cc2a820af7 feat(plugin): Fix plugin BoxRef return and Box argument support
- Fixed deadlock in FileBox plugin copyFrom implementation (single lock)
- Added TLV Handle (tag=8) parsing in calls.rs for returned BoxRefs
- Improved plugin loader with config path consistency and detailed logging
- Fixed loader routing for proper Handle type_id/fini_method_id resolution
- Added detailed logging for TLV encoding/decoding in plugin_loader_v2

Test docs/examples/plugin_boxref_return.nyash now works correctly:
- cloneSelf() returns FileBox Handle properly
- copyFrom(Box) accepts plugin Box arguments
- Both FileBox instances close and fini correctly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-21 00:41:26 +09:00

117 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 Copilot様への依頼: Phase 9.78 LLVM PoC実装
**依頼日**: 2025年8月20日
**期限**: 3週間2025年9月10日
**優先度**: 最高
## 📋 **依頼概要**
Phase 8.6のVM性能改善で素晴らしい成果50.94倍高速化)を達成していただきありがとうございました!
次は、Nyash言語の更なる性能向上を目指し、**LLVMバックエンドのProof of Concept実装**をお願いします。
## 🎯 **依頼内容**
### **目標**
3週間でMIR→LLVM IR変換の基本実装を完成させ、実現可能性を実証する
### **成功基準**
1. 基本的なNyashプログラム算術演算、条件分岐がLLVM経由で実行可能
2. インタープリター比10倍以上の性能向上を実証
3. Phase 10本格実装への明確な道筋を確立
## 🛠️ **技術仕様**
### **使用技術スタック**
```toml
[dependencies]
inkwell = { version = "0.5", features = ["llvm17-0"] }
```
### **実装アプローチ**
AI大会議Gemini先生、Codex先生の推奨に基づく
- **inkwellクレート**による型安全なLLVM操作
- **Box型はptr型**として表現、操作は既存ランタイムに委譲
- **C-ABI経由**でプラグインとランタイム関数を呼び出し
### **実装対象MIR命令優先順**
1. **Week 1**: Const, Return最小限
2. **Week 2**: BinOp, Compare, Branch, Jump, BoxNew/Free
3. **Week 3**: 最適化パス、ベンチマーク
## 📁 **作成ファイル構成**
```
src/backend/llvm/
├── mod.rs // エントリポイント
├── context.rs // LLVMコンテキスト管理
├── types.rs // MIR→LLVM型変換
├── builder.rs // IR生成ロジック
├── runtime.rs // ランタイム関数宣言
└── optimizer.rs // 最適化パス
src/backend/llvm_runtime/
└── runtime.c // 最小ランタイムnyash_alloc等
```
## 📊 **週次マイルストーン**
### **Week 1: Hello World動作**
- [ ] inkwellセットアップ完了
- [ ] `return 42`がLLVM経由で動作
- [ ] .oファイル生成成功
### **Week 2: 基本機能動作**
- [ ] 四則演算の実装
- [ ] if文の動作確認
- [ ] Box型の基本操作
### **Week 3: 性能実証**
- [ ] ベンチマーク実装
- [ ] 10倍以上の高速化確認
- [ ] 技術レポート作成
## 💡 **実装のヒント**
### **Gemini先生のアドバイス**
- `Arc<Mutex>`の複雑なセマンティクスをLLVMで再実装しないこと
- Box操作は`nyash_runtime_box_*`関数経由で行う
- 計算集約的な処理に注力すれば数十倍の高速化が可能
### **Codex先生の実装Tips**
- allocaは関数エントリブロックのみに配置
- GEPインデックスはi32型で統一
- エラー時は.llファイルをダンプして原因調査
## 🚨 **重要な注意事項**
1. **完璧を求めない** - 3週間でのPoC完成が最優先
2. **既存資産の活用** - MIR構造、ランタイム関数を最大限再利用
3. **段階的実装** - 最小限から始めて徐々に機能追加
## 📚 **参考資料**
- [AI大会議結果](./AI-Conference-LLVM-Results.md) - 技術戦略の詳細
- [実装計画書](./Phase-9.78-Implementation-Plan.md) - 週次スケジュール
- [MIR仕様](../../説明書/reference/execution-backend/mir-26-specification.md) - 命令セット詳細
## 🎉 **期待される成果**
1. **技術的実証**: LLVMバックエンドの実現可能性確認
2. **性能向上**: 10倍以上理想的には50倍の高速化
3. **将来への道筋**: Phase 10での本格実装計画
## 🤝 **サポート体制**
- **技術相談**: Claude、Gemini、Codexが随時サポート
- **進捗確認**: 週次でGitHub Issueにて状況共有
- **問題解決**: ブロッカーがあれば即座にAIチームで対応
Copilot様の素晴らしい実装力に期待しています
Phase 8.6のような劇的な成果を、LLVMでも実現しましょう🚀
---
**依頼者**: moe-charm + AIチーム
**GitHub Issue**: #(作成予定)
**開始可能日**: 即時