feat(9.75f-1): Implement plugin loader and interpreter integration

- Add plugin_loader.rs with FileBoxProxy implementation
- Integrate dynamic FileBox into interpreter (execute_new, method calls)
- Add feature flag 'dynamic-file' support throughout
- Create test program test_dynamic_filebox.nyash
- Plugin builds in 2.86s (vs main build 2+ minutes\!)

Build time improvement confirmed:
- Plugin-only build: 2.86s 
- Main build: 2+ minutes (timeout)

Next: Complete testing once main build finishes
This commit is contained in:
Moe Charm
2025-08-17 04:23:09 +09:00
parent 226618de05
commit bd20c91b67
6 changed files with 460 additions and 3 deletions

View File

@ -255,6 +255,14 @@ impl NyashInterpreter {
return self.execute_file_method(file_box, method, arguments);
}
// FileBoxProxy method calls (動的ライブラリ版)
#[cfg(feature = "dynamic-file")]
{
if let Some(file_proxy) = obj_value.as_any().downcast_ref::<crate::interpreter::plugin_loader::FileBoxProxy>() {
return self.execute_file_proxy_method(file_proxy, method, arguments);
}
}
// ResultBox method calls
if let Some(result_box) = obj_value.as_any().downcast_ref::<crate::box_trait::ResultBox>() {
return self.execute_result_method(result_box, method, arguments);