2026-09-03 - (/loop) The encoder measurements say the opposite, and thirty names go back
declared 947 -> 917
names-only 273 -> 243 across 29 libraries
Asked to check whether the thirty-three encoder symbol measurements
are claimable now that libSceVencCore and
libSceVideoRecording are declared. No - and the
premise was inverted, mine included.
unresolved = 0x0
means it did not resolve
if (addr != NULL) {
obs_report_measure("106-encoder/symbols", name, "vaddr", …);
obs_report_measure("106-encoder/symbols", name, "handle", …);
} else {
obs_report_measure("106-encoder/symbols", name, "unresolved", 0, "status");
}The record is emitted in the null branch, after the
lookup has tried the kernel export table, every loaded handle and
0x2001. The 0 is filler for a status field. I
had read it as "zero unresolved" and told the user every one of those
symbols resolves on the console.
Two independent confirmations: there is not one
vaddr or handle measurement in the whole
encoder group - every probed symbol failed - and obSCEne's
related-libs check records six of those libraries as
absent. The reasons for the libraries in this
file were already correct; only the reasons for the symbols
inside them were backwards.
So thirty declared names had no provenance and are withdrawn
D505 set the standard in its own text - every name "read out of a
real module's import table" or measured resolving. Against it:
no guest in the corpus imports or calls
libSceVencCore, and nothing resolved, so its 24
names rested on obSCEne's candidate list alone. Six of
libSceVideoRecording's ten were the same. Withdrawn. The
four the corpus shows modules calling stay.
That is a bad declaration committed inside the decision that exists to prevent bad declarations. A name from a candidate list puts a NID in the table no import will ever match and inflates a surface figure with functions nothing has been seen to want.
The thirty-three reasons are rewritten
The old text - "whether a symbol resolves inside a video-encoder library" - was not vague, it was backwards, and it would have justified a claim in the wrong direction. They now say what they record: a non-resolution under one capture's application category, the same shape as the sysmodule refusals (D503), unblocked by the category-0 capture already in obSCEne's backlog 022.
The cheap check to add
Rule 6 is read the probe before asserting against its
numbers. What it needs is the direction test: a field named
unresolved/absent/refused is
emitted by a failure branch, so its presence is the finding and its
value is filler. Reading 0x0 as a count rather
than as a marker is D497's mistake one field name further out.
State
cargo test --workspace green - 119 suites, 1994
tests, 0 failures. clippy --tests clean, fmt
clean, identity scan clean on both.
Nothing committed. The day holds worklogs 292-355 and D466-D506.
Next: the differential's uncovered functions
(strtok_r, strtof, sprintf,
vsnprintf), and the two singletons still untried -
120-measure/timer-ratio:tsc_hz_calibrated and
035-libc/fpu-environment.