Module runner

Module runner 

Source
Expand description

The language-runner seam: a Runner trait and the normalized result of running learner code.

Runner is the boundary every execution and grading slice depends on, so a second language (Python, Slice 8) or a hosted backend is a new impl Runner rather than an edit at each call site (ADR-0005, §3.4). This module owns the seam and the ExecutionResult shape; the R-specific subprocess mechanics live in the private r submodule. It does not know about lessons or LLMs (§4.1).

Structs§

ExecutionResult
The normalized outcome of running learner code to completion or timeout.
PythonRunner
A Runner backed by a real Python subprocess spawned through uv.
RRunner
A Runner backed by a real Rscript subprocess.
RunnerError
A failure to run learner code: the interpreter could not be spawned, or its output pipes could not be read.
Timeout
A wall-clock bound on a single execution.

Traits§

Runner
Runs learner code and reports what it did.