Skip to content

[pull] master from ruby:master - #1333

Merged
pull[bot] merged 15 commits into
turkdevops:masterfrom
ruby:master
Aug 21, 2026
Merged

[pull] master from ruby:master#1333
pull[bot] merged 15 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Aug 21, 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 : )

hsbt and others added 15 commits August 21, 2026 01:05
Every case of the event switch overwrote the rb_protect state, so only
the second result was ever tested and the state from the event_location
call was dropped. The parse then returned normally with the exception
silently discarded.

ruby/psych@186c3fa343

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Once libyaml has set stream_end_produced, every further
yaml_parser_parse succeeds with a zeroed event, so YAML_STREAM_END_EVENT
can no longer be reached and the loop calls handler#empty forever at
full CPU. A parser left in that state should terminate instead.

No test covers this directly because the loop only reaches it through a
reentrant parse, which the parser now rejects outright.

ruby/psych@a667509a4a

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The parser calls back into Ruby for every event, so a handler can call
#parse again on the same object. That reinitialised the parser and
re-pointed it at new input while the outer loop was still driving it,
which left the outer loop reading the inner document's freed buffer, or
resuming on a parser with no input at all and tripping libyaml's
read_handler assertion.

Psych::Exception is used so the caller can rescue it, and the in-use
flag is cleared with rb_ensure so a parser stays reusable afterwards.

ruby/psych@5f2e37dc1c

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
merge_key was added empty in 2025502c while merge handling remained inline in revive_hash, and it has never been called. dump_list was added empty in 59ecddb while array dumping was implemented inline in visit_array_subclass, and it has never been called. Psych visitor dispatch only targets visit_* methods.

ruby/psych@e61b6fd005
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.86.2 to 2.86.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@b6b84cf...5b4d68e)

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

Signed-off-by: dependabot[bot] <support@github.com>
The gmp portfile at the previous baseline downloads
autoconf2.71-2.71-3-any.pkg.tar.zst from msys2 mirrors by a pinned URL,
but msys2 has rotated the package to -4, so every mirror returns 404 and
Windows CI fails to build gmp whenever the vcpkg binary cache misses.
The new baseline includes microsoft/vcpkg@37bb045f3c, which updates the
URL.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Upstream now handles the cgi/escape fallback and parses no_proxy with
URI.decode_www_form itself, so the vendoring patch shrinks to the
require rewrites and pipeline removal.

ruby/rubygems@8b98cab475

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
net-http-persistent 4.0.8 detects the keyword-argument API of
connection_pool 3.x, so the 2.x pin is no longer needed.

ruby/rubygems@c900f46e71

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The hidden-command exclusion in find_command_possibilities was merged
upstream, so the patch now only strips LCSDiff and guards the pathname
require.

ruby/rubygems@581b5aba79

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ruby/rubygems@def91dda7f

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ruby/rubygems@21de1f2ff5

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ruby/rubygems@201a08ab79

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The branch coverage structure was keyed by the address of the AST node,
which is needed to let multiple compilations of the same node (e.g., an
ensure clause) share one entry [Bug #16967].  However, ASTs are freed
after compilation, so when code is eval'ed against the same path, a
reused node address could merge unrelated branches into one entry,
nondeterministically.

Key the structure by [source_hash, node_id, first_lineno] instead.
This is deterministic: different code eval'ed at the same path always
gets separate entries, and re-evaluating the very same code at the same
path and line accumulates the counters, like line coverage does.

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

4 participants