The last channel into the wall, and two words that paid for themselves
Object and Async were promoted, and
immediately named three imports. The two words a model earned
and the hash confirmed went into object and
tail - object because it reaches a superset of
learned's patterns, so the promotion cannot lose a name.
The next search found sceAudio3dObjectReserve,
sceNpAuthPollAsync and sceNpAuthWaitAsync. 737
-> 740 names. They are vocabulary now, so they compound for every
title after this.
A vocabulary regeneration was stacking its own
header. find_list returned the span
render_list's output replaces, starting at
name = [, while render_list wrote two comment
lines above that - so every run left the last header in place and added
another. The committed file had two copies and grew by two lines per
run. One shared definition, and a test that regenerates three times and
counts, confirmed to fail against the old code.
Nothing the guest calls answers with the base.
Axis::Return forces an import to answer a sentinel and
looks for an offset agreeing across two of them. All 23 imports, 6.6
seconds: twenty-two are indifferent - byte-identical faults whatever
they answer - and memalign dereferences its answer at
+0x10, which is a real relationship and not this wall's
+0xfffe0. Arguments were already exhausted, so what
remains is not a call at all (D249).
And the first run of it nearly went down as noise.
Twenty-two imports reported Inconsistent, because an
unchanged fault is measured from two different planted values and so
yields two different offsets. Agreement::Unchanged is now
checked before any subtraction. The distinction existed one level up all
along - conclude carried it outside the arithmetic - and
extracting the shared rule dropped it (D248).