Commit Graph
1354 Commits
Author SHA1 Message Date
Kang, Harry Zixuan b2c9e91102 fix(relinker): audit dependencies without imported functions 2026-10-14 20:57:16 +02:00
Adrià 9d48178c55 Merge pull request #5310 from Ondra97/codex/fix-audit-elf-versions
fix(tools): reject unsupported ELF versions in import audits
2026-10-14 20:56:41 +02:00
Adrià 06ae8eebed Merge pull request #5308 from Ondra97/codex/fix-audit-hash-load-bounds
fix(tools): keep ELF hash metadata inside load mappings
2026-10-14 20:55:54 +02:00
Avijit Singh b82adb6721 test(web): run folder recovery checks with web suite 2026-10-14 20:53:49 +02:00
Adrià 6117ba743e Merge pull request #5283 from Ondra97/codex/fix-audit-dynamic-terminator
fix(tools): stop ELF dependency audits at DT_NULL
2026-10-14 20:53:44 +02:00
Adrià 918565b662 Merge pull request #5273 from Ondra97/codex/fix-import-audit-module-collisions
fix(tools): reject ambiguous guest modules in import audit
2026-10-14 20:52:47 +02:00
Adrià a1b6be7ef0 Merge pull request #5269 from Nixitov/feat/relinker-weak-imports
fix(tools): do not report weak imports as a title's current stop
2026-10-14 20:52:19 +02:00
Adrià 2b7e3ce69f Merge pull request #3899 from GalaxyGamingFR/fix/progress-wrapper-call-match
fix(progress): ignore member and qualified calls to stub wrappers
2026-10-14 20:46:48 +02:00
RedNixer 73e843bfde fix(tools): accept BOM in performance summaries 2026-10-14 20:46:29 +02:00
MiniRML e2e57ce142 fix(tools): preserve Unicode paths in PR overlap checks 2026-10-14 20:26:25 +02:00
MarcZX100 2898e58357 fix(tools): recognize assembly NID exports 2026-10-14 18:24:55 +00:00
GalaxyGamingFRandClaude Opus 5.5 a310f9688c fix(tools): link top-of-file insertions to line 1 in pr_overlap
A -U0 hunk for an insertion before line 1 starts at line 0, so two PRs
inserting at the top of one file produced a link to the nonexistent
line L0. hunks now clamps the start to line 1 and derives the end from
the clamped start. A test covers the clash range and the rendered link.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 11:08:27 -07:00
GalaxyGamingFRandClaude Opus 5.5 702c330576 fix(progress): do not treat a keyword before :: as a qualifier
`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
2026-10-14 11:00:11 -07:00
Adrià 4ae78dc136 Merge pull request #5012 from ideabsassistenza/fix/registration-bracket-comments
fix(tests): ignore bracket comments in registration audit
2026-10-14 19:39:57 +02:00
Adrià c2b55c66fb Merge pull request #4974 from ideabsassistenza/fix/stubgen-readonly-cleanup
fix(stubgen): clean read-only staged files after failure
2026-10-14 19:39:04 +02:00
Adrià 5d0e8fc70a Merge pull request #4970 from Zurisen/fix/progress-history-python310
fix(progress): extract history archives on Python without tarfile filters
2026-10-14 19:38:43 +02:00
Adrià ec92b9458c Merge pull request #4771 from Roojool/contrib/g10-registration-utf8
fix(tools): decode Ninja targets using its build-file encoding
2026-10-14 19:32:28 +02:00
Adrià 3864da5959 Merge pull request #3909 from GalaxyGamingFR/fix/conventions-doc-link-code-blocks
fix(conventions): ignore code blocks when checking doc links
2026-10-14 19:13:06 +02:00
RINNECODER ce17977ed9 fix(tools): key compile commands relative to the checkout in check_compile
The key was the source path relative to the common parent of the build
directory and the source. With a build directory beside the checkout
that parent is above the checkout, so the key carried the checkout
directory name and no changed file matched. The key is now the source
path relative to the repository root.
2026-10-14 11:30:20 -05:00
kjhq 019285d46f fix(tools): place an empty segment that ends a load segment in unwrap_self
unwrap_self refused a container when a non-load segment with no file data
sat exactly at the end of a PT_LOAD, as an empty PT_TLS does in Sifu
(PPSA03001): "segment 6 vaddr 0x88cb7a0 is in no PT_LOAD". The eboot and
36 of its 37 bundled modules carry such a segment. A segment of size zero
now matches the load segment it ends, so it is placed at that segment's end.
2026-10-14 15:24:14 +00:00
christopherflores9312 cece0fafc9 test(tools): cover inline NID mode conflicts 2026-10-14 07:34:11 -07:00
Adrià 32421519a3 Merge pull request #5857 from Lorkydey/feat/oracle-result-comparison
feat(hw-oracle): compare captured results bit for bit
2026-10-14 16:29:24 +02:00
Alexej Szpevák 18d8ab35a0 test(tools): cover the pull request template checks
Add tests for check_conventions.py's pull request checks: a filled-in
copy of the real template passes, the untouched template reports every
gap, unchecked items are named for any list marker, AI-assisted and
Depends on accept only their documented answers, template comments do
not count as answers, sections need content, and titles must follow
Conventional Commits.
2026-10-14 16:23:21 +02:00
Adrià 6e4669fe19 Merge pull request #5748 from AlexOfTheForest/perf/conventions
perf(tools): read checker file contents through one git cat-file process
2026-10-14 16:15:34 +02:00
lorkydey af66601f41 feat(hw-oracle): compare captured results bit for bit 2026-10-14 15:53:11 +02:00
MarcZX100 541a4e7052 test(tools): shard conventions comment checks under CTest timeout 2026-10-14 13:13:45 +00:00
christopherflores9312 f895e178ec fix(tools): reject mixed NID modes with empty filters 2026-10-14 06:13:24 -07:00
Adrià 63fb0cd92e Merge pull request #5626 from Lorkydey/feat/oracle-json-results
feat(hw-oracle): export results with run settings as JSON
2026-10-14 15:05:09 +02:00
Adrià c8e3039382 Merge pull request #5590 from Lorkydey/feat/performance-summary-comparison
feat(tools): compare performance capture summaries
2026-10-14 14:50:16 +02:00
Adrià 8ffbb49267 Merge pull request #5588 from ryyReid/feat/unwrap-self
feat(tools): unwrap decrypted SELF containers into clean ELF
2026-10-14 14:48:51 +02:00
Adrià efae02d034 Merge pull request #5047 from parl0v/feat/trace-digest-batches
feat(tools): trace_digest lists the largest GPU batches with the CPU slices that recorded them
2026-10-14 14:40:55 +02:00
lorkydey aac3485cc4 feat(tools): compare performance capture summaries 2026-10-14 14:22:27 +02:00
Adrià 73019eb077 Merge pull request #5355 from pushkarreddyy/feat/nid-names-symbol-option
feat(tools): add --name option to nid_names to compute symbol NIDs
2026-10-14 14:11:34 +02:00
Josip Parlov 99e5ef9803 feat(tools): trace_digest lists the largest GPU batches with the CPU slices that recorded them
With batch ids in the trace, the digest gains a Largest GPU batches
section: for the longest GPU batch slices, the GPU ranges inside each and
the CPU slices carrying the same batch id, inclusive. --json carries it as
largest_gpu_batches. Traces without batch ids are digested as before.
2026-10-14 14:08:52 +02:00
Adrià 97eab6e63b Merge pull request #5430 from Prophet069/codex/pr-strict-provider-audit-20261013
feat(tools): fail import audits on strict provider mismatches
2026-10-14 14:08:31 +02:00
Adrià da4d5f2e6f Merge pull request #5168 from Dextroid17/feat/check-main-sync
feat(tools): report whether a branch is in step with main
2026-10-14 14:02:56 +02:00
Adrià 2e9ef83a5f Merge pull request #5042 from LeandroLP23/docs/progress-history-counts
feat(tools): plot counts in the progress history chart
2026-10-14 14:00:37 +02:00
Adrià FranchandClaude ecce9a3a16 fix(tools): keep the spliced-comment test, reject --name with --nid, no name truncation
Co-Authored-By: Claude <[email protected]>
2026-10-14 13:36:11 +02:00
pushkarreddyy 41ef6acad3 feat(tools): add --name option to nid_names to compute symbol NIDs
Add --name / --symbol CLI option to tools/nid_names.py to compute the Sony SHA-1 NID for given symbol names from the command line without requiring a full database download. Support positional chaining and --json output format. Add unit test coverage in tools/tests/test_nid_names.py.
2026-10-14 13:35:54 +02:00
adriadam10 94632df42f test(tools): resolve the temp root and give the compdb stub a Windows launcher 2026-10-14 12:31:52 +02:00
Dextroid17 955c60e32f feat(tools): compile the changed translation units only 2026-10-14 12:31:35 +02:00
Adrià 2a99157640 Merge pull request #4812 from AlxcBTW/feat/trace-summary-interval
feat(agc): add APS5_TRACE_SUMMARY_EVERY for summary lines of a long session
2026-10-14 12:24:56 +02:00
ideabsassistenza d8e6922acb fix(release): inspect read-only dangling destination links 2026-10-14 11:56:50 +02:00
ideabsassistenza ad388ad21d fix(release): reject read-only Windows destinations before promotion 2026-10-14 11:56:07 +02:00
GalaxyGamingFRandClaude Opus 5.5 c177bde316 fix(trace_digest): print non-ASCII names on a legacy console
On Windows, piped or redirected output uses the ANSI code page, so a
trace whose thread or slice names are not in cp1252 (a Japanese thread
name, for example) made the markdown digest stop with
UnicodeEncodeError after the work was done. stdout is now set to UTF-8
when the tool runs from the command line, as check_conventions.py does.
The --json output was not affected because json.dumps escapes non-ASCII.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:52:39 -07:00
ShinMalphur 2507b84f16 test(tools): cover GPU mutex wait accounting 2026-10-14 16:22:30 +06:30
ShinMalphur 97bb32d516 fix(tools): classify GPU mutex trace slices as waits 2026-10-14 16:21:35 +06:30
GalaxyGamingFRandClaude Opus 5.5 25527f97a0 fix(stubgen): report named stubs by __func__
CONTRIBUTING.md says unimplemented exports call
NotImplemented_nid_no_patch(__func__), and 362 calls in core/ do. A stub
generated for a NID with a known name passed the NID string instead,
so its log line showed tNn5WBkta60 rather than sceAmprCommandBufferNop
and the output had to be edited by hand. Named stubs now use __func__;
stubs with an unknown name keep the NID, the only identifier they have.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:50:53 -07:00
GalaxyGamingFRandClaude Opus 5.5 efde691a45 fix(conventions): accept Depends on answered as a list
The pr-template check only accepted "Depends on: #N" or "none" on the same
line, so a checklist answering it as a bulleted list failed CI although
pr_overlap reads exactly that form (test_pr_overlap_dependencies covers
"Depends on:
- #2
- #3"). Allow one list marker before the first answer;
an empty answer is still reported.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:32:58 -07:00
Alexej Szpevák 739fcd7862 perf(tools): read checker file contents through one git cat-file process
Check read every technical debt file and every changed file with its
own git show, so each run started one process per file: 99 git
processes for a typical pull request, 311 for a 118-file range, and the
count grew with docs/dev/debt. Process start-up dominates on Windows.

Read the blobs the checks use in one git cat-file --batch process,
keyed by the object ids ls-tree already returns, and batch the files
duplicates() inspects the same way. Paths that are not cached still go
through git show, so failures are unchanged.
2026-10-14 11:11:38 +02:00