[pull] master from ruby:master - #1257
Merged
Merged
Conversation
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>
Signed-off-by: Patrick Linnane <patrick@linnane.io> ruby/rubygems@56a82a2573
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )