477. Two readers, one corpus

2026-09-09 - directed, continuing 476

REQ-20260909T1720Z-4e17 - the exception context PPSA25872's handler dereferences - is still open, so the signal wall is waiting on hardware. This pass paid the debt owed to SELFish since 474: the two-reader differential, claimed three passes ago.

The harness was wrong twice before either reader was

First run: all 29 modules disagreeing, not an ELF: begins 54 14 f5 ee. Orbistoun's Container::parse unwraps the signed container on the way in; selfish_elf::Elf::parse expects the ELF itself. The two were reading different files. Second run: still seven, because Wrapper::is_wrapped misses the previous-generation magic and is_either_generation is the one to ask.

Neither is a parsing defect. Both are facts about the two crates' entry points that anyone wiring them together would first read as parsing bugs (D653).

Three classes, once it was measuring the readers

The constant is the finding

A rebasing difference, not a parse difference - D247's own distinction between a standard tag holding a virtual address and a vendor tag holding an offset into the vendor data segment. The differential prints the file's tags beside the disagreement: it carries both standard (1-12, 20, 23) and vendor (0x61000007 … 0x61000049), which is what Table::Current describes. So SELFish's reading may be the right one and orbistoun's vendor_tables = false the wrong one - taken away to investigate.

Surprises

Next