Repository navigation
feat(libs): implement font, libc, libkernel and misc prx stubs - #2193
Thomas73737 wants to merge 3 commits into
Conversation
|
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.
|
|
|
|
Done — dropped the |
583a206 to
ab61709
Compare
|
De-conflicted this PR against the overlapping open PRs flagged by the overlap bot:
Progress is now 2710/3048 (88.91%) computed honestly. |
|
Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head It doesn't build on Windows: The Windows CRT has no Its With the 🤖 Addressed by Claude Code |
ab61709 to
7f94f1c
Compare
|
Fixed both Windows issues from the native build. Thanks for catching them:
Also built/libtested on Linux (clean), conventions pass. Progress is now 2708/3047 (88.87%) counted honestly. |
7f94f1c to
f14564e
Compare
- libSceFont/libSceFontFt: attribute, script language, typographic design, words, text layout and FreeType rendering paths - libc/libSceLibcInternal: locale data, heap diagnostics, vsnprintf, forced TLS destructor - libkernel: sceKernelFcntl, page table stats, module info, coredump debug text, exception handling, pthread_cancel - libScePsml_debug/libSceSystemGesture/libSceVoiceQoS: real state machines instead of stubs
f14564e to
6a5f125
Compare
|
Force-pushed an update to keep this PR overlap-free with the open backlog. Dropped the groups that other open PRs already cover (thank you @popcoder565 for the Windows follow-up too):
Also fixed the Windows build (the Re-validated on this tree: |
|
@Thomas73737 thanks. The const int result = ::fcntl(d, cmd, arg);
-#endif
if (result < 0) {
return SceErrorFromErrno(errno);
}
return result;
+#endif
}With that change the full suite passes on Windows (513 of 513, merged onto 🤖 Addressed by Claude Code |
|
Closing, for the same reason @oneandonlydean closed #1498, which this continues:
You are welcome to reopen with one library at a time, each function tied to a title that reaches it on |
Progress report (8b393b6 → 8973abb)📈 System libraries: 87.98% (+3.29%, +100 implemented functions) ✅ 100 implemented
|
What
Implements library exports that were still unimplemented on
main, in several areas:std::__atomic_asserthelper (prints the failed assertion to stderr and aborts instead of the previous no-op stub), and the forced TLS destructor pass.sceKernelFcntl, page table statistics, module info,pthread_attr_setsolosched_npand__tls_get_addron Linux.sceSslGetPemstays a throwing stub.sceAjmBatchJobDecodeSplitdelegation, NGS2 geometry/panifier/render parameters, AudioOut2 mastering state/init/terminate, 3D latency and supported-attribute queries, and AudioIn open/hq/async capture paths.Every unimplemented path still throws
NotImplemented_nid_no_patch; the silent stubs that remain are documented indocs/dev/TechnicalDebt.mdin this pull request.To keep this PR overlap-free with the open backlog, the following were left out (already covered elsewhere, or reverted here):
sceVdecsw*(the whole H.264 decoder library) — covered by feat(libs): implement libSceVdecsw on top of libSceVideodec2 #2203.sceFontGlyphRenderImage*— covered by feat(font): render generated glyph images #2150.sceKernelAioPollRequests— covered by feat(libkernel): implement sceKernelAioPollRequests #2118.sceLibcUnknown_BnMAMrsfVWo(malloc_stats_fast) — covered by feat(libc): implement malloc_stats_fast through the application allocator #2039.pthread_cancel/scePthreadCancel— covered by test(libkernel): cover cancellation recovery for #1668 #1739.libcCyberUnknown08(__powidf2) — covered by feat(libc): implement __powidf2 #2158.libcCyberUnknown*and the wide-collatesceVnchk*/sceVnpa*/nvchargroup — covered by refactor(libc): name the 12 Cyberpunk stubs the NID database resolves #2301/feat(libc): implement abs #2316 and feat(libc): implement collate<wchar_t>::_Getcat #2333.After the review of #1498:
tools/progress.pynow countsUnsupportedQuerycalls as stub markers (so the libSceFontUnsupportedQuerythrowers stay "pending"),scePsmlMfsr2*andsceAgcDriverRegisterMultipleResourceskeep the honestNotImplemented_nid_no_patchpath, and thepthread_cancel/scePthreadCancelwork was dropped because PR #1739 covers it.Tested
CMAKE_BUILD_TYPE=Release).ninja -C build: builds clean.ctest --test-dir build -j2: 511/513 pass. The two failures are environmental on this host:guest_random(std::random_devicereturns the constant0xFFFFFFFFhere, reproduced by a standalone program with no project code involved) andagc_driver_f32_denormal_flush(this GPU's float-denormal handling differs from the expected RDNA behaviour). Three AGC-driver tests skip by design.python3 tools/progress.py: libraries 2678/3044 (87.98%) against 2578/3044 (84.69%) onmain(+100 functions); shaders 1166/1166 (100%).tools/progress.pynow also treats a call to theUnsupportedQuerythrow helper as a stub marker, so the count only grows for real implementations.python3 tools/check_conventions.py --base origin/main --head HEAD: passed.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)