Skip to content

[pull] master from ruby:master#1069

Merged
pull[bot] merged 5 commits into
turkdevops:masterfrom
ruby:master
Jun 1, 2026
Merged

[pull] master from ruby:master#1069
pull[bot] merged 5 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Jun 1, 2026

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 : )

kou and others added 5 commits June 1, 2026 07:55
(ruby/strscan#205)

See also: https://bugs.ruby-lang.org/issues/21943

This is semantically equivalent to `scanner[specifier]&.to_i(base)` but
this is faster than `scanner[specifier]&.to_i(base)` because
`integer_at` doesn't create a temporary String when possible.

This PR also includes a benchmark for them:

```console
$ ruby -v -S benchmark-driver benchmark/integer_at.yaml
ruby 4.1.0dev (2026-05-01T19:25:51Z master ruby/strscan@f2845eab29) +PRISM [x86_64-linux]
Warming up --------------------------------------
             [].to_i    24.272M i/s -     25.109M times in 1.034481s (41.20ns/i, 32clocks/i)
          integer_at    61.188M i/s -     62.491M times in 1.021289s (16.34ns/i, 62clocks/i)
Calculating -------------------------------------
             [].to_i    26.831M i/s -     72.816M times in 2.713883s (37.27ns/i, 169clocks/i)
          integer_at    81.331M i/s -    183.564M times in 2.256998s (12.30ns/i, 43clocks/i)

Comparison:
          integer_at:  81331225.5 i/s
             [].to_i:  26831046.3 i/s - 3.03x  slower
```

In this environment, `integer_at` is 3.03x faster than `[].to_i`.

ruby/strscan@8a60879b2d

Co-authored-by: jinroq <jinroq@gmail.com>
The earlier `rake vendor:compact_index` hook into `dev:deps` and the
hard-copy step in ruby-core.yml fell apart in ruby/ruby's test-bundler
runner, which sets TMPDIR per process and does not invoke our rake
tasks. Pull the fetch logic into `Spec::Rubygems.install_vendored_compact_index`
and call it from `install_test_deps` so every test setup path - local
`bin/rspec`, `bin/parallel_rspec`, GHA bundler.yml, and ruby/ruby's
test-bundler - lands the files at `Path.tmp_root.join("compact_index")`
exactly where the artifice already looks. The standalone rake task and
its workflow hop are no longer needed.

ruby/rubygems@d8536e115e

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… is set

Previously the install_vendored_compact_index short-circuit only checked
whether `tmp/compact_index/lib/compact_index.rb` existed, so once any ref
was vendored a subsequent `COMPACT_INDEX_REF=<sha> bin/rspec ...` kept
serving the stale copy. Drop the vendor tree first when the env var is
explicitly set so an override always re-fetches against the requested
ref.

ruby/rubygems@db5d06953f

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The vendored compact_index install ran without any coordination, so two
test setups starting at once could both write into tmp/compact_index/ at
the same time. The skip guard also checked a single file, which meant an
interrupted download leaving only lib/compact_index.rb behind would be
treated as a complete vendor tree on the next run.

Take an exclusive file lock around the install and only skip the download
once every expected file is present, removing the tree under the same lock
when COMPACT_INDEX_REF forces a refresh.

ruby/rubygems@0451700769

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rb_gc_modular_gc_loaded_p and rb_gc_active_gc_name are only used when
compiling with modular GC enabled.
@pull pull Bot locked and limited conversation to collaborators Jun 1, 2026
@pull pull Bot added the ⤵️ pull label Jun 1, 2026
@pull pull Bot merged commit 344b5ea into turkdevops:master Jun 1, 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.

3 participants