- 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>
688 B
688 B
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.tomlincludes 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 tof, copies content togviacopyFrom, then closes both.