Repository navigation
refactor(prx): name the FreeTypeOt stubs the NID database resolves - #15687
Open
ItsJustChrisE wants to merge 1 commit into
Open
ItsJustChrisE wants to merge 1 commit into
ItsJustChrisE wants to merge 1 commit into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Progress report (acf7ac2 → beed3b3)➖ System libraries: 26.57% (+0.0%, +8 declared, -8 removed functions) 🆕 8 declared as stubs
🗑️ 8 removed
Changed libraries (implemented exports)
|
12 tasks done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Names 8 of the 68
sceFreeTypeOtUnknown_*_nid_no_patchexports inlibSceFreeTypeOt/Export.cppthattools/nid_names.pyresolves through its pinned aerolib database (statusrename-ready), as #14884, #15405, #15673, #15677, #15678 and #15686 did for other libraries:FT_Glyph_StrokeBorder,FT_Glyph_To_Bitmap,FT_Glyph_Transform,FT_New_Library,ft_glyphslot_alloc_bitmap,ft_glyphslot_free_bitmap,ft_glyphslot_set_bitmapandft_module_get_service.The FreeType names are declared with other signatures in
libSceFreeType/include/Api.hpp, which this library includes, so each helper follows the library's existing convention from d46a7c7 (sceFreeTypeOtGlyphCopy_nid_no_patch): it becomessceFreeTypeOt<Name>_nid_no_patchand keeps its explicitAPS5_EXPORTNID alias. Every body still throws throughNotImplemented_nid_no_patch, and the library exports the same NIDs as onmain. A title that reaches one now fails with the function's name instead of the placeholder's.The other 60 resolvable placeholders are left alone because open PRs already implement or rename them (#9588, #10582, #10591, #10593, #10594, #10600, #10606, #10609, #10611, #10613, #12004, #12370, #12373, #15050, #15053). The debt file adds the 8 names to the identified-NID entry and cuts the unknown count from 68 to 60.
Tested
Ubuntu 26.04 on WSL2, GCC 15.2.0, Release,
mainacf7ac208a. No title or homebrew run.compute_nid(name) == nidfor all 8 (tools/nid_names.py --from-file).nm -Don the patchedlibSceFreeTypeOt.prxofmainand this branch, both from full builds, ignoring the renamed_nid_no_patchhelper names: identical NID sets (151). All 8 NIDs are present in both.ctest -R 'freetype|FreeType|public_headers|patched_librar': 115 of 115 passed.tools/check_conventions.py --base origin/main: passed.tools/nid_names.py: 60 FreeTypeOt rows leftrename-ready, down from 68.tools/pr_overlap.py --branch: 1820 open pull requests probed. None share exports. feat(libSceFreeType): query glyph control boxes #9588, feat(freetype): implement font table validation #10897, feat(libSceFreeTypeOt): read Mac resource fork headers and data offsets #15050 and feat(libSceFreeTypeOt): implement FT_Select_Metrics, FT_Request_Metrics and FT_Match_Size #15053 share onlydocs/dev/debt/libSceFreeTypeOt.mdlines 3-4, which this PR has to edit to keep the counts right. 20 already conflict withmain(feat(libSceFreeType): implement FT_Library_SetLcdFilter and FT_Library_SetLcdFilterWeights #10582, feat(libSceFreeType): implement FT_Bitmap_Embolden and FT_GlyphSlot_Own_Bitmap #10591, feat(libSceFreeType): implement FT_GlyphSlot_Oblique and FT_GlyphSlot_Embolden #10593, feat(libSceFreeType): implement FT_Outline_Embolden, FT_Outline_EmboldenXY and FT_Outline_Transform #10594, feat(libSceFreeType): implement FT_Atan2 and the FT_Vector polar calls #10600, feat(libSceFreeType): implement FT_Get_Sfnt_Table and FT_Outline_Get_Bitmap #10601, feat(libSceFreeType): implement the FreeType module and renderer lookup calls #10602, feat(libSceFreeType): implement FT_Open_Face for memory and path sources #10604, feat(libSceFreeType): implement FT_Done_Library and FT_Reference_Library #10606, feat(libSceFreeType): implement FT_Outline_Render #10609, feat(libSceFreeType): implement FT_Set_Renderer #10611, feat(libSceFreeType): implement the variation and multiple-master calls #10613, feat(libSceFreeType): implement the legacy memory allocators #12004, feat(libSceFreeTypeOt): declare missing exports and forward base APIs #12370, feat(libSceFreeType): implement the legacy reallocation helpers #12373, feat(libSceFreeType): implement FT_Stroker_ParseOutline, FT_Stroker_Export and FT_Stroker_ExportBorder #12632, feat(libSceFreeTypeOt): implement disabled trace queries #12814, fix(relinker): match AppContent utility import to provider #13486, docs(debt): correct stale, contradictory and misplaced entries #14085, docs(debt): separate entries with blank lines and drop derived export totals #14212), so the tool could not compare them. Merging each intomainand into this branch gives the same number of conflict hunks inExport.cpp(none, or for feat(libSceFreeTypeOt): declare missing exports and forward base APIs #12370 the same two). In the debt file it gives the same number for all of them except docs(debt): correct stale, contradictory and misplaced entries #14085, which gains one on lines 3-4.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)🤖 Generated with Claude Code