Build and test on native ubuntu-24.04-arm - #233
Merged
Conversation
Mirrors the existing x86_64 Linux job's matrix (Swift 6.2.3/6.3.3, debug/release, static/dynamic) on GitHub's hosted ARM64 runner, using the same official multi-arch Swift container images. Unlike swift-arm.yml's armv6/armv7 jobs, this is a real 64-bit ARM machine rather than a cross-compilation target, so it builds and runs the full test suite directly.
Same jobs, same coverage — arch is now a matrix dimension instead of a separate duplicated job, with an include block supplying the matching runner label per architecture.
colemancda
force-pushed
the
feature/ci-arm64-linux
branch
from
August 3, 2026 16:48
415a79d to
06988a7
Compare
unsafeBitCast between UInt128 and its 16-byte tuple representation assumes compatible alignment, but UInt128 is naturally 16-byte aligned while a tuple of UInt8 is 1-byte aligned. withUnsafeBytes plus loadUnaligned make no such assumption. This is a correctness cleanup, not a fix for the arm64 crash in HCILEPrivacyTests — that crash reproduces unchanged with this applied, so its cause lies elsewhere.
A single failing cell was cancelling the rest mid-compile, which hides exactly the arch/toolchain/config breakdown needed to diagnose a platform-specific failure.
They witnessed `async throws` protocol requirements with synchronous `throws` methods, so every call went through a compiler-generated thunk. Diagnostic for the arm64 debug crash in HCILEPrivacyTests: if the thunk is where a 16-byte-aligned parameter struct gets mislaid, removing it should make the crash go away.
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.
Summary
Adds a
linux-arm64job toswift.yml, mirroring the existinglinuxjob's matrix (Swift 6.2.3/6.3.3, debug/release, static/dynamic) on GitHub's hostedubuntu-24.04-armrunner.This is distinct from
swift-arm.yml's existing armv6/armv7 jobs, which cross-compile on x86_64 runners because those 32-bit ARM targets have no hosted execution environment.ubuntu-24.04-armis a real 64-bit ARM machine, so this job builds and runs the full test suite natively, using the same official multi-arch Swift container images the x86_64 job already uses (Docker pulls the arm64 variant automatically).Test plan
Linux (ARM64)matrix and passes