Skip to content

test(runtime): add executable compatibility contracts - #36

Merged
mremond merged 2 commits into
mainfrom
fm/task-d97a0387
Nov 14, 2026
Merged

mremond merged 2 commits into
mainfrom
fm/task-d97a0387

Conversation

@mremond

@mremond mremond commented Nov 14, 2026

Copy link
Copy Markdown
Member

Why

Establish executable compatibility guardrails before incremental exception-routing refactoring.

What changed

  • A focused runner executes six existing fixtures on native default schedulers, one native scheduler and OTP 29.
  • Each execution must complete its assertions, return successfully and print both completion markers.
  • A contract index documents semantic ownership and the limits of each compatibility claim.

Before and after

Before: Six regression fixtures had no focused native/OTP contract runner with machine-readable execution and provenance records.

After: Six unchanged fixtures pass in three execution modes, while missing completion, early successful exit and assertion failures are rejected.

This changes checking and documentation only; compiled program output, not a screen, demonstrates the contracts.

Checked

Live validation: Demonstrated for this version. 2 of 2 scenarios driven live in the product.

Scenario Result Evidence
Six unchanged fixtures complete their assertions in all three execution modes. ✅ Passed live Actual program outputs record successful exit and both completion markers, including default and Unicode-path repetitions.
Incomplete execution and assertions fail; the owning historical regression is rejected. ✅ Passed live Real negative variants fail in all three modes; the matching historical compiler/runtime fails the leaked-send assertion while OTP passes.
  • Full local contributing gate: Ordered release builds, strict lint, allocator and stacktrace checks passed; 2,158 Rust tests and 487 native tests passed, with one ignored Rust test and two external-module skips.
  • Default and Unicode temporary paths: Ten consecutive corpus/rejection rounds passed per path kind, including 360 unchanged-fixture executions and 240 control/negative executions.
  • Independent review: Code and live proof passed after correcting canonical-path and Unicode-literal defects.
  • Documentation-only base update: Only two upstream README lines changed; both task patches remain identical.
How it was checked

cargo build --release --locked -p nera-runtime; cargo build --release --locked -p nera

cargo clippy --workspace --all-targets --locked -- -D warnings; cargo test --workspace --locked --no-fail-fast

python3 scripts/test-allocator-config.py; target/release/nera test -j 1 --timeout 30; python3 scripts/test-stacktrace-order.py

The focused corpus and rejection journeys each passed ten consecutive runs on default and symbolic-link-aliased Unicode temporary storage.

The historical runtime was built before its matching compiler; the unchanged owning fixture fails at its leaked-send assertion in both native modes.

Platform implementation, linking, packaging, allocator, timer and shutdown behavior are unchanged; conditional implementation-specific journeys are outside this patch's changed coverage.

Risk

Risk above low: Novelty, medium — A new focused runner beside existing project checks.

Full risk assessment
Dimension Level Why
Blast radius low Only two checking scripts and two documentation files change.
Behavior low No product behavior or existing fixture assertion changes.
Undo low Reverting the change requires no migration.
Evidence low Real native/OTP execution, strict rejection and historical regression proof passed.
Sensitivity low Only disposable local programs and ordinary delivery access are used.
Novelty medium A new focused runner beside existing project checks.
Dependencies low No package or dependency changes.
Not done

The arithmetic exception-routing pilot is a separate approved change.

No broad stack metadata equivalence or Windows execution is claimed.

Compiler source provenance is declared and paired with artifact hashes and build logs, not authenticated by the runner.

Pipeline

Updates from git push no-mistakes

Infinitary checked this version: an independent review that also judged the documents, and live validation the review accepted.

@github-actions github-actions Bot added this to the 0.1.1 milestone Nov 14, 2026
@mremond
mremond merged commit 0362722 into main Nov 14, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant