feat(phase32): L-2.1 Stage-1 UsingResolver JoinIR integration + cleanup
Phase 32 L-2.1 complete implementation: 1. Stage-1 UsingResolver main line JoinIR connection - CFG-based LoopForm construction for resolve_for_source/5 - LoopToJoinLowerer integration with handwritten fallback - JSON snapshot tests 6/6 PASS 2. JoinIR/VM Bridge improvements - Simplified join_ir_vm_bridge.rs dispatch logic - Enhanced json.rs serialization - PHI core boxes cleanup (local_scope_inspector, loop_exit_liveness, loop_var_classifier) 3. Stage-1 CLI enhancements - Extended args.rs, groups.rs, mod.rs for new options - Improved stage1_bridge module (args, env, mod) - Updated stage1_cli.hako 4. MIR builder cleanup - Simplified if_form.rs control flow - Removed dead code from loop_builder.rs - Enhanced phi_merge.rs 5. Runner module updates - json_v0_bridge/lowering.rs improvements - dispatch.rs, selfhost.rs, modes/vm.rs cleanup 6. Documentation updates - CURRENT_TASK.md, AGENTS.md - Various docs/ updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -316,6 +316,25 @@ impl MirInterpreter {
|
||||
Ok(ret.to_nyash_box())
|
||||
}
|
||||
|
||||
/// Execute a specific function with explicit arguments (bypasses entry discovery).
|
||||
pub fn execute_function_with_args(
|
||||
&mut self,
|
||||
module: &MirModule,
|
||||
func_name: &str,
|
||||
args: &[VMValue],
|
||||
) -> Result<VMValue, VMError> {
|
||||
// Snapshot functions for call resolution
|
||||
self.functions = module.functions.clone();
|
||||
|
||||
let func = self
|
||||
.functions
|
||||
.get(func_name)
|
||||
.ok_or_else(|| VMError::InvalidInstruction(format!("function not found: {}", func_name)))?
|
||||
.clone();
|
||||
|
||||
self.exec_function_inner(&func, Some(args))
|
||||
}
|
||||
|
||||
fn execute_function(&mut self, func: &MirFunction) -> Result<VMValue, VMError> {
|
||||
self.exec_function_inner(func, None)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user