- 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>
15 lines
688 B
Markdown
15 lines
688 B
Markdown
# 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.
|