Skip to content

[pull] master from ruby:master - #1259

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

[pull] master from ruby:master#1259
pull[bot] merged 10 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jul 30, 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 : )

peterzhu2118 and others added 10 commits July 29, 2026 19:02
rb_managed_id_table stores its rb_id_table body as embedded data
(RUBY_TYPED_EMBEDDABLE), so managed_id_table_ptr returns a pointer
interior to the wrapper object.  rb_managed_id_table_foreach,
_foreach_values, and _dup hand that interior pointer to a callback that
may allocate and trigger a GC.  If the compiler stops keeping the
wrapper VALUE live once the interior pointer is taken, the table can be
reclaimed while it is still being iterated.  Add RB_GC_GUARD on the
wrapper across these calls.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Implements GC fast path for newrange instruction when we do not need to
call <=> method (when either endpoint is nil or both are fixnums).

Benchmark:

    def run(max)
      i = 0
      while i < max
        a = i..max
        i += 1
      end
    end

    30.times { run(10) }
    run(10_000_000)

Result:

    Benchmark 1: master
      Time (mean ± σ):     221.8 ms ±   5.2 ms    [User: 214.4 ms, System: 5.8 ms]
      Range (min … max):   216.4 ms … 235.8 ms    13 runs

    Benchmark 2: branch
      Time (mean ± σ):      62.4 ms ±   1.6 ms    [User: 56.0 ms, System: 5.1 ms]
      Range (min … max):    60.7 ms …  69.7 ms    46 runs

    Summary
      branch ran
        3.56 ± 0.12 times faster than master
…hanges

`BUNDLE_FROZEN=1 bundle check` reported that dependencies are satisfied and exited 0 even when the lockfile was missing CHECKSUMS entries, because `write_lock` only warns in frozen mode. Run the same frozen validation as `bundle install` so `bundle check` fails consistently.

ruby/rubygems#9546

ruby/rubygems@07337df092

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The `error` variable was set on failure but never reached the exit
code, so removal failures such as a locked DLL left `nmake clean`
green while stale artifacts remained.  Exit with `error` at the end.
Since `rd /s` does not set ERRORLEVEL on failure, check the entries
remaining after it instead.  Also pass `/f` to `del` to remove
read-only files as `rm -f` does.
@pull pull Bot locked and limited conversation to collaborators Jul 30, 2026
@pull pull Bot added the ⤵️ pull label Jul 30, 2026
@pull
pull Bot merged commit 94933bf into turkdevops:master Jul 30, 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.

5 participants