Skip to content

Prefer arm64 packages on ARM64 Windows - #14

Merged
hsbt merged 4 commits into
masterfrom
claude/rbmanager-arm64-7b4228
Nov 4, 2026
Merged

hsbt merged 4 commits into
masterfrom
claude/rbmanager-arm64-7b4228

Conversation

@hsbt

@hsbt hsbt commented Nov 3, 2026

Copy link
Copy Markdown
Member

The binary index carries arm64-mswin64_140 builds next to the x64 ones since ruby/actions#159. On ARM64 Windows, rb install and rb use now pick the arm64 build of a version or tag, and fall back to the x64 build with a warning when there is none. A full package name still picks that build, and x64 machines see no change.

rb list --remote gains a platform column. The VC++ runtime check now looks for the ARM64 runtime for arm64 rubies, and on ARM64 relies on the registry rather than the DLL in the system directory, which both runtimes share. rb msvc still sets up the x64 toolchain only, which the README now notes.

> rb install 3.3
Resolved 3.3 to ruby-3.3.13-x64-mswin64_140
warning: no arm64-mswin64_140 build matches '3.3', falling back to x64-mswin64_140 under emulation

Generated with Claude Code

hsbt and others added 4 commits November 4, 2026 08:47
The index carries arm64-mswin64_140 packages next to the x64 ones, with tags assigned per platform. An ARM64 host now installs its own platform first and falls back to x64, which runs under emulation, with a warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A query that matches both an arm64 and an x64 install now picks the arm64 one, as install does through the index, unless it is the exact version of one of them, so `3.4.1` still means 3.4.1 next to an arm64 3.4.12. Landing on x64 gives the same warning. uninstall keeps its old resolution, so such a query is still ambiguous there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An arm64 ruby.exe loads the ARM64 vcruntime140.dll, which an older x64 redistributable does not carry. install and use now check the Runtimes key matching the ruby, and setup on ARM64 requires both keys, without the vcruntime140.dll fallback that the two runtimes share there. The installer stays vc_redist.x64.exe, which provides both runtimes on ARM64.

https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
install and use now default to arm64 rubies on ARM64 Windows, where extensions built under the x64 toolchain fail to link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hsbt
hsbt merged commit 6d88bdf into master Nov 4, 2026
3 checks passed
@hsbt
hsbt deleted the claude/rbmanager-arm64-7b4228 branch November 4, 2026 04:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant