Skip to content

[pull] master from ruby:master#1176

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

[pull] master from ruby:master#1176
pull[bot] merged 9 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

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

ko1 and others added 9 commits July 3, 2026 10:34
…rage

thread_create_core inherited fiber storage unconditionally, so a new Ractor's
main fiber received the creating thread's fiber-local storage, whose entries
may be objects owned by the creating Ractor. Skip the inheritance for Ractor
main threads.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Defer creating a Ractor main thread's pending-interrupt queue and mask stack
from thread_create_core (the creating thread) to thread_start_func_2 (the new
Ractor's own main thread). The mask stack starts empty rather than duplicating
the creating thread's, so a new Ractor does not inherit its
Thread.handle_interrupt state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps the github-actions group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [ruby/setup-ruby](https://github.com/ruby/setup-ruby) | `1.315.0` | `1.316.0` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` |
| [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) | `1.8.0` | `1.8.1` |



Updates `ruby/setup-ruby` from 1.315.0 to 1.316.0
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](ruby/setup-ruby@0dafeac...d45b1a4)

Updates `github/codeql-action/init` from 4.36.2 to 4.36.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@8aad20d...54f647b)

Updates `github/codeql-action/analyze` from 4.36.2 to 4.36.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@8aad20d...54f647b)

Updates `github/codeql-action/upload-sarif` from 4.36.2 to 4.36.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@8aad20d...54f647b)

Updates `lewagon/wait-on-check-action` from 1.8.0 to 1.8.1
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases)
- [Changelog](https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md)
- [Commits](lewagon/wait-on-check-action@96d9100...1d57e2c)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-version: 1.316.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.36.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.36.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.36.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: lewagon/wait-on-check-action
  dependency-version: 1.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
ractor_closed_port_p asserts the owning ractor's lock is held for foreign
access and reads sync.ports via st_lookup, but Ractor::Port#closed?
(ractor_port_closed_p) called it without the lock. From a foreign Ractor this
tripped the assertion and raced the owner's st_insert/st_delete on the ports
table. Take the ractor lock for foreign queries, like every other foreign
reader.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rb_get_freeze_opt and rb_obj_clone_setup lazily initialized shared static
caches (the freeze keyword id and the `{freeze: true/false}` hashes) with a
plain `if (!cache)` guard. When Ractors run #clone concurrently this races:
a thread can publish a half-built hash that another freezes before it is
filled, later triggering "can't modify frozen Hash".

Use the preinterned idFreeze directly, and publish each frozen, pinned hash
with a single atomic CAS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the unconditional target_os=freebsd* override that forced
rb_cv_dtrace_available=no, which was added in commit 78677f1
("Disable DTrace in FreeBSD (#3999)") as a Ruby 3.0.0 release
unblocker for the build failure reported in Bug #17212.

That failure was a link error at the DTrace glommed/static-library
stage ("attempted static link of dynamic object libgcc_s.so" on
FreeBSD 12.x, "cannot find -lgcc_s" on 11.x), not an exec-stack or
relocation problem. On modern FreeBSD (14.4, dtrace Sun D 1.13,
clang 19 / lld) that stage links cleanly, so the override is obsolete.

With it removed, FreeBSD goes through the normal RUBY_DTRACE_AVAILABLE
detection. The rest of the FreeBSD DTrace machinery is already in
place (-xnolibs autodetect, -lelf link, and the dtrace -G
rebuild/glommed-object path), so no other change is needed.

Verified on FreeBSD 14.4/amd64: a --enable-dtrace build succeeds; the
ruby binary gets a .SUNW_dof section with the provider "ruby" and all
22 ruby::: USDT probes; and the probes register and fire under a live
dtrace(1) (e.g. gc-mark-begin, gc-sweep-end, method-entry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Group test-bundler-parallel workers by recorded runtime

turbo_tests balances workers by a recorded runtime log only when invoked
as a bare `spec`; this build passes an absolute spec/bundler path, so it
grouped by file size and let the single heaviest file dominate the
wall-clock. A tool/ patch loaded from the recipe records per-file
runtimes and reorders the size-based grouper to use the previous run's
data, leaving the synced spec/bin/parallel_rspec untouched.

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

* Fix stale reference in runtime recorder comment

The launcher script it pointed at was replaced by the recipe calling
BundlerRuntimeGrouping.install! directly.

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

* Rescue LoadError when installing runtime grouping

install! is meant to degrade to filesize grouping on any failure, but
LoadError from the parallel_tests require is a ScriptError and escaped
the StandardError rescue, killing the whole recipe instead.

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

---------

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

5 participants