Skip to content

feat(libSceIcu): implement UTF-16 search and memory primitives - #10967

Open
AZLisme wants to merge 4 commits into
boykopovar:mainfrom
AZLisme:feat/batch4-icu-search
Open

AZLisme wants to merge 4 commits into
boykopovar:mainfrom
AZLisme:feat/batch4-icu-search

Conversation

@AZLisme

@AZLisme AZLisme commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

What

Implement u_memmove, u_memset, u_memchr, u_memrchr, u_strchr, u_strrchr, u_strFindFirst, u_strFindLast, u_strcmpCodePointOrder and u_strncmpCodePointOrder. Preserve overlapping moves, full-width fills, code-point boundaries, embedded NULs, defined empty/null shortcuts, streaming early returns and exact comparison differences. Bulk writes hold GuestArena::HostWrite and reject a denied guard before modifying the destination.

Head babf2bc72012bd926f35408b3d602d162a5ecd1b resolves the captured #12320 integration collision by naming this topic's files Utf16Search.cpp/.hpp and its existing fixture guest_icu_utf16_search_tests / guest_icu_utf16_search. Implementation, declaration and fixture bytes, all ten NIDs, and behavior are unchanged from published cc73317. The separate substring implementation can retain Search.cpp/.hpp and its test names. Shared source lists, umbrella includes and debt must retain both topics; #12320 adds no prerequisite for this PR.

This standalone head retains frozen main 6e9b9134f6ed14e659d870a33118d164096551df, its merged ICU implementations/tests/debt and all 112 inherited throwing unknown exports. Its static merge with checked main 3a40945e62b7e2543031d5da2b8e351ab603bc1a is clean; that check is not executed later-main integration. The actual predecessor #10966 remains required, with #11088 following #10967.

Contracts follow pinned ICU 78.1 ustring.cpp and ustring.h; names/NIDs match the pinned PS5 3.20 inventory. Console verification, undefined-input and size differences remain in library debt.

Tested

2026-11-01 Windows CI: run 41295117065, a7d9bb807d8b8361261dca649d01579c2d5d72b2 + main 26fa1212b82f76dd49cf12d65e445d6ff3e0844c: 1,679 selected CTests passed, 904 skipped, zero failed. All 9 ICU cases passed, including guest_icu_utf16_search. The production ICU module built, linked and was NID-patched. This is the fixed single-PR integration, not the six-topic Windows union. General full-suite, skip-audit and header CTests were not run; native ABI/context/unload, existing dependencies, CI and review gates remain.

2026-11-01: preserving rebase a7d9bb807d8b8361261dca649d01579c2d5d72b2 onto fixed main 26fa1212b82f76dd49cf12d65e445d6ff3e0844c. Linux GCC 16.2.1 Release: baseline 61 plain + 4 logging-enabled runtime CTests; private SIG-plus-six-ICU union 4908848dab02fb1f0a9fad7e9525ddb8a628177a 71 + 6. All passed, with 65 public-header tests per side. Relevant: guest_icu_utf16_search. Scope is this fixed baseline/private composition; bare heads, later main, Windows, native ABI and unloading remain unqualified. Earlier results retain their original scope.

2026-10-30 fresh Linux integration check on fixed main 0362b1521c4ee08eeeccc2f98e9987e36fca9ea1: a separate private candidate 8a5c8c499f0e0a157bd110430c1d99ee73bb0d47 (tree 620649fa8b0512d9c7e114c670342a691fd1433a) combines #10953 at 581d45c282371af828efec2a8cec6f43beacc68a with the same six unchanged published ICU heads recorded in the earlier converter-callback integration update. No public branch was rebased by this check.

Fresh native Linux x86-64 Release builds passed 53/53 selected plain runtime CTests on that main baseline and 63/63 on the private candidate. With ANYPS5_LOG_FILE set before process startup, another 4/4 baseline and 6/6 candidate runtime executions passed. Together these are 126 runtime CTest executions; both lanes also passed 65/65 public-header checks, 130 header executions total, with zero failed, skipped or Not Run rows. The candidate ran all 13 registered ICU fixtures, including both guest-memory protection fixtures; converter callbacks ran in both lanes. The selected integration set also exercises logging, heap/allocator, signal, exception and thread behavior.

Production NID patching and readelf/nm inspection found the baseline’s four converter-callback NIDs and all 39 targeted candidate NIDs; this is artifact evidence, not patched-loader functional coverage. Twelve separately observed controlled std::abort child runs returned the expected exit 3; they are not additional CTests or proof of native signal-context behavior. Source and dependency identities were checked before and after execution.

These results apply only to the fixed baseline and private SIG-plus-six-ICU candidate. They add no bare-public-head, later-main, Windows, native-ABI, full-suite, GPU or unload qualification. Earlier results keep their original inputs and scope. The existing predecessor, preserving-rebase, maintainer CI and review requirements and agreed ICU landing order still apply.

2026-10-30 converter-callback integration update: #12692 actually merged as 91a69952c100 (topic 207ac4b5ecfe). Against pinned main 08a10d225306ad102b57408e2ef7566bcfb829b2, all six published ICU heads remain independently clean to integrate; this source review found no duplicate implementation, new dependency or individually required rebase. A separate private all-six union, 6e174798251592474dd94c61975655b409b9c2e9 (tree 446a6e346d3c6fac2e19e358d4376376778c7ae9), preserves 35 owned helpers, the four landed converter callbacks and 13 source-registered ICU fixtures through routine shared-file resolutions; the 98 unknown stubs remain unchanged.

Exact published inputs: #10962 bbccec1140eeccb5adf61f7c497791b183c1bf93, #10963 28cc96f3be1e16d2e3f098b0ae5b77b4fea85e09, #10964 4360e8f85b0bbd184199d9a3822dc30a8bd5f81e, #10965 c2076fe30ee3442546af395930defd74b7bfac2a, #10966 491e27444d83b53bc215a94edf132aee6a4707d7, #10967 babf2bc72012bd926f35408b3d602d162a5ecd1b.

Fresh native Linux x86-64 Release, GCC 16.2.1: the pinned08a main baseline passed 18/18 selected runtime cases and 65/65 public-header checks; the exact private all-six union passed 26/26 runtime cases and 65/65 headers, with zero failures, skips or Not Run rows. The union executed all 13 ICU fixtures, including guest_icu_copy_guest_memory and guest_icu_utf_memory, alongside 13 heap/allocator cases; the converter-callback fixture passed in both lanes. Production NID patching plus readelf/nm inspection verified the four callback NIDs in the baseline and all 39 targeted NIDs in the union (35 owned helpers plus four callbacks). This last check is artifact inspection, not patched-module loader runtime or native-ABI proof.

These results cover only that fixed baseline and private all-six union, not any bare published head, later main, Windows/native ABI, all-nine integration, full suite, title or GPU behavior. Earlier main750 and other historical results retain their original inputs and scope. The declared order remains #10962, #10963, #10964, #10965, #10966, #10967, then #11088; the already merged #12692 adds no new prerequisite. Actual #10966 merge must come first, followed by a preserving rebase, fresh integration checks and re-review before this PR lands.

Exact candidate babf2bc72012bd926f35408b3d602d162a5ecd1b, standalone base 6e9b9134f6ed14e659d870a33118d164096551df:

  • Linux x86-64, fresh normal-root Release, BUILD_TESTING=ON: built 197 objects and the real ICU/libc/kernel providers. guest_icu_utf16_search, guest_icu_version and guest_icu_unescape passed 3/3, plus 65/65 normal public-header CTests, with zero failures or skips. Renamed source compilation, actual fixture/provider artifacts, the recorded compiler-input manifest and critical actual inputs and unchanged source/dependency bindings were checked independently.
  • Windows x86-64 (OS build 10.0.26100.33650), verified WinLibs GCC 15.2.0 r7/UCRT, fresh normal-root Release, BUILD_TESTING=ON: run 40669914236, attempt 1 passed the candidate's 3/3 ICU runtime fixtures and 65/65 normal public-header CTests. The separate bare-main control passed 2/2 +65/65: 135 actual CTests total, zero failures, errors or skips. The original _WIN32 aborting rejection checks remain active under Release; coverage of these subcases follows from the unchanged control flow, native macros and passing fixture rather than separate subcase telemetry. Both lanes compiled freshly without project-object/compiler-cache reuse; source/dependency identity, actual executable/provider payloads, native macros and raw test logs were verified.

The Linux lane does not execute the Windows-only denied-write rejection cases. Current-head macOS, PS5, sanitizer, full-product/upstream CI and later-main/foreign-composition runtime are outside these results. Native provider resolution uses source/import/path evidence; no direct loaded-DLL trace is claimed. Required conventions against origin/main, whitespace, source preservation and static merge checks passed.

Earlier results remain historical at their named heads and bases, including the previous cc73317 Windows run. The review, applicable full maintainer CI, actual predecessor #10966 and agreed ICU landing order remain gates.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: feat(libSceIcu): implement UTF-16 scalar counting and search #10966
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Progress report (26fa121 → a7d9bb8)

📉 System libraries: 26.22% (-0.01%, +10 declared functions)

🆕 10 declared as stubs
Library Name
libSceIcu u_memchr_nid_postfix
libSceIcu u_memmove_nid_postfix
libSceIcu u_memrchr_nid_postfix
libSceIcu u_memset_nid_postfix
libSceIcu u_strFindFirst_nid_postfix
libSceIcu u_strFindLast_nid_postfix
libSceIcu u_strchr_nid_postfix
libSceIcu u_strcmpCodePointOrder_nid_postfix
libSceIcu u_strncmpCodePointOrder_nid_postfix
libSceIcu u_strrchr_nid_postfix

Changed libraries (implemented exports)

Library Before After Change
libSceIcu 28/2475 (1.13%) 28/2485 (1.13%) -0.0046%

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bulk-write guard is not checked before either write. On Windows, GuestArena::HostWrite::Open() can return false when the target overlaps a read-only guest mapping (WindowsMappings::BeginHostWrite rejects views whose protection is not writable). These functions then continue into std::memmove or the element stores, which can fault instead of following the guest-memory access path. Please check access.Open() and handle failure consistently with the library's error policy before writing, and add a Windows regression test using a read-only guest mapped view for both exports. The current tests only exercise ordinary host arrays, so they do not cover this guard failure path.

@AZLisme
AZLisme force-pushed the feat/batch4-icu-search branch from 7f79600 to 92d7db3 Compare October 25, 2026 13:15
@AZLisme

AZLisme commented Oct 25, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 92d7db3ea8fa81e387a9431a68e2cdbb8d09b478: both u_memmove and u_memset check HostWrite.Open() and throw before mutation if access is denied. Real direct-memory tests cover mapped overlap, cross-page fills, read-only sources and untouched canaries; Windows-only cases cover wholly read-only and mixed writable/read-only destination ranges for both exports.

Rebased onto 401731067856. The complete ICU build, 1/1 focused Linux runtime test, public headers, conventions and whitespace checks pass. Windows regressions are added but were not executed on this Linux host. The #10966 integration order remains declared. Please re-review; a maintainer full Linux/Windows CI run would exercise the new Windows cases before merge.

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the exact updated head 92d7db3ea8fa81e387a9431a68e2cdbb8d09b478. Both bulk-write functions now stop before mutation when HostWrite::Open() rejects access. The added direct-memory regression checks a read-only page and a destination spanning read-only and writable pages for both u_memmove and u_memset, then verifies the memory contents remain unchanged. Existing overlap, boundary, Unicode search, and code-point comparison coverage remains in place.

I ran python3 tools/check_conventions.py --base upstream/main --head HEAD and git diff --check upstream/main...HEAD; both pass. The author reports the focused Linux runtime test and Windows-specific cases passing; hosted product build/test jobs are skipped, and I did not independently run the full CMake test here. I found the previously requested failure path addressed and no remaining blocking issue in this scoped change.

@AZLisme

AZLisme commented Oct 25, 2026

Copy link
Copy Markdown
Contributor Author

One clarification to the approval’s validation summary: the new Windows read-only regressions are added and source-reviewed, but not executed on my Linux host. My runtime result for this updated head is the Linux ICU build and 1/1 focused test; hosted product builds remain skipped. The PR body and fix reply retain that qualification. Thank you for the re-review.

@wachi35676

Copy link
Copy Markdown
Contributor

Tested head 92d7db3ea8 merged onto main 14eb2cda22 on Windows 11 (WinLibs GCC 15.2.0, Release, BUILD_TESTING=ON). This adds the Windows run to the Linux one in the description.

  • The tree configures with the new libSceIcu/CMakeLists.txt, and guest_icu_search pass 3 of 3 runs on Windows.

AI-assisted: yes (Claude Code); results above were run on this machine.

@AZLisme

AZLisme commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for testing 92d7db3ea8 merged onto main 14eb2cda22 on Windows 11. The successful configuration and three passing runs of guest_icu_search add Windows runtime evidence alongside our earlier Linux validation. I will credit your report with its exact head, main revision and toolchain, separately from our own results. The existing merge dependency on #10966 remains unchanged.

Please re-review this head; integration can follow #10966.

@oneandonlydean oneandonlydean self-assigned this Oct 26, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 26, 2026
@AZLisme
AZLisme force-pushed the feat/batch4-icu-search branch from 92d7db3 to 444f4df Compare October 26, 2026 17:27
@AZLisme

AZLisme commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Prepared a preserving rebase on 6733079b2d01bb25aa1e6e771680da6a17363e3b, which contains the actual #11013 merge. New head: 444f4dfec5a9fc3c5da670853c93316005a2acd0. The parent invariant/version implementation, declarations, regression test and debt entry are retained, together with both complete CMake test registrations. Our search implementation, canonical header and regression oracle remain byte-identical to 92d7db3ea8. Only obsolete generic debt wording was scoped. Source-preservation, conventions and whitespace checks passed; Fresh exact-head Linux Release validation passed 2/2 CTests (guest_icu_search, guest_icu_version), zero failures/skips, and all five C++ header units. The complete ICU module/fixtures were rebuilt; the common base-673 libc/kernel was built once and reused after exact per-head input/helper/artifact qualification. Independent source-preservation review passed. Earlier platform/CI/private-union evidence remains scoped to its original heads; this adds no native Windows/macOS/PS5 or full-product result. The existing dependency on #10966 and #11088 following this PR remain unchanged. No new Windows, console or full-product validation is claimed.

Please re-review and merge after #10966 lands and the preserving integration rebase, applicable checks and maintainer review permit.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 26, 2026
oneandonlydean added a commit to oneandonlydean/AnyPS5 that referenced this pull request Oct 27, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@AZLisme
AZLisme force-pushed the feat/batch4-icu-search branch from 444f4df to 7e26b76 Compare October 27, 2026 09:55
@AZLisme

AZLisme commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Rebased to 7e26b7683b10 on frozen main aebeaa53f54d after #10961 merged, preserving its unescape source/tests and this topic’s implementation, headers and fixtures. Fresh normal-root Linux Release validation passes 3/3 focused ICU tests and 65/65 header CTests with no skips; core/module/fixtures were built fresh. Conventions and whitespace checks pass. Earlier CI/platform results remain historical. Please re-review; eventual merge remains conditional on #10966, the agreed ICU landing order, integration, applicable CI and review requirements.

Please re-review this rebase; after #10966 lands and current-head integration CI passes, please merge in the agreed order.

@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Oct 27, 2026
@AZLisme
AZLisme force-pushed the feat/batch4-icu-search branch from 7e26b76 to cc73317 Compare October 27, 2026 23:32
@AZLisme

AZLisme commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto frozen main 6e9b9134f6ed14e659d870a33118d164096551df as cc73317fb2bd06bf75e011587cc2fbfb6f973dea, preserving the actual #11760 merge, all 112 throwing unknown exports and their debt, and all upstream ICU code/tests. Only debt integration needed conflict resolution; this topic’s implementation and fixture bytes are unchanged from 7e26b7683b10d4641f9b0be6adf3e299048f6a74.

Exact-head Linux Release validation passed: guest_icu_search, guest_icu_version, guest_icu_unescape (3/3) and all 65/65 normal public-header CTests, with no failed or skipped CTest cases. The common core was built fresh from the pinned main; retained objects were qualified against exact commands and observed inputs. New-head native Windows/full-product CI remains pending. The Windows-only read-only destination rejection and unchanged-output subcases for memmove/memset were not executed on Linux.

Please re-review and merge after actual predecessor #10966 lands and the applicable full-CI/review gates pass. The agreed ICU landing order is unchanged.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 28, 2026
@AZLisme

AZLisme commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Native Windows validation now covers the published cc73317fb2bd independently on frozen main 6e9b9134f6ed: run 40621182257/a1, fresh normal Release build, 3/3 focused fixtures + 65/65 public-header checks, zero failures/skips. Windows read-only memmove/memset rejection checks ran. Raw logs, native binaries and before/after source checks were independently reviewed. This is focused component evidence; full maintainer CI and review remain required. Actual predecessor #10966 merge remains required. Updated Tested with the exact scope. Please re-review and merge when the existing gates are satisfied.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

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.

Pull request Shared files not compared
PR 12320 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 12738 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 13128 core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 13486 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 13578 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 14016 docs/dev/debt/libSceIcu.md
PR 14050 core/libs/prx/libSceIcu/CMakeLists.txt
docs/dev/debt/libSceIcu.md
PR 14123 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 14144 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 14212 docs/dev/debt/libSceIcu.md
PR 14285 core/libs/prx/libSceIcu/CMakeLists.txt
PR 14340 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 14443 core/libs/prx/libSceIcu/CMakeLists.txt
core/libs/prx/libSceIcu/libSceIcu.hpp
docs/dev/debt/libSceIcu.md
PR 15346 core/libs/prx/libSceIcu/CMakeLists.txt
docs/dev/debt/libSceIcu.md

@AZLisme

AZLisme commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the captured #12320 source/header and test-registration collisions in babf2bc72012bd926f35408b3d602d162a5ecd1b: this PR now uses Utf16Search.cpp/.hpp, guest_icu_utf16_search_tests and guest_icu_utf16_search. The implementation, declarations, ten NIDs and full fixture body are unchanged. Separate translation units and unique test names preserve both topics without adding a dependency.

Fresh normal-root Linux Release: 3 ICU runtime tests +65 public-header tests passed, zero failures/skips, with real ICU/libc/kernel providers and independently checked fresh compilation. Native Windows run 40669914236/a1: candidate 3 runtime +65 header tests passed; separate baseline 2+65 passed (135 total, zero failures/errors/skips), with the unchanged native Windows fixture and its original aborting checks active. Each lane used a fresh normal-root Release build.

Required conventions and a static merge check against pinned main 3a40945e pass. These are standalone component/header results; later-main integration and applicable full maintainer CI remain separate. Please re-review and merge once actual predecessor #10966 and the existing CI/integration requirements are satisfied. The agreed ICU landing order through #10967 to #11088 remains unchanged.

@AZLisme

AZLisme commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

2026-11-01 Windows validation: run 41295117065, a7d9bb807d8b8361261dca649d01579c2d5d72b2 + main 26fa1212b82f76dd49cf12d65e445d6ff3e0844c, attempt 1: 1,679 passed, 904 skipped, zero failed in the changed-guest CTest selection. All 9 current ICU cases passed, including guest_icu_utf16_search. Logs also show this topic's production source compiled, the ICU module linked/NID-patched, and its test executable linked. These results cover this fixed single-PR-plus-main integration; they do not qualify the combined six-topic Windows union, production GuestLoader, native firmware ABI/context, devices/GPU or unloading. The general full-suite step, skip audit and public-header CTests were not run; 904 skipped cases remain skips. Earlier Linux and other results retain their recorded compositions and scope. Existing dependencies, maintainer CI, review and ICU landing order remain required.

Retested unchanged PR head babf2bc72012 separately with pinned main 2227f1366188 (synthetic 82a7bc7af3b1, tree b52cb7fe6621).

Fresh Linux and native Windows Release builds with real ICU/libc/kernel each passed all 4 functional fixtures and 65 public-header CTests. On each platform, the exact bare-main control passed 3 functional fixtures and 65 header tests. All completed without failures, errors or skips. Native Windows run.

Checked run 40855117318/a1, with this babf2bc72012 head second in 14 ordered inputs on pinned base f99d7fece316: Linux job 123387753985 records 2,792 passes/100 expected skips, and Windows job 123387754218 records 2,133 passes/867 expected skips; both have zero failures. The owned UTF-16 search fixture, all 65 public-header checks and patched_libraries passed on both. Builds used warm caches; warnings remain recorded. These are two actual batch-job results, while the overall workflow failed. macOS jobs stopped before build at foreign #12768 freshness guards, without an ICU compile result. They do not establish an isolated-topic/current-main result, other-platform or full-workflow success, actual #10966 merge or review clearance.

2026-10-30 converter-callback integration update: #12692 actually merged as 91a69952c100 (topic 207ac4b5ecfe). Against pinned main 08a10d225306ad102b57408e2ef7566bcfb829b2, all six published ICU heads remain independently clean to integrate; this source review found no duplicate implementation, new dependency or individually required rebase. A separate private all-six union, 6e174798251592474dd94c61975655b409b9c2e9 (tree 446a6e346d3c6fac2e19e358d4376376778c7ae9), preserves 35 owned helpers, the four landed converter callbacks and 13 source-registered ICU fixtures through routine shared-file resolutions; the 98 unknown stubs remain unchanged.

Exact published inputs: #10962 bbccec1140eeccb5adf61f7c497791b183c1bf93, #10963 28cc96f3be1e16d2e3f098b0ae5b77b4fea85e09, #10964 4360e8f85b0bbd184199d9a3822dc30a8bd5f81e, #10965 c2076fe30ee3442546af395930defd74b7bfac2a, #10966 491e27444d83b53bc215a94edf132aee6a4707d7, #10967 babf2bc72012bd926f35408b3d602d162a5ecd1b.

Fresh native Linux x86-64 Release, GCC 16.2.1: the pinned08a main baseline passed 18/18 selected runtime cases and 65/65 public-header checks; the exact private all-six union passed 26/26 runtime cases and 65/65 headers, with zero failures, skips or Not Run rows. The union executed all 13 ICU fixtures, including guest_icu_copy_guest_memory and guest_icu_utf_memory, alongside 13 heap/allocator cases; the converter-callback fixture passed in both lanes. Production NID patching plus readelf/nm inspection verified the four callback NIDs in the baseline and all 39 targeted NIDs in the union (35 owned helpers plus four callbacks). This last check is artifact inspection, not patched-module loader runtime or native-ABI proof.

These results cover only that fixed baseline and private all-six union, not any bare published head, later main, Windows/native ABI, all-nine integration, full suite, title or GPU behavior. Earlier main750 and other historical results retain their original inputs and scope. The declared order remains #10962, #10963, #10964, #10965, #10966, #10967, then #11088; the already merged #12692 adds no new prerequisite. Actual #10966 merge must come first, followed by a preserving rebase, fresh integration checks and re-review before this PR lands.

2026-10-30 fresh Linux integration check on fixed main 0362b1521c4ee08eeeccc2f98e9987e36fca9ea1: a separate private candidate 8a5c8c499f0e0a157bd110430c1d99ee73bb0d47 (tree 620649fa8b0512d9c7e114c670342a691fd1433a) combines #10953 at 581d45c282371af828efec2a8cec6f43beacc68a with the same six unchanged published ICU heads recorded in the earlier converter-callback integration update. No public branch was rebased by this check.

Fresh native Linux x86-64 Release builds passed 53/53 selected plain runtime CTests on that main baseline and 63/63 on the private candidate. With ANYPS5_LOG_FILE set before process startup, another 4/4 baseline and 6/6 candidate runtime executions passed. Together these are 126 runtime CTest executions; both lanes also passed 65/65 public-header checks, 130 header executions total, with zero failed, skipped or Not Run rows. The candidate ran all 13 registered ICU fixtures, including both guest-memory protection fixtures; converter callbacks ran in both lanes. The selected integration set also exercises logging, heap/allocator, signal, exception and thread behavior.

Production NID patching and readelf/nm inspection found the baseline’s four converter-callback NIDs and all 39 targeted candidate NIDs; this is artifact evidence, not patched-loader functional coverage. Twelve separately observed controlled std::abort child runs returned the expected exit 3; they are not additional CTests or proof of native signal-context behavior. Source and dependency identities were checked before and after execution.

These results apply only to the fixed baseline and private SIG-plus-six-ICU candidate. They add no bare-public-head, later-main, Windows, native-ABI, full-suite, GPU or unload qualification. Earlier results keep their original inputs and scope. The existing predecessor, preserving-rebase, maintainer CI and review requirements and agreed ICU landing order still apply.

2026-11-01 preserving rebase: a7d9bb807d8b8361261dca649d01579c2d5d72b2 retains this topic and upstream changes on fixed main 26fa1212b82f76dd49cf12d65e445d6ff3e0844c. Linux GCC 16.2.1 Release compared that baseline (61 plain + 4 logging-enabled runtime CTests) with private SIG-plus-six-ICU union 4908848dab02fb1f0a9fad7e9525ddb8a628177a (71 + 6): all 142 runtime CTests and 65 public-header tests per side (130) passed. Relevant: guest_icu_utf16_search. Twelve separate controlled native SIGABRT child observations exited 3 as expected; these are not additional CTests. The results qualify this fixed baseline/private composition; bare heads, later main, Windows, native ABI, SIGPIPE and unloading remain unqualified. Earlier results retain their original scope. Existing dependencies, maintainer CI, review and landing order remain required. QA report SHA-256: bc7f97b97738e06aed46cee93aec981b1d0030e7c7a3c57c2ce0921548de8bdc.

These results cover this topic’s integration with pinned main. Full maintainer CI and the existing merge order still apply. Please re-review; merge after #10966 and the required maintainer checks.

@AZLisme
AZLisme force-pushed the feat/batch4-icu-search branch from babf2bc to a7d9bb8 Compare November 1, 2026 09:54
@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Nov 1, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build docs needs rebase Conflicts with main, rebase needed prx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants