Repository navigation
Conversation
Upstream rb-sys added arm-linux-musl to the platform list fetched by CI. Treat 32-bit ARM Linux as unsupported by the build tools, following the existing arm-linux exclusion, and exclude the musl variant as well.
ledsun
force-pushed
the
cache-static-gem-extensions
branch
from
October 19, 2026 02:10
2082c73 to
afdb4a0
Compare
This branch has not been deployed
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.
Note: This PR currently also includes the changes from #671.
rake npm:ruby-head-wasm-wasicurrently forces a Ruby rebuild on every run, repeating linking and Asyncify even when the statically linked gem extensions have not changed.The motivation is to improve the local development experience by making repeated Rake builds faster. When working on JavaScript bindings or packaged Ruby code, developers can rerun the packaging task without waiting for unnecessary Ruby linking and Asyncify, shortening the feedback loop.
Measured end-to-end
rake npm:ruby-head-wasm-wasitimes on a local development machine, with dependencies and Ruby object files already present andBINARYEN_CORES=1for both runs:The repeated build was about 5x faster, reducing elapsed time by 80% and saving about 3m05s per run. These are single-run local measurements, not CI benchmarks.
This benefit applies to repeated local builds. This change does not speed up CI builds.
Add an
ExtensionCachethat uses the existing extensioncache_keymethods and stores the input hash beside the Ruby archive. Reuse the archive when the hash matches, and remove the unconditional--remakefrom npm packaging. Explicit--remake,--reconfigure, and--cleanstill force a build.Invalidate the previous record before building, and save a new record only after a successful build whose extension inputs stayed unchanged. Existing archives with extensions but no record are rebuilt once; archives without extra extensions retain their existing reuse behavior. Ruby source, compiler, and build-setting changes still require a manual rebuild.