Repository navigation
Conversation
This was referenced Oct 15, 2026
Merged
11 tasks done
11 tasks done
Contributor
Author
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
Add an opt-in ordered-normal-memory profile and default joinable glibc guest workers to the whole-program ARM64 AOT path. Guest workers receive separate stacks and static TLS; join returns the guest result and releases storage. Add once, default mutex/condition initialization and destruction, and an atomic futex word read. Thread creation refuses images emitted with the single-thread profile.
Ordinary guest accesses use side-effecting AArch64 instructions, compiler memory clobbers and full barriers. This deliberately strengthens store-to-load ordering and has a cost; it is not an optimized implementation of every x86 TSO behavior. Qualification requires coherent normal memory, aligned same-width scalar conflicting accesses and race-free provider buffers. Unaligned/vector/mixed-width races, MMIO, cancellation, detach, custom attributes and TLS destructors remain outside the profile. No runtime decoder, JIT or Rosetta dependency is introduced.
Integrate main's driver tracing header/compression dependencies, keep SDL display refresh queries on the macOS main thread, and supply anonymous file backing for the new shared-memory API on macOS. A native test checks 32 alias/write/close/unmap cycles; it does not execute generated guest code.
Tested
Apple Silicon macOS: 594 compiler/relinker/runtime tests passed. New executable tests cover two guest workers, independent TLS, 20,000 contended updates, join results, repeated join rejection, refusal of the single-thread profile, message passing, fenced store buffering and IRIW (128 rounds each). These observations are not a universal memory-model proof; herdtools model checking has not been performed.
Rebuilt upstream zstd 1.5.7 with multithreading enabled, converted its x86-64 glibc ELF and exercised 18 cases with 1/2/4 workers, empty/boundary/4 MiB inputs and repetitive/random bytes. Output matches a source-built ARM64 reference; every compressed result round-trips through a separate native decoder. This is source-equivalent comparison, not the same ELF executed on two architectures or PS5 game compatibility. 27 native integrations passed. The rebuilt cube completes 600 flips per implementation, teardown and eight exact RGB comparisons; pad and the typed module consumer also pass. No speedup claim.
Checklist
main; checked existing open pull requests