Skip to main content

tenferro engine lane adapter acceptance ledger

Run the complete adapter gate from the repository root:

scripts/check-tenferro.sh
Contract Evidence
Core default and Rayon builds contain no tenferro/tensor4all root cargo tree assertions
Adapter pins tenferro-rs 062298519 (caller-held engines, no sessions) and contains no tensor4all adapter tree and cargo metadata pin assertions
Core retains Rust 1.85; adapter declares rust-version = "1.96" matching the pinned tenferro-rs workspace check-tenferro.sh runs cargo +1.85.0 check for core only; the adapter is checked on current stable, and no separate 1.96 toolchain check exists
The caller owns the engines and their pools; the adapter builds neither adapter has no pool constructor and no Rayon dependency of its own; TenferroLanes::new takes the caller’s Vec<CpuEngine>
One lane per engine, in the caller’s order each_lane_is_lent_its_own_engine_on_its_own_thread census over two engines of different worker counts
A lane is never a worker of the engine pool it uses inside every lane, the engine pool reports current_thread_index() == None, and a real add_read issued there succeeds rather than returning tenferro’s own-pool refusal (the census runs the doubling on every lane, so no lane is skipped)
Known-value tenferro work runs through map_in_lanes(TenferroLanes) every item once, input order preserved, add_read doubling per lane
Lowest failing input index survives the lane fan-out deterministic two-error fixture reporting index 1
A callback panic joins before it is resumed and the engines stay reusable panic fixture raised outside any engine operation, followed by a successful two-item fan-out
Peers waiting on LaneControl are released and joined direct-Lanes fixtures: normal coordinator return (no explicit cancel), coordinator error, coordinator panic, lane error, lane unwind
A single lane still overlaps a coordinator one-engine fixture where the lane and the coordinator meet at a barrier; the held-session design refused this with SingleLane
A lane executor needs an engine TenferroLanes::new(Vec::new()) returns NoEngine
pmap_lanes(TenferroLanes) works at world size one mpi-gated example under mpiexec -n 1 --lanes 1 (asserts one lane with an overlapping coordinator) and --lanes 2 with an unpinned launcher (asserts two lanes)
Public docs remain runnable adapter and core doctests
Adapter lints clean with and without the mpi example feature cargo clippy -p hataori-tenferro [--features mpi] --all-targets -- -D warnings

The exact upstream revision separately verifies its own pool, engine, plan-cache and cancellation internals; Hataori does not duplicate those tests. The adapter does not claim multi-rank hybrid acceptance, tensor4all contexts, tensor wire formats, or three-repository integration; those belong to Phases 20b and 20c.