The problem
run_parity_tests.sh always runs the release compiler/runtime build and overwrites PERRY_BIN, so fixture-only parity reruns cannot explicitly reuse a compiler and matching runtime archives that were already built and verified.
Proposed solution
Add an opt-in PERRY_SKIP_BUILD=1 mode that:
- preserves an executable caller-provided
PERRY_BIN;
- uses
PERRY_RUNTIME_DIR, or the compiler directory, for one platform-native runtime/stdlib archive pair;
- skips only the runner-owned Cargo builds;
- leaves the default build and all parity semantics unchanged.
Reject invalid configuration or incomplete archive pairs before running fixtures. Document that callers must rebuild whenever compiler/runtime/stdlib/extension inputs differ.
Alternatives considered
Keeping one CARGO_TARGET_DIR lets Cargo reuse warm outputs, but still invokes Cargo and cannot explicitly bind the runner to an externally verified compiler/archive set.
Scope
The problem
run_parity_tests.shalways runs the release compiler/runtime build and overwritesPERRY_BIN, so fixture-only parity reruns cannot explicitly reuse a compiler and matching runtime archives that were already built and verified.Proposed solution
Add an opt-in
PERRY_SKIP_BUILD=1mode that:PERRY_BIN;PERRY_RUNTIME_DIR, or the compiler directory, for one platform-native runtime/stdlib archive pair;Reject invalid configuration or incomplete archive pairs before running fixtures. Document that callers must rebuild whenever compiler/runtime/stdlib/extension inputs differ.
Alternatives considered
Keeping one
CARGO_TARGET_DIRlets Cargo reuse warm outputs, but still invokes Cargo and cannot explicitly bind the runner to an externally verified compiler/archive set.Scope