Skip to content

COLEMAN 4.12.0 — Inspect constructed C faults with an independent oracle

Extend controlled CI research beyond Java and Python with a deliberately bounded C source workflow. COLEMAN's optional producer compiles original NIST Juliet functions in a pinned GCC container, evaluates a frozen arithmetic oracle and retains the raw evidence. Reopen completed observations offline or recover a stopped collector without inventing successful tests.

What you can use

  • python -m coleman.transports.c and the typed capture API for the frozen juliet-uint32-add-v1 preset. Small individually pinned raw source views reuse the existing cache and public HTTPS adapter; no foreign code or binaries ship inside the SDK.
  • Explicit original bad and goodB2G entry selection against identical source, support files and six declared uint32 boundary inputs. The independent safety oracle preserves five both-pass pairs and one assertion-failure/pass pair from the installed qualification.
  • Versioned recipes, runtime/ABI facts, full bounded child streams, negative POSIX exit codes, integer nanosecond intervals, immutable ownership/receipts and honest incomplete recovery. Compiler diagnostics and executable digests remain inspectable alongside outcomes.
  • Existing native TCPCI policies, Parquet results and checkpoints. Observer ns remain separate from independently declared modeled scheduling costs.

The complete guide provides installation, explicit native arm64 runtime preparation, acquisition, collection, replay, API validation, units, component terms and recovery behavior.

Compatibility and artifacts

The generic controlled-result schema, native runner and learning checkpoints keep their existing contracts. New C transport records require explicit supported v1; missing, older and future schemas reject. Old generic artifacts stay readable without implicit migration or reinterpreted values.

A multi-case Python replay validation correction now compares observations in the generic domain's canonical logical-key order. Original raw/report bytes and case ordering retain their meaning. Producer-specific replay binds the original full installed package/version: retain the reviewed older wheel for its captures, and use a fresh generation for a changed producer.

Physical container ownership for C, Python and JUnit now includes the resolved output namespace. Separate output roots cannot collide or clean one another's containers; logical observation identities are unchanged. JUnit start markers now use explicit schema v2 and persist the original physical ownership, so relocation still cleans the original container. Legacy v1 markers retain their original cleanup rule; future versions reject. C/Python incomplete ownership stays at its original output location. Retain the original producer package for recovery.

The first C qualification's noexec scratch failure remains incomplete with zero observed cases. Explicit executable tmpfs and a recorded pre-observation amendment made native binary execution possible while retaining read-only inputs, non-root, network, capability and resource guards. No failed evidence was rewritten into a successful run.

Scope of the evidence

This is one 2017 template-generated synthetic weakness / six correlated inputs, not six independent faults, real application history or a complete Juliet suite. NIST's public-domain/CC0 declaration and the four selected mirror files' exact correspondence to the official ZIP were checked before source qualification. SIR component/data permission remains unresolved; its accessibility is not treated as admission evidence.

These observations remain constructed, not evaluated for admission, and insufficient for generalization. Historical chronology, independent cross-corpus coverage, baseline comparisons and the confirmatory report remain open under

261. All seven required registry diversity regimes remain uncovered. No policy

improvement, calibrated probability, prospective saving or broad security claim follows from this small controlled reproduction.