Skip to content

[pull] master from ruby:master - #1257

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

[pull] master from ruby:master#1257
pull[bot] merged 14 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

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

luke-gruber and others added 14 commits July 28, 2026 14:54
The `once` insn (ex: for interpolated regexp with /o option) should only be
executed once even across Ractors. The `once` value is associated with
the iseq, which is shared across Ractors.

Ideally, waiting threads in other Ractors would be put in a queue and
signalled when the winning thread in another Ractor wins the race and
executes the iseq successfully. For now, there's potential for busy
looping when Ractors wait on each other. However, the bug is fixed and
the iseq will only be executed once.
Use a proper nogvl + native mutex broadcast solution to deal with
cross-ractor thread synchronization.
OpenSSL::PKCS7#decrypt is unreliable when given only a private key and
the PKCS#7 structure contains multiple recipients. It may occasionally
raise an exception or return garbage data. Update the test to avoid
this.

This became much more visible in CI after upgrading to OpenSSL versions
released on 2026-06-09, which enable the implicit rejection mechanism
for PKCS#1 v1.5 decryption in PKCS#7.

ruby/openssl@f7c51a2c0c
The GC sweep fast path had an inverted condition for hashes in
rb_gc_obj_needs_cleanup_p. Hashes with an st_table needs to be freed.

The following script leaks memory:

    10.times do
      100_000.times do
        # Hashes with more than 8 elements use st_table with a malloc'd
        # entries array
        h = {}
        9.times { |i| h[i] = i }
      end

      GC.start

      puts `ps -o rss= -p #{$$}`
    end

Before:

     58816
     97056
    135296
    173584
    211840
    250096
    288336
    326608
    364848
    403088

After:

    27696
    27696
    27696
    27696
    27696
    27696
    27696
    27696
    27696
    27696
Don't rely on exact timings even if they seem generous enough. This has
failed recently on CI (MacOS-15-intel).
The following script leaks memory:

    10.times do
      # MatchData#offset allocates an external char_offset buffer
      100_000.times.map do
        m = /(a)(b)(c)(d)/.match("abcd")
        m.offset(0)
        m
      end

      GC.start

      puts `ps -o rss= -p #{$$}`
    end

Before:

    49072
    56512
    66320
    72624
    80432
    89232
    96192
    105600
    111936
    121744

After:

    49328
    48928
    50864
    49312
    49248
    50160
    49264
    50816
    49296
    51216
gen_invokeblock_ifunc drops the callinfo and passes argv straight to
rb_vm_yield_with_cfunc, which hardcodes kw_splat = 0, so keyword
arguments lost their keyword-ness. Gate the ifunc specialization on
block_call_inlinable, the same check used for the inline ISEQ path.
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).


Updates `taiki-e/install-action` from 2.85.2 to 2.85.3
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@41049aa...18b1216)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.85.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Remove the copier left unused when class fields cloning replaced raw
table copying in commit 3abdd42.
Both commands resolve, but only install, update, add and outdated
accepted the flag, so the resolver's failure hint suggesting
`--cooldown 0` was not actionable on `bundle lock --update`.

ruby/rubygems@2c4f4f390a

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Exclusion is keyed on [name, version] and deliberately ignores
platform, so pushing a fresh platform-specific build under an
already-ripe version number cannot slip new code past the cooldown.
No spec covered that behavior.

ruby/rubygems@be334bd252

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… spec

On x86_64-linux hosts `--cooldown 0` resolves to the platform-specific
build, so `include_gems` failed expecting the ruby platform.

ruby/rubygems@d7be25160e

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jul 29, 2026
@pull pull Bot added the ⤵️ pull label Jul 29, 2026
@pull
pull Bot merged commit b4e40f7 into turkdevops:master Jul 29, 2026
1 of 3 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.

8 participants