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:
14
docs/examples/README.md
Normal file
14
docs/examples/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
# Examples: Plugin BoxRef Return (v2.2)
|
||||
|
||||
- File: `plugin_boxref_return.nyash`
|
||||
- Purpose: Demonstrates a plugin method returning a Box (BoxRef/Handle), and passing Box as an argument.
|
||||
|
||||
How to run (after full build):
|
||||
- Ensure `nyash.toml` includes FileBox with methods:
|
||||
- `copyFrom = { method_id = 7, args = [ { kind = "box", category = "plugin" } ] }`
|
||||
- `cloneSelf = { method_id = 8 }`
|
||||
- Build the plugin: `cd plugins/nyash-filebox-plugin && cargo build --release`
|
||||
- Run the example: `./target/release/nyash docs/examples/plugin_boxref_return.nyash`
|
||||
|
||||
Expected behavior:
|
||||
- Creates two FileBox instances (`f`, `g`), writes to `f`, copies content to `g` via `copyFrom`, then closes both.
|
||||
Reference in New Issue
Block a user