Repository navigation
Conversation
5797c13 to
c51995e
Compare
|
Credit for the idea: @oneandonlydean |
|
@xdCloudy thanks, this catches the right thing. I ran One problem before it's useful: a PR that replaces an existing stub in place is flagged too, because "added" counts every Could you drop NIDs whose definition the same diff removes (run |
c51995e to
f23c960
Compare
|
Fixed in f23c960. The checker now derives export NIDs from both added and removed lines and subtracts NIDs removed by the same diff before comparing with base main, so replacing an existing export in place no longer reports it as a duplicate. Added a regression test for a _nid_postfix stub replaced by its plain-name implementation. The overlap test suite passes: 69 tests, 4 platform-specific skips; the conventions check passes locally. |
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Linux data point for
|
harisibrar1
left a comment
There was a problem hiding this comment.
Verified on Windows 11, Python 3.14, merged onto main 80565c5:
python -I -m unittest discover -s tools/tests -p "test_pr_overlap*.py": 71 tests OK, 4 skipped (69 OK at the head alone).check_conventions.pyagainst the merge base passes.- Negative control with main's
tools/pr_overlap.py: the new tests give 1 failure and 5 errors, the same as the Linux run above. - The in-place replacement case raised earlier is handled by subtracting
source_changed_exports(diff, "-")in f23c960. base_exportstakes about 19 s here and runs a singlegit archive, so no long command line on Windows.
Two problems with the new column:
-
The finding is stored under key
0(rows[number][0] = {"added": set(), "main_exports": names},tools/pr_overlap.py:344), andreport()turns every key into a PR link (:285).pr_overlap.report({0: {"added": set(), "main_exports": {"sceKernelRead"}}}, blob)renders| [PR 0](https://www.github.com/boykopovar/AnyPS5/pull/0) | | |sceKernelRead| |under "Other open pull requests touch the same code".test_report_includes_exports_already_on_mainuses key9, so it does not catch this. Could the names already onmainget their own section instead of a PR row, with a test that goes through the__main__row construction? -
Matching is by NID alone, across libraries. Running the PR's own
source_exportsovercore/libs/prxon main finds 44 NIDs exported by more than one library, e.g.0hlfW1O4Aa4(libclocaleconv,libSceAmprsceAmprLocaleconv),-vXEQdRADLI(strtok_s/sceAmprStrtokS),2UFh+YKfuzk(ctime_s/sceAmprCtimeS). A PR adding a correct export of such a NID to a second library would be listed as "already onmain". Keying both sides by(core/libs/prx/<library>, NID)would keep the same-library duplicates and drop these.
Reviewed with AI assistance (Claude Code); the checks above were run locally on my machine.
f33836e to
d9aa2c2
Compare
|
Following up on the review:
|
harisibrar1
left a comment
There was a problem hiding this comment.
Rechecked d9aa2c2 merged onto main 950388b: names already on main now render in their own "Exports introduced here that are already present in main" section with no PR 0 row, base_exports keys exports by library via library_for_path, and test_pr_overlap*.py passes (4 platform skips).
Reviewed with AI assistance (Claude Code); the checks above were run locally on my machine.
|
Thanks for rechecking the updated head against main and confirming the dedicated main-export section, per-library NID matching, and the overlap test results. I appreciate the approval and the careful follow-up. |
|
Relevant: GitHub could not compare #988 because its branch conflicts with base. I’ll manually review the shared tools/pr_overlap.py changes and update this PR if coordination is needed. This warning does not itself identify an export overlap. |
|
The Ubuntu relinker check on this PR was cancelled. I tried to rerun it, but GitHub requires repository admin rights. Locally, the current head passes the merge-tree check against current main, |
|
Follow-up on the overlap bot warning: I reviewed #988's exact |
d9aa2c2 to
9071d69
Compare
9071d69 to
69d4663
Compare
What
Extends the PR overlap checker to compare each PR's newly added export NIDs against the target base branch. The comparison recognizes
APS5_VABIdefinitions,APS5_ASM_FUNCTIONandAPS5_SIGNAL_ASM_FUNCTIONexports, and literal NIDs fromAPS5_EXPORT. It reports matching export names already present onmain, including when a plain-name export maps to an implementation with a_nid_postfixsuffix. NIDs removed by the same diff are subtracted so in-place replacements are not reported as duplicates.This is the follow-up suggested by Dean in #8961. It is based on current upstream
mainand does not depend on #8961.Tested
python -m unittest discover -s tools/tests -p 'test_pr_overlap*.py'— 69 tests passed; 4 platform-specific tests skipped.python -I tools/check_conventions.py --base upstream/main --head HEAD— passed.git diff --check— passed.python tools/pr_overlap.py --repo boykopovar/AnyPS5 --base main --branch HEAD— no overlap with currently open PRs.main: 9,128 distinct export NIDs recognized.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)