Skip to content

feat(aot): qualify provider contracts and recover bounded debug facts - #4396

Closed
yabanana wants to merge 84 commits into
boykopovar:mainfrom
yabanana:feature/aot-provider-catalog
Closed

yabanana wants to merge 84 commits into
boykopovar:mainfrom
yabanana:feature/aot-provider-catalog

Conversation

@yabanana

@yabanana yabanana commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

What

A new AOT consumer currently has to redeclare import facts and fixed frame layouts. This follow-up resolves reviewed provider contracts by NID, published library/module names and both versions, with source hashes and fact invalidation. Per-image import indices are decoded rather than used as reusable identities. The initial Apple catalog covers ten providers; unresolved, ambiguous, changed or foreign-target bindings remain explicit obligations.

A separate DWARF 4 reader produces candidate scalar C signatures and nonoverlapping fixed frame storage from byte-matched companion objects. It refuses variadic/aggregate ABIs, optimized locations and ambiguous mappings. Plain structure storage does not authorize a structure calling ABI. Debug output remains evidence to qualify, not a semantic proof.

Stacked on #4156 and its prerequisites, rebased onto main c36fd0a0e. Review the incremental change. This draft keeps the in-tree direction decision with the owners.

Tested

Latest integration checkpoint (12 October): aligned with main 2f4cc8983, including the new component technical-debt layout. The final combined stack with the separate C++ follow-up #4718 passed 588 compiler/relinker/runtime checks and 26 native integrations on Apple Silicon. Rebuilt cube AOT/reference still match all eight RGB frames after 600 flips each; controller and typed module-bundle acceptance pass. These are local results; hosted CI is running on the updated head. Full Linux/Windows builds still require maintainer dispatch.

Integration checkpoint, 12 October: merged main fe66af13e through the dependency stack and requalified affected provider identities after reviewing their implementations. The final combined stack passed 526 compiler/relinker/runtime cases, 26 native integration cases, the rebuilt graphics pair (600 flips each, teardown, eight exact RGB frames), controller O2 and SHA/memcmp O0/O2 checks on Apple Silicon. Hosted checks refer to the new head and remain separate from these local results. Full Linux/Windows builds require maintainer dispatch.

Apple ARM64: 17 catalog/debug tests, including changed provider source, wrong library/version, duplicate identity, missing metadata, weak/object imports, source escape, changed object bytes, optimized/variadic/aggregate cases and bitfields. The combined follow-up branch passed 475 compiler/relinker/runtime checks, plus the newly added controller compilation check; native consumer acceptance is in the separate consumer PR. The portable catalog/debug suites are registered on Linux as well; new hosted results are pending.

The public pad_input consumer uses the catalog and recovers four C signatures and 26 frame objects. Seven provider entries were first qualified for that consumer; only three were already known, so ten resolved imports are not ten automatically discovered ABIs. Independent-source transfer is documented in the consumer follow-up. Source/ABI/lifetime assumptions and final native linkage still require qualification. No new runtime translator or third-party dependency is introduced by this delta.

Checklist

Rebase the graphics proposal onto upstream b42ef24 without carrying the historical macOS merge chain. Includes the compiler/runtime prerequisite from PR boykopovar#1835 and the still-required macOS foundation from mugurc/macos-port at 21930ce; those platform changes remain until their upstream PRs land. Preserve upstream starting-quad folding and the qualified vertex lane rule. Keep x87-dependent Math.cpp outside the optional ARM64 graphics closure rather than weakening its ABI assertion.
This was referenced Oct 15, 2026
@ArjenS-LA ArjenS-LA mentioned this pull request Oct 15, 2026
11 tasks done
@yabanana

Copy link
Copy Markdown
Contributor Author

Superseded by #5021, which now contains the consolidated native ARM64 AOT implementation and verified consumers. #1835 remains the architecture discussion. Closing this stacked PR to keep one implementation review; its branch and review history are retained. This is not a merge into main.

@yabanana yabanana closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* build ci .github docs libc libkernel needs rebase Conflicts with main, rebase needed prx relinker shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant