MCPcopy Create free account
hub / github.com/QuipNetwork/xquad / execute

Method execute

xqvm_py/executor.py:221–257  ·  view source on GitHub ↗

Execute a program to completion. Args: program: The program to execute input_data: Optional input data keyed by slot number step_limit: Maximum steps before raising RuntimeError (0 = unlimited) Returns: Output data keyed by s

(
        self,
        program: Program,
        input_data: dict[int, Any] | None = None,
        step_limit: int = 0,
    )

Source from the content-addressed store, hash-verified

219 }
220
221 def execute(
222 self,
223 program: Program,
224 input_data: dict[int, Any] | None = None,
225 step_limit: int = 0,
226 ) -> dict[int, Any]:
227 """
228 Execute a program to completion.
229
230 Args:
231 program: The program to execute
232 input_data: Optional input data keyed by slot number
233 step_limit: Maximum steps before raising RuntimeError (0 = unlimited)
234
235 Returns:
236 Output data keyed by slot number
237
238 Raises:
239 XQVMError: On execution errors
240 """
241 self.state.reset()
242 self.program = program
243
244 if input_data:
245 for slot, value in input_data.items():
246 self.state.set_input(slot, value)
247
248 for target_id, pc in program.jump_targets.items():
249 self.state.jc.define_target(target_id, pc)
250
251 while not self.state.halted and self.state.pc < len(program):
252 if step_limit > 0 and self.state.steps >= step_limit:
253 raise RuntimeError(f"StepLimitExceeded: execution exceeded {step_limit} steps")
254 self.state.steps += 1
255 self.step()
256
257 return dict(self.state.output)
258
259 @property
260 def steps(self) -> int:

Callers 15

test_full_pipeline_n3Method · 0.95
runMethod · 0.95
runMethod · 0.95
run_programFunction · 0.95
mainFunction · 0.95
test_event_has_opcodeMethod · 0.95

Calls 4

stepMethod · 0.95
set_inputMethod · 0.80
define_targetMethod · 0.80
resetMethod · 0.45