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>
This commit is contained in:
@ -0,0 +1,91 @@
|
||||
# 🪟 Windows同時作戦の現状まとめ
|
||||
|
||||
**更新日**: 2025年8月20日
|
||||
|
||||
## 📊 **現在の状況**
|
||||
|
||||
### **✅ 完了したこと**
|
||||
1. **AI大会議実施**
|
||||
- Gemini先生: 4つの革命的戦略提案
|
||||
- Codex先生: 技術的実装方法の詳細化
|
||||
|
||||
2. **戦略文書作成**
|
||||
- Revolutionary-Windows-Strategy.md: 統合戦略
|
||||
- APE-Magic-Explained.md: 単一バイナリ技術解説
|
||||
- Practical-Distribution-Strategy.md: 現実的配布方法
|
||||
|
||||
3. **技術的方針決定**
|
||||
- **核心**: LLVM IRの中立性を活用した同時生成
|
||||
- **方法**: Bitcodeキャッシュ + 並列ターゲット生成
|
||||
|
||||
### **🚀 実装計画**
|
||||
|
||||
#### **即効性のある解決策(Week 1-3)**
|
||||
```bash
|
||||
# Linux + Windows同時生成
|
||||
nyashc --targets linux,windows-gnu program.nyash
|
||||
|
||||
# 出力
|
||||
dist/linux/nyash # Linux版(musl静的)
|
||||
dist/windows/nyash.exe # Windows版(mingw)
|
||||
```
|
||||
|
||||
**実装手順**:
|
||||
1. Week 1: Linux版LLVM実装(進行中)
|
||||
2. Week 2: Bitcodeキャッシュ機構追加
|
||||
3. Week 3: Windows-gnu同時生成
|
||||
|
||||
#### **中期計画(1-3ヶ月)**
|
||||
- 全プラットフォーム同時対応
|
||||
- PAL (Platform Abstraction Layer) 完成
|
||||
- 最適化とテスト
|
||||
|
||||
## 🛠️ **技術的アプローチ**
|
||||
|
||||
### **1. ワンパス・マルチターゲット**
|
||||
```rust
|
||||
// 1回のIR生成
|
||||
let bitcode = module.write_bitcode_to_memory();
|
||||
|
||||
// 並列で各OS向け生成
|
||||
["linux", "windows-gnu", "macos"].par_iter()
|
||||
.map(|target| generate_for_target(bitcode.clone(), target))
|
||||
.collect()
|
||||
```
|
||||
|
||||
### **2. Windows特化戦略**
|
||||
- **短期**: mingw-gnu(クロスコンパイル簡単)
|
||||
- **長期**: msvc対応(xwin使用)
|
||||
- **配布**: 916KBの小さな実行ファイル
|
||||
|
||||
### **3. 段階的実装**
|
||||
| Phase | 期間 | 成果 |
|
||||
|-------|------|------|
|
||||
| 現在 | LLVM PoC | Linux単体 |
|
||||
| Week 3 | 同時生成 | Linux + Windows |
|
||||
| Month 1 | 全OS | +macOS |
|
||||
| Month 3 | 最適化 | PAL完成 |
|
||||
|
||||
## 💡 **重要ポイント**
|
||||
|
||||
### **すぐに実現可能なこと**
|
||||
- ✅ Linux/Windows同時ビルド(mingw使用)
|
||||
- ✅ 1つのコマンドで両OS対応
|
||||
- ✅ Bitcodeレベルでの共有
|
||||
|
||||
### **将来の野望**
|
||||
- 🎯 全OS同時生成
|
||||
- 🎯 APE単一バイナリ(小ツール用)
|
||||
- 🎯 完全なクロスプラットフォーム
|
||||
|
||||
## 🎉 **結論**
|
||||
|
||||
**Windows同時作戦は技術的に実現可能!**
|
||||
|
||||
1. **LLVM IRの中立性**を最大活用
|
||||
2. **Bitcodeキャッシュ**で効率化
|
||||
3. **mingw**で即座にWindows対応
|
||||
|
||||
Copilotが基本LLVM実装を進めている間に、我々は革命的な同時生成戦略を準備完了!
|
||||
|
||||
**Everything is Box、Every Platform is Target!**🎯✨
|
||||
Reference in New Issue
Block a user