Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 2.44 KB

File metadata and controls

42 lines (34 loc) · 2.44 KB

FUNCTION-EVIDENCE — does each ported function carry direct or classified evidence?

LIBCOB-PARITY proves a real Rust fn exists. This map classifies the evidence behind it: DIRECT = the fn name is referenced by a unit test, a Kani proof, a fuzz target, or an oracle-sweep mirror. TRANSITIVE = it is called (per CLANG-AST-PARITY) by a directly- covered function, so it is exercised through that public oracle/test path. LIFECYCLE = an init/exit/free/alloc/cache routine (RAII / deliberate no-op). UNEVIDENCED = none of these — a false-confidence risk. (Direct evidence is a token reference; court & transitive evidence are classified separately; byte parity remains the per-court oracle sweeps in lab/verify-sealed-courts.sh.)

Active ported: 1138 · direct 962 (incl. oracle-sweep 213) · transitive 150 · lifecycle 97 · evidenced (any) 1138 · unevidenced 0.

libcob file active direct oracle transitive lifecycle evidenced unevidenced
numeric.c 98 69 20 26 6 98 0
move.c 56 39 23 15 2 56 0
strings.c 34 24 0 8 8 34 0
intrinsic.c 232 173 103 57 8 232 0
cconv.c 9 8 4 0 2 9 0
termio.c 18 15 3 2 1 18 0
screenio.c 105 105 0 0 6 105 0
call.c 67 58 1 6 5 67 0
fileio.c 180 156 36 21 18 180 0
mlio.c 43 38 5 3 2 43 0
reportio.c 39 27 0 8 7 39 0
common.c 253 249 17 1 31 253 0
cobgetopt.c 4 1 1 3 1 4 0

Ported but unevidenced (no direct / transitive / lifecycle coverage)

None — every active ported function carries at least one evidence reference.

How this is produced (reproducible)

gnucobol-rs-port-index evidence generate joins the committed parity-detailed.json with a scan of the Rust #[cfg(test)] / #[cfg(kani)] regions, the fuzz targets, the oracle-sweep mirrors (examples/*.rs + lab/oracle/*.sh), and the clang-callgraph.json (for transitive coverage). evidence check regenerates and diffs (anti-staleness). PORT-GOVERNANCE.3 closure rule (future Tier-2 gate): a 100%-closed file must have every active fn direct / transitive / lifecycle / court covered — no unclassified unevidenced active functions.