Files
hakorune/docs/reference/plugin-system
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
..

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 - 非推奨

🚀 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

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.toml in project root

Status: Phase 2 Documentation Reorganization - Completed
Last Updated: 2025-08-20