Conversation
…nd test cross-compiled native gems before publish - ci.yml: new aarch64-linux-source job (ubuntu-24.04-arm; Ruby 3.3 and 4.0): rake compile, rake test, ASAN leak check. Until now no job compiled or tested on aarch64; the published aarch64-linux gem was built but never run. - gem-build.yml: new test-native job installs each cross-compiled gem on its real target (aarch64-linux, x86_64-linux, arm64-darwin) and runs the suite; publish now depends on it. Catches broken prebuilt binaries (cf. wreq-rb's aarch64-linux gem with an undefined symbol). - rakelib/test.rake: ASAN_OPTIONS=use_sigaltstack=0 so test:asan works on aarch64 (Ruby's sigaltstack vs ASAN's: 'ERROR: Failed to munmap'). Verified in an aarch64-linux container (Debian 13, Ruby 3.3.10 +YJIT): 307 runs / 4643 assertions pass from source; ASAN reports no leaks originating in lexbor or ext/nokolexbor; the published 0.8.0-aarch64-linux gem loads and matches the source build. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 26, 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.
What
ci.yml: newaarch64-linux-sourcejob on GitHub'subuntu-24.04-armrunners (Ruby 3.3 and 4.0):rake compile,rake test, and an ASAN leak check. Until now nothing in CI compiled or ran the gem on aarch64; the publishedaarch64-linuxgem was built (cross-compiled in rake-compiler-dock) but never executed.gem-build.yml: newtest-nativejob that installs each cross-compiled native gem on its real target (aarch64-linux,x86_64-linux,arm64-darwin) and runs the suite;publishnow depends on it.rakelib/test.rake:ASAN_OPTIONS=use_sigaltstack=0fortest:asan. On aarch64 every ASAN run died withERROR: Failed to munmapbefore printing results (Ruby's own sigaltstack vs ASAN's; Ruby 3.3.10 / libasan8 / Debian 13 arm64). Harmless on x86_64 (only disables ASAN's stack-overflow reporting)..gitignore:.bundle-v13/(local bundle dir used while testing in containers).Verified
In an aarch64-linux container (Debian 13, Ruby 3.3.10 +YJIT): 307 runs / 4643 assertions pass from source; ASAN reports no leaks originating in lexbor or
ext/nokolexbor(only Ruby VM/YJIT end-of-process allocations); the published0.8.0-aarch64-linuxgem loads and returns the same selector results as the source build.