refactor: 大規模ファイル分割とプラグインリファクタリング

## 🎯 プラグイン整理
-  **nyash-json-plugin**: プロバイダー抽象化、NodeRep統一
-  **nyash-string-plugin**: TLVヘルパー整理
-  **nyash-net-plugin**: HTTPヘルパー分離、ソケット管理改善
-  **nyash-counter-plugin/fixture-plugin**: 基本構造整理

## 📂 mir_interpreter分割
-  **mir_interpreter.rs → mir_interpreter/ディレクトリ**
  - mod.rs: メイン構造体定義
  - execution.rs: 実行エンジン
  - memory.rs: メモリ管理
  - instructions/: 命令別実装

## 🔧 その他の改善
- テストファイル群の最適化
- LLVMコンパイラのメイン関数整理
- 不要なインポート削除

1000行超のファイルを適切なモジュール構造に分割完了!

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-25 01:09:48 +09:00
parent d052f9dc97
commit 824ca600ea
27 changed files with 1605 additions and 1060 deletions

View File

@ -0,0 +1,87 @@
use super::*;
mod arithmetic;
mod boxes;
mod calls;
mod externals;
mod memory;
mod misc;
impl MirInterpreter {
pub(super) fn execute_instruction(&mut self, inst: &MirInstruction) -> Result<(), VMError> {
match inst {
MirInstruction::Const { dst, value } => self.handle_const(*dst, value)?,
MirInstruction::NewBox {
dst,
box_type,
args,
} => self.handle_new_box(*dst, box_type, args)?,
MirInstruction::PluginInvoke {
dst,
box_val,
method,
args,
..
} => self.handle_plugin_invoke(*dst, *box_val, method, args)?,
MirInstruction::BoxCall {
dst,
box_val,
method,
args,
..
} => self.handle_box_call(*dst, *box_val, method, args)?,
MirInstruction::ExternCall {
dst,
iface_name,
method_name,
args,
..
} => self.handle_extern_call(*dst, iface_name, method_name, args)?,
MirInstruction::RefSet {
reference,
field,
value,
} => self.handle_ref_set(*reference, field, *value)?,
MirInstruction::RefGet {
dst,
reference,
field,
} => self.handle_ref_get(*dst, *reference, field)?,
MirInstruction::BinOp { dst, op, lhs, rhs } => {
self.handle_binop(*dst, *op, *lhs, *rhs)?
}
MirInstruction::UnaryOp { dst, op, operand } => {
self.handle_unary_op(*dst, *op, *operand)?
}
MirInstruction::Compare { dst, op, lhs, rhs } => {
self.handle_compare(*dst, *op, *lhs, *rhs)?
}
MirInstruction::Copy { dst, src } => self.handle_copy(*dst, *src)?,
MirInstruction::Load { dst, ptr } => self.handle_load(*dst, *ptr)?,
MirInstruction::Store { ptr, value } => self.handle_store(*ptr, *value)?,
MirInstruction::Call {
dst,
func,
callee,
args,
..
} => self.handle_call(*dst, *func, callee.as_ref(), args)?,
MirInstruction::Debug { message, value } => {
self.handle_debug(message, *value)?;
}
MirInstruction::Print { value, .. } => self.handle_print(*value)?,
MirInstruction::BarrierRead { .. }
| MirInstruction::BarrierWrite { .. }
| MirInstruction::Barrier { .. }
| MirInstruction::Safepoint
| MirInstruction::Nop => {}
other => {
return Err(VMError::InvalidInstruction(format!(
"MIR interp: unimplemented instruction: {:?}",
other
)))
}
}
Ok(())
}
}