collect_shaders counted the ISA variants of an opcode but still listed the
opcode itself as decoded but not in AMD's public list when its own name
wasn't there. VAddI32, VSubI32, VSubrevI32 and SCbranchCdbg were counted
through V_ADD_CO_U32, V_SUB_CO_U32, V_SUBREV_CO_U32 and the four
S_CBRANCH_CDBG* instructions, yet the progress page called them not
counted. An opcode is now listed only when neither its name nor any of its
variants is in the list.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The changed-libraries table of the progress report printed the change in
percentage points (` pp`), while the headline prints it in `%`. Both are
the difference between two percentages, so the table now uses `%` too,
including the small-change path added with the rounding fix (`+0.0006%`,
`+<0.0001%`). Keeps the two decimals, the explicit sign and the `+0.00`
rounding of tiny or negative-zero changes.
The change is moved into `percent_change()`. Tests pin the `%` unit for
the table and the headline, and `docs/dev/PROGRESS.md` describes the
column in the unit of the headline.
Rebased onto main (which now carries #10992's small-change path) and
resolved there: that path also prints `%`.
Co-authored-by: MarcZX10 <[email protected]>
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
progress.json and progress.html are the same file and the other reports exist;
the command has to exit with 2 naming the two files, with no traceback, and every
existing report keeps its bytes.
Expect +0.0006 pp for libc going from 1340/1351 to 1341/1352, +0.00 pp when only the names change, and -<0.0001 pp instead of +0.00 pp for the large library case, which still never prints -0.00. The libc case fails before the previous commit.
progress.py skips every definition whose name ends in _nid_no_patch or
_nid_no_patch_cut, which are meant to be internal helpers. Some libraries
export such functions with APS5_EXPORT under an explicit NID or name:
libSceAgcVsh (150), libSceNKWebKit (150) and libSceJson2's inventory
(66), all of them calling NotImplemented_nid_no_patch. None of the 366
was counted, so those three libraries showed 151 of 151 functions where
they declare 517, and import_audit, which takes its stub list from the
same scan, reported imports of them as implemented.
A _nid_no_patch definition is now skipped only when no APS5_EXPORT in its
library exports it. The library totals go from 6104 of 12305 to 6104 of
12671 on main.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
test_output_directory_that_cannot_be_written_is_named called progress.main
without a root, so main measured the whole checkout before reaching the
output directory the test checks: 12.8 s of the file's 14.1 s here, and
31 s on windows-latest. It now goes through run_main with
library_snapshot(), like the other progress.main tests in its class;
write_site still runs and fails on the file in place of the directory.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
progress.py <output> raised an uncaught OSError with a traceback when the
output path was a file or sat in a directory it could not create. Report it
as a usage error that names the path, like the other bad arguments.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
`return ::Fail();` and `else ::Fail();` call the global wrapper, but
QUALIFIED took the keyword for a qualifier name and counted the export
as done. The name before `::` must now be an identifier that is not a
keyword, or a template's closing `>`.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
An apostrophe in a block comment paired with a later character literal on
the same line when literals were blanked before comments, exposing a brace
and ending the body early.
Co-Authored-By: Claude Opus 5.5 <[email protected]>