Add macOS arm64 developer support - #356
Merged
Merged
Conversation
huangminghuang
force-pushed
the
feature/macos-arm64-support
branch
2 times, most recently
from
May 26, 2026 20:43
e08668b to
3d6fe29
Compare
huangminghuang
marked this pull request as ready for review
May 29, 2026 19:39
heifner
requested changes
Jun 4, 2026
heifner
approved these changes
Jun 5, 2026
huangminghuang
force-pushed
the
feature/macos-arm64-support
branch
from
June 14, 2026 19:47
820a50d to
e9d22c5
Compare
huangminghuang
changed the base branch from
master
to
codex/port-sharded-np-lr-tests
June 14, 2026 19:47
…4-support # Conflicts: # tests/nodeop_under_min_avail_ram.py # tests/read_only_trx_test.py
…into feature/macos-arm64-support
huangminghuang
changed the base branch from
codex/port-sharded-np-lr-tests
to
master
June 18, 2026 18:43
heifner
approved these changes
Jul 1, 2026
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 macOS Apple Silicon support for Wire Sysio, including the Release CI path, Apple arm64 dependency registry updates, macOS-safe CMake/runtime gates, native-debug host integration, and
sys-vm-jitsupport on macOS arm64 throughwire-sys-vm1.2.0.What changed
macos-26Apple Silicon workflow (macos_arm64_build.yaml) that configures a Release build, buildsall, runs the parallelizable CTest set for PRs, pushes tomaster, and a nightly scheduled run onorigin/master, and runs the sharded NP/LR sweep only on nightly schedule or explicit manual opt-in..github/scripts/build-sysio.shbetween Linux and macOS CI by making the build directory, vcpkg triplets, compiler settings, and cache paths environment-driven while keeping Linux workspace ownership repair in the Linux workflow.arm64-osx-releasevcpkg overlay triplet matching the Linux release-triplet pattern, including release-only vcpkg dependencies and ccache launchers.wire-vcpkg-registryto amastercommit containing the macOS-compatible Boost, SoftFloat, secp256k1, andwire-sys-vm1.2.0 port updates, withwire-sys-vmpinned to eos-vm master including Fix Clang unroll warning in LEB128 helpers eos-vm#13.sys-vm-jitby default for Apple arm64 builds while keeping x86-only profiling JIT support gated to x86_64.std::views::enumerate, missingstd::move_only_function,std::chrono::utc_clockusage, andtime_t/fc::variantinteger typing.native-moduleon Apple Debug builds and generating Apple-exported_symbols_listfiles for native intrinsic exports.README.md,AGENTS.md,CLAUDE.md, andcontracts/native-debug.md.Why
The repo could not reliably configure, build, or test on Apple Silicon because Linux linker flags, allocator assumptions, x86-only runtime assumptions, GNU/libstdc++ expectations, and pre-merged vcpkg registry gaps leaked into the macOS path.
This PR narrows the supported macOS CI path to an Apple Silicon Release build using checked-in contract artifacts, while enabling both interpreted
sys-vmand plainsys-vm-jiton Apple arm64. Profiling JIT and OC remain gated to platforms that support them.Testing
ctest -R '^performance_test_basic_transfer_trx_spec$' --output-on-failure -Valland runs the parallelizable CTest set for PRs, pushes tomaster, and the nightlyorigin/masterschedule. The macOS sharded NP/LR sweep is skipped for PRs and runs only on the nightly schedule or when manually dispatched withrun_sharded_np_lrenabled. The Linux workflow keeps the existing amd64 matrix coverage.sysio.tokencontract tests.bash -n .github/scripts/build-sysio.sh, YAML parsing for both workflows, andgit diff --check.Related PRs
_native.somodules. This sysio PR consumes that capability for local Debug native-module loading and host intrinsic export support.Notes
macos_arm64_build.yamlbecause it buildsalland runs parallelizable tests in automated CI. It does not build contracts through CDT and does not runnative-moduletests.origin/masterafter this workflow is merged.run_sharded_np_lrenabled.native-module, exports host intrinsics with the macOS linker format, and documents the LLDB/native-module workflow.sys-vm-oc, CDT contract rebuilds in CI, and native-debug CI coverage remain out of scope for this PR.E2E workflow
wire-sysiobranchfeature/macos-arm64-supportafter mergingorigin/master.