Files
erofs-freebsd-out-tree/docs/pre15-stage0/P15-005.md
T
2026-08-18 09:20:44 +02:00

2.2 KiB

P15-005 Stage0 Decision

Status: GO for B06.

The authoritative baseline replay used commit edf098905a34de764185e72fc7e92d7b8f4e7285. The gate extracts and compiles the current FreeBSD data.c and zmap.c producer bodies instead of replaying an arithmetic model. Fourteen frozen cases cover plain, inline, hole, chunk, 48-bit multidevice, compressed explicit extents, fragment, partial-reference, post-EOF, bounds, overflow, short-read, and post-acquire error behavior. Every field in (m_la,m_pa,m_llen,m_plen,m_deviceid,m_flags,errno,acquire_count, release_count) matched the independently frozen record oracle.

The ownership oracle freezes 27 audited function bodies and 22 success, validation-error, provider-error/short-read, transfer, and release paths across plain data, compressed data/config, xattr, inode, superblock, and map consumers. It also pins the corresponding Linux source hashes and erofs_buf acquire/put semantic anchors. Candidate replay must satisfy the predeclared per-function object/put/raw-buffer contract and execute the actual FreeBSD helper through primary-image, metabox, error, overflow, idempotent-put, and null-callback paths.

The supplied prep remains correctly classified BLOCKED: its static scan uses obsolete erofs_mount/erofs_node text anchors and its Python map model does not execute DUT code. P15-005.sh and P15-005-input.json close those gaps on the current BASE. Evidence is in planning/pre15/evidence/20260814T145546Z-G02-P15-005/.

QEMU and the full feature suite were not run. G02 for P15-005 is a host/source gate, and its candidate contract does not require either. This GO authorizes B06 only; it does not authorize P15-006 or any B07 map-object change.

B06 completion

B06 commit 1b1f904a674c21eed3ee29ca7df93c44429ac8d5 replayed the same corpus and oracle with object_mode=true, oracle_equal=true, 14/14 tuples, 22/22 ownership paths, and five actual helper lifecycle paths. D, the B06 host case, and both FreeBSD KLD configurations pass. Seven frozen FreeBSD raw I/O and GEOM lifecycle functions are unchanged, and the pre-B07 map object hash is unchanged. This completes the B06 dependency and unlocks B07a for its own separate gated batch; it does not pre-approve a B07 implementation.