Repository navigation
feat(libc): export std::numpunct<wchar_t> id and _Getcat - #11773
Conversation
Progress report (ba62780 → 014001a)📈 System libraries: 26.25% (+0.01%, +7 implemented functions) ✅ 7 implemented
Changed libraries (implemented exports)
|
d966bfd to
97f4f6c
Compare
|
Rebased onto current |
|
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.
|
|
Rebased automatically onto current |
97f4f6c to
c52c52f
Compare
|
@edubox thanks, the layout and vtable order match Dinkumware's
No other changes requested; |
|
Addressed the review on
Verified: AI-assisted: yes |
4670904 to
7d0f2a2
Compare
|
Rebased automatically onto current |
1c77eb0 to
37ee72b
Compare
|
Rebased automatically onto current |
|
Rebased automatically onto current |
37ee72b to
e654d6e
Compare
|
Rebased automatically onto current |
e654d6e to
e4d0f50
Compare
|
Windows result for head Host: Windows 11 26300, Intel i7-12700K, WinLibs GCC 15.2.0 (x86_64-ucrt-posix-seh, r6), Release, The tree also carried the open libc PRs #11793, #11890, #11843 and #11846, all merged cleanly, so the run is a joint one; the test of this PR is AI-assisted: yes (Claude Code), the runs and the numbers above are from this machine. |
|
Rebased automatically onto current |
d54b900 to
25812b3
Compare
|
Rebased automatically onto current |
|
Rebased automatically onto current |
25812b3 to
382e8d5
Compare
|
Rebased automatically onto current |
c9be277 to
aa51c3b
Compare
|
Rebased automatically onto current |
aa51c3b to
2ce4d51
Compare
|
Rebased automatically onto current |
2ce4d51 to
0fb5a3a
Compare
|
Status on head
Verified on this machine: AI-assisted: yes |
|
Rebased automatically onto current |
0fb5a3a to
8e4a934
Compare
|
Rebased automatically onto current |
8e4a934 to
e60cd0b
Compare
|
Watchdog status on
|
|
Rebased automatically onto current |
e60cd0b to
7bacb3d
Compare
|
Watchdog status on
|
|
Watchdog re-check on
AI-assisted: yes |
|
Watchdog re-check on
AI-assisted: yes |
|
Rebased automatically onto current |
7bacb3d to
8e89d89
Compare
|
Watchdog verification on head
Nothing is pushed. |
8e89d89 to
90d4acc
Compare
|
Rebased onto current @oneandonlydean the two review points stay as in the previous head:
AI-assisted: yes (opencode). |
|
Hi @edubox, #14373 (the |
|
Rebased automatically onto current |
90d4acc to
014001a
Compare
|
Watchdog verification on the current head
AI-assisted: yes |
What
Export
std::numpunct<wchar_t>::id(XZNi3XtbWQ4) and implementstd::numpunct<wchar_t>::_Getcat(SdXFaufpLIs), the two unversioned libc symbols that thelibc.prxof Rayman 30 Aniversario (PPSA33016) and Fatal Frame II (PPSA32802) import and AnyPS5 does not export.The facet is the same 0x30-byte C-locale object as the narrow
numpunct<char>:groupingis a narrow string pointer at offset 0x10,falsenameandtruenameare pointers to 16-bit strings at offsets 0x20 and 0x28, anddecimal_pointandthousands_separe 16-bit values at 0x18 and 0x1a. Thegroupingvirtual writes the narrow string with the narrow size and capacity rules (inline capacity 15, heap capacitylength | 15), whilefalsenameandtruenamewrite the guest 16-bit string with the same rules ascollate<wchar_t>::do_transform(inline capacity 7, heap capacitylength | 7, two bytes per unit)._Getcatreturns 4, as the narrow entry does.Console evidence: in the
libc.prxshipped by PPSA33016 (unwrapped, dynsym),XZNi3XtbWQ4is an 8-byteSTT_OBJECTin.data, andSdXFaufpLIsis a 0x17b-byte function at 0xa2670 that allocates 0x30 bytes, stores the vtable, the empty grouping string, 16-bit'.'and',', pointers to the 16-bit strings"false"and"true", and returns 4.Tested
guest_locale_testspasses. The new checks cover the wide id's 8-byte size, the facet's 16-bit./,, the narrow empty grouping, and the 16-bit"false"/"true"._Cnd_register_at_thread_exit/_Cnd_unregister_at_thread_exitpair, so that run used a local build that includes those registrations; this PR does not depend on that work.__stack_chk_fail) that never reaches the wide facet, so it is not used as evidence here.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)