D568 - The tail was not the tail
Status: measured Date: 2026-09-04
What it claimed
CallTrace::tail is documented as "the last calls the
guest made", and D154 gave it its whole reason:
A ranked list says what a guest spends its time on, which is the right question for deciding what to implement - and the wrong one entirely when something has just handed it a null and it died. For that, the only useful question is what it called last.
The printer says last calls before the fault. The
finding that reads it calls it "the neighbourhood of the
wall".
What it is
The recorder keeps the first
MAX_RECORDED_CALLS - 8,192 - and stops.
tail_of_recorded takes the last 48 of those. So
for any run longer than 8,192 calls, the tail is calls #8,144-#8,191,
and the fault is somewhere far past it.
Measured across four titles:
| Title | Calls | Tail covers | Is it the end? |
|---|---|---|---|
| PPSA28061 | 332 | #284-#331 | yes |
| PPSA02664 | 418,632 | #8,144-#8,191 | no |
| PPSA03416 | 467,457 | #8,144-#8,191 | no |
| PPSA25872 | 12,958,032 | #8,144-#8,191 | no |
Three of four. The dissenting one is the only title that makes fewer than 8,192 calls.
The comment that made it invisible
tail_of_recorded carries this:
for any run that stays under that - which every run so far does, by an order of magnitude - the end of it is the true end
It was true when written. It is now wrong for three of the four titles that reach anywhere, and by three orders of magnitude for PPSA25872 rather than under by one. A stale fact in a comment, and the comment was the only thing standing between a reader and a wrong conclusion.
It already cost a wrong reading
Earlier the same day, PPSA02664's tail was read as
strlen/memcpy and reported as "the guest
is in its own code walking a structure it built, not immediately after a
failed import". That was drawn from calls 8,144-8,191 of a
418,632-call run - not the neighbourhood of the fault at all,
and no basis for any claim about what preceded it. The reading is
withdrawn.
The decision, and what is deliberately left open
The report now says which it is. Where the recording
reaches the end it prints last calls before the fault;
where it does not it prints the range, the total, and
NOT the ones before the fault. A report claiming more than
its measurement supports is the one thing principle 3 forbids of the
tools as firmly as of the emulator, and this was doing it in capital
letters on every long run.
Decided the same day, by D571: the ring is circular now, and the tension was false. The beginning's only reader quotes eight entries, so a separate eight-entry record serves it while the ring answers D154's question. What follows was the reasoning before that was noticed.
Whether to make the ring circular is not decided
here. It is a real tension and both sides are already written
down: MAX_RECORDED_CALLS argues for the beginning -
"the interesting part of a boot is its beginning; by the
ten-thousandth call the guest is in a loop" - and D154 argues for
the end. Keeping the first 8,192 and calling them the last is
the only position that was never defensible; the choice between them
belongs to whoever weighs a boot's opening against a wall's
neighbourhood, and it is a mechanism change rather than a fix.
What this does not establish
That the first 8,192 are the wrong thing to keep. They may well be the more useful half; the finding is only that they are not what the tail claimed to be.
Nor how many other readings rest on it. One was found because it was made today and could be checked. Any conclusion drawn from a long run's "tail" before now has the same flaw, and nothing here audits the back catalogue.