Skip to content

[pull] master from ruby:master#1233

Merged
pull[bot] merged 18 commits into
turkdevops:masterfrom
ruby:master
Jul 22, 2026
Merged

[pull] master from ruby:master#1233
pull[bot] merged 18 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jul 22, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

byroot and others added 18 commits July 21, 2026 16:47
Since Range is a struct, might as well use optimized accessors.
If we allocate objects larger than 1024 bytes, the capacity in the shape
ID will overflow. This commit fixes it set the capacity to SHAPE_ID_CAPACITY_MAX
in that case and falls back to rb_gc_obj_slot_size instead.
GC::INTERNAL_CONSTANTS[:RVARGC_MAX_ALLOCATE_SIZE] may not be defined, which
will cause the test file to not be able to load.
A tag established inside a live ZJIT frame can catch a longjmp without unwinding that native frame. Record that fact on rb_vm_tag and materialize only frames above the target, preserving its JITFrame link and keeping JITFrame saves at a single store.
This reverts commit c048946.

Only partially reverting to keep it easy to skip tests.
which are broken right now.

I'm working on a fix, but let's skip them until it's ready.
RUBYOPT is split on whitespace with no quoting mechanism, so the
absolute `-r` path injected by set_rubyopt tears apart when bundler
lives under an install prefix containing a space, and every child ruby
under `bundle exec` dies at boot with "invalid switch in RUBYOPT".
Fall back to requiring bundler/setup by feature name in that case;
set_rubylib already puts our lib directory first on the child's load
path, so the same bundler copy is still loaded.

ruby/rubygems@a646b1503d

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The whitespace context stubs File.expand_path globally, so
Gem.bin_path called from set_bundle_variables tries to open the fake
path as a real gemspec stub and fails with ENOENT. Stub bin_path too,
matching the existing special characters context.

ruby/rubygems@2d50d82e7b

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ariables

POSIX Shellwords consumes backslashes, so MAKE=C:\path\nmake.exe was
split into "C:pathnmake.exe" and extension builds failed with make not
found. Take a value that names an existing file as a single word, and
spawn single-word commands with the [cmdname, argv0] form so a path
containing spaces is not parsed again as a shell command line.

ruby/rubygems@c9fe3de4eb
…open

An editor configured with a Windows native path such as
EDITOR=C:\Program Files\Microsoft VS Code\Code.exe was corrupted before
being spawned: gem open split it on whitespace, and bundle open passed
it through POSIX Shellwords which also consumes the backslashes. Take a
value that names an existing file as a single word, and make gem open
use Shellwords like bundle open so quoted editor commands work the same
way in both.

ruby/rubygems@5a5532a046
…bing

Directory names may legally contain glob metacharacters like "[1]",
and interpolating such a path into Dir[...] makes the glob silently
match nothing. This made gem plugins and Gem.find_files come up empty,
skipped gemspec serialization when installing git gems, and made
`bundle clean` and `bundle cache` lose track of the files they manage.
Glob with Gem::Util.glob_files_in_dir so the directory is not treated
as part of the pattern, like ruby/rubygems@7fe7e7b26c did for the path source.

ruby/rubygems@bbf936e6c4
…element

Gem.ruby wraps the interpreter path in double quotes when it contains
whitespace. That suits single-string shell commands but breaks the
multi-argument spawns that pass it as its own argv element. Under an
install prefix containing a space, `gem update --system`, mkrf extension
builds, `gem push` attestation, and the bundler auto-switch all fail to
spawn with exit 127. Split it with Shellwords, matching the existing
`Gem::Ext::Builder.ruby` idiom.

ruby/rubygems@00e189e851

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gensym was copied into the rewritten VM generator helpers in f6ea376, but no generated-code path calls it. Removing it also removes the now-unneeded securerandom dependency.
`prism` contains `prism/srcs.mk`. RDoc picks it up even though
it is not C/Ruby or anything else recognizable.

It currently doesn't apply to `gc/default` but it could in the future, so I made it
more specific too.
changed_dirs_info and diff_info were imported during the post-push migration in 7ec03e1 but have no callers. The active mail body uses the added_dirs, deleted_dirs, modified_dirs, and changed_files formatters instead.
@pull pull Bot locked and limited conversation to collaborators Jul 22, 2026
@pull pull Bot added the ⤵️ pull label Jul 22, 2026
@pull
pull Bot merged commit ced416e into turkdevops:master Jul 22, 2026
0 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants