Commit Graph

3 Commits

Author SHA1 Message Date
a5ff3ecafe feat(phase-9.75g-0): Implement BID-FFI Day 3 - Box type integration
- Implement BID Box Bridge interface for Nyash Box <-> BID Handle conversion
- Add StringBox BID bridge implementation with handle/TLV support
- Add IntegerBox BID bridge implementation with handle/TLV support
- Implement BoxRegistry for managing Box instances and handles
- Add comprehensive tests for StringBox/IntegerBox BID round-trip
- Extract helper functions for string/integer value extraction

Everything is Box philosophy shines through unified BID integration! 🎉

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-17 19:54:57 +09:00
ec99a97957 feat(phase-9.75g-0): Implement BID-FFI Day 2 - Metadata API and plugin lifecycle
BID-1 Implementation Progress (Day 2 Complete\! 🎉):

Metadata API Implementation:
- Add NyashHostVtable for host function integration
  - Memory allocation/free functions
  - FutureBox wake support
  - Logging capability
- Implement plugin metadata structures
  - NyashPluginInfo: type_id, type_name, methods
  - NyashMethodInfo: method_id, method_name, signature_hash
  - PluginMetadata: Rust-side holder with lifecycle state

Plugin API Definitions:
- Define C FFI function signatures
  - nyash_plugin_abi(): Get ABI version
  - nyash_plugin_init(): Initialize with host vtable
  - nyash_plugin_invoke(): Unified method invocation
  - nyash_plugin_shutdown(): Cleanup resources
- Implement PluginHandle for loaded plugin management
- Add two-call pattern support for dynamic result sizes

Test Coverage: 7/7 
- bid::types::tests (2 tests)
- bid::tlv::tests (2 tests)
- bid::metadata::tests (2 tests)
- bid::plugin_api::tests (1 test)

Everything is Box philosophy progressing with practical FFI design\!

Next: Day 3 - Existing Box integration (StringBox/IntegerBox/FutureBox bridge)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-17 19:01:16 +09:00
2a96c91a81 feat(phase-9.75g-0): Implement BID-FFI Day 1 - TLV encoding/decoding foundation
BID-1 Implementation Progress (Day 1 Complete\! 🎉):
- Add BID module structure (src/bid/)
- Implement BID-1 TLV (Type-Length-Value) format
  - TlvEncoder: Encode primitives, strings, handles
  - TlvDecoder: Decode with version checking
  - Full test coverage for all types
- Define core types and error codes
  - BidType enum with Handle design
  - Standard error codes (NYB_SUCCESS, NYB_E_*)
  - Platform-dependent pointer size (Usize)
- Fix unrelated Arc<dyn NyashBox> conversion error

Additional improvements:
- Add Rust build error handling guide to CLAUDE.md
  - Error file output pattern
  - 32-thread build rules
  - Common error patterns and solutions

Tests passing: 4/4 
- bid::types::tests (2 tests)
- bid::tlv::tests (2 tests)

Next: Day 2 - Metadata API implementation (init/abi/shutdown)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-17 18:32:15 +09:00