- 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>
Nyash Plugin System Documentation
🎯 Quick Start
For new developers: Start with BID-FFI v1 実装仕様書
📚 Documentation Index
🟢 Current & Accurate
-
bid-ffi-v1-actual-specification.md - 主要仕様書
- 実際に動作している実装をベースとした正確な仕様
- FileBoxプラグインで実証済み
- プラグイン開発者はここから始める
-
vm-plugin-integration.md - VM統合仕様書 🆕
- VMバックエンドとプラグインシステムの統合
- BoxRef型による統一アーキテクチャ
- パフォーマンス最適化とエラーハンドリング
-
plugin-tester.md - プラグイン診断ツール
- プラグインの動作確認とデバッグに使用
tools/plugin-testerツールの使用方法
-
filebox-bid-mapping.md - 参考資料
- FileBox APIとプラグイン実装の対応表
- API設計の参考として有用
🔄 Migration & Reference
- migration-guide.md - 移行ガイド
- 古いドキュメントから現在の実装への移行方法
- ドキュメント状況の整理
⚠️ Deprecated - 非推奨
- ffi-abi-specification.md - ❌ 理想案、未実装
- plugin-system.md - ❌ 将来構想
- nyash-toml-v2-spec.md - ⚠️ 部分的に古い
🚀 For Plugin Developers
1. Read the Specification
# 主要仕様書を読む
cat docs/説明書/reference/plugin-system/bid-ffi-v1-actual-specification.md
2. Study Working Example
# FileBoxプラグインを参考にする
cd plugins/nyash-filebox-plugin
cat src/lib.rs
3. Configure Your Plugin
# nyash.tomlで設定
cat nyash.toml # 実際の設定形式を確認
4. Test Your Plugin
# プラグインテスターで確認
cd tools/plugin-tester
cargo build --release
./target/release/plugin-tester check path/to/your/plugin.so
🔧 For Nyash Core Developers
Implementation Files
- plugin_loader_v2.rs - プラグインローダー実装
- nyash_toml_v2.rs - 設定パーサー
- tlv.rs - TLVエンコーダー/デコーダー
Next Steps
- Phase 3: MIR ExternCall → plugin system 接続実装
- Future: HTTP系ボックスのプラグイン化
📞 Support & Issues
- Working Examples:
plugins/nyash-filebox-plugin/ - Issues: Report at GitHub Issues
- Configuration:
nyash.tomlin project root
Status: Phase 2 Documentation Reorganization - Completed
Last Updated: 2025-08-20