Repository navigation
feat(libSceNpCppWebApi): bring up Matches V1 offline - #13194
Conversation
Progress report (096c455 → daa15bc)📈 System libraries: 26.29% (+0.06%, +47 implemented, +41 declared functions) ✅ 47 implemented
⚪ 12 behaviourally empty (constant return or throw)
🆕 41 declared as stubs
Changed libraries (implemented exports)
|
|
Thanks @edubox. I checked the retained PPSA21564
The sampled constructor does zero two words and its destructor is a no-op; those are consistent. The unresolved parts are factory/setup semantics, local state and the tests above, not a request for network implementation.
|
|
Windows run of this head (
AI-assisted: yes (Claude Code). |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
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.
|
759cdd9 to
695e14d
Compare
|
Rebased onto current Verified on this exact head (Linux x86-64, GCC 16.2.1, Release):
AI-assisted: yes |
|
Rebased onto current Verified on this exact head (Linux x86-64, GCC 16.2.1, Release):
AI-assisted: yes |
34e64ec to
7be0456
Compare
|
Rebased onto current Verified on this exact head (Linux x86-64, GCC 16.2.1, Release):
AI-assisted: yes |
|
Rebased onto current Focused tests pass: AI-assisted: yes (Claude Code). |
7be0456 to
8d31a69
Compare
|
Rebased onto current
Head is now |
01e5e5f to
dec95cf
Compare
|
Rebased onto current
Head is now |
|
Rebased automatically onto current |
dec95cf to
c74e2ea
Compare
|
Rebased automatically onto current |
c74e2ea to
1f8ddcd
Compare
|
Rebased automatically onto current |
1f8ddcd to
d1390b7
Compare
|
Rebased automatically onto current |
d1390b7 to
a7a826c
Compare
|
Rebased automatically onto current |
a7a826c to
d7548df
Compare
|
Rebased automatically onto current |
d7548df to
fe8678a
Compare
|
Rebased automatically onto current |
fe8678a to
491c8ce
Compare
|
Datapoint from a second machine — validated
One audit-derived datapoint on coverage: this PR's export set accounts for 83 of the 113 title-imported |
|
Rebased automatically onto current |
491c8ce to
f056c4a
Compare
|
Rebased onto
Tests: |
|
Thanks for the ABI/state repair. One valid-input case remains at For example, I independently re-read the bundled module at NID Please handle valid empty vectors consistently in these setters, or keep genuinely unsupported vector semantics explicit, and add a constructor-to-setter empty-vector case alongside the nonempty state checks. Keep the corrected scalar/string offsets, initializer arguments/errors and removal of unsupported-call throw pins. The declared host representation choice does not make a valid empty vector an invalid request body. |
|
Rebased automatically onto current |
c61ee17 to
40e3ffc
Compare
|
Addressed the empty-vector case at
Validation on this head:
|
❌ AMD GPU test: failedPR head
Failing testsThis PR changes test files, so each failing test was also built and run on main with only the PR's test changes applied. ✅ there means the failure comes from the PR's other changes; ❌ means the test fails on main too, so this run does not show the PR caused it.
public_headers: Failed (also failed when re-run alone), assertion and diagnosticsUnstable on main (6, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (9, not counted against this PR)Validated but not compared (68, not in the main baseline's validation pass)Validation IDs already present on main (5 IDs in 717 tests)Skipped (122)ReproduceAutomated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
|
Hi edubox, thanks for the quick fix. At One follow-up from the AMD GPU run on this head (19:22 UTC): |
…eal initialize ABI The 34 Matches request/model setters now store the value and the is-set flag at the offsets measured in the module bundled with PPSA21564/PPSA23732 (builds J03093737/J03341606). The 10 vector setters copy the vector handle and increment the body reference count at +0x30 instead of deep-copying the elements; that difference is a host choice and is recorded in the debt. The six ParameterTo* initializers now take their actual string and IntrusivePtr request-body arguments. They allocate a host implementation of the module layout, keep the string and body, and return 0x80553503 for a null context or text, 0x80553502 for an unset context, 0x8055350f when already initialized, 0x80553504 on allocation failure and 0x80553512 for an empty request body. terminate releases the state and returns 0x80553510. The 22 factories no longer return a fake signed-out result: they throw NotImplemented_nid_no_patch and are recorded as unsupported. The six API verbs keep SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN as offline request paths. The three accessors read the measured fields. The test pins the measured offsets, flags, reference counts and lifecycle/error codes instead of asserting null-self success or NotImplemented throws.
|
Rebased automatically onto current |
8ee180c to
d5dc4bd
Compare
|
Applied the follow-up: removed the redundant Verification on the pushed head:
AI-assisted: yes (opencode) |
What
Brings up
sce::Np::CppWebApi::Matches::V1offline. 88 NIDs imported by the dumps had no implementation:MatchApi::{createMatch,joinMatch,leaveMatch,reportResults,updateMatchDetail,updateMatchStatus}SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN, as offline request pathsNotImplemented_nid_no_patchinstead of returning a fake signed-out resultParameterTo{CreateMatch,JoinMatch,LeaveMatch,ReportResults,UpdateMatchDetail,UpdateMatchStatus}ctor/initialize/terminate/dtorIntrusivePtrrequest-body arguments; host implementation of the module layout.initializereturns0x80553503for a null context or text,0x80553502for an unset context,0x8055350fwhen already initialized,0x80553504on allocation failure and0x80553512for an empty request body;terminatereturns0x80553510get*,*IsSet)Evidence: the module bundled with PPSA21564/PPSA23732 (builds
J03093737/J03341606). The 10 vector setters copy the vector handle and increment the body reference count at +0x30 instead of deep-copying the elements; that difference and the host allocator are recorded in the debt. Response layouts beyond the measured fields are unverified.Tested
Linux x86-64, GCC 16.2.1, Release with
BUILD_TESTING=ON, rebased onmainab6f5d32ed:ctest --test-dir build -R '^guest_np_cpp_web_api': 11/11 passed, including the newguest_np_cpp_web_api_matches. It pins every setter's measured offset and is-set flag, the vector/IntrusivePtr reference counts, the three accessors and the parameter lifecycle with actual ABI arguments and error codes.python3 tools/check_conventions.py --base origin/mainpasses.python3 tools/pr_overlap.py --branch feat/npcpp-matches --jobs 32: no overlap with active open pull requests. The tool could not compare a set of stale pull requests that already conflict withmainincore/libs/CMakeLists.txt.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)