<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Bump Prism to v1.8.1</title>
<updated>2026-03-16T22:46:12+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2026-03-16T22:46:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3fd1181a9d81cc7eed8ddfe262d97035d6e1b321'/>
<id>3fd1181a9d81cc7eed8ddfe262d97035d6e1b321</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f315d250b44e75a1a69f4a05b293dcc701377689: [Backport #21947]</title>
<updated>2026-03-16T18:56:14+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2026-03-16T18:56:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f808ff5fc15690338dcb6530e4d3df760d8721f3'/>
<id>f808ff5fc15690338dcb6530e4d3df760d8721f3</id>
<content type='text'>
	[ruby/timeout] Compatibility with Fiber scheduler.
	(https://github.com/ruby/timeout/pull/97)

	[Bug #21947]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/timeout] Compatibility with Fiber scheduler.
	(https://github.com/ruby/timeout/pull/97)

	[Bug #21947]
</pre>
</div>
</content>
</entry>
<entry>
<title>Suppress bundled gems warning for subfeatures found outside stdlib [Bug #21828]</title>
<updated>2026-03-12T00:42:58+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-03-11T10:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9bcd9ba9b31fea19dc56bc2f5c69cf584d3bd23c'/>
<id>9bcd9ba9b31fea19dc56bc2f5c69cf584d3bd23c</id>
<content type='text'>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bundled gems warning for all subfeatures of hyphenated gems</title>
<updated>2026-02-12T18:41:49+00:00</updated>
<author>
<name>Chris Hasiński</name>
<email>krzysztof.hasinski@gmail.com</email>
</author>
<published>2026-01-19T17:35:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=485a6037916fa09b07429d41e8699586271eb91c'/>
<id>485a6037916fa09b07429d41e8699586271eb91c</id>
<content type='text'>
PR #15822 fixed the warning for direct hyphenated gem requires like
`benchmark/ips` → `benchmark-ips`. However, hyphenated gems often
provide multiple files under their namespace.

For example, `benchmark-ips` provides:
- benchmark/ips.rb
- benchmark/timing.rb
- benchmark/compare.rb

When requiring `benchmark/timing`, the previous fix only checked for
`benchmark-timing` gem (doesn't exist), not `benchmark-ips` which
actually provides the file.

This fix checks if ANY gem matching `{prefix}-*` is in the bundle
specs, which covers all subfeatures provided by hyphenated gems.

Reported in https://github.com/ruby/ruby/pull/15822#issuecomment-123456
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PR #15822 fixed the warning for direct hyphenated gem requires like
`benchmark/ips` → `benchmark-ips`. However, hyphenated gems often
provide multiple files under their namespace.

For example, `benchmark-ips` provides:
- benchmark/ips.rb
- benchmark/timing.rb
- benchmark/compare.rb

When requiring `benchmark/timing`, the previous fix only checked for
`benchmark-timing` gem (doesn't exist), not `benchmark-ips` which
actually provides the file.

This fix checks if ANY gem matching `{prefix}-*` is in the bundle
specs, which covers all subfeatures provided by hyphenated gems.

Reported in https://github.com/ruby/ruby/pull/15822#issuecomment-123456
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.6</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e025c839ac71b609bb50ff74352f9a11cd164c3c'/>
<id>e025c839ac71b609bb50ff74352f9a11cd164c3c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.5</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=87b544b8c4400ef2b37405f132846e5c3738213b'/>
<id>87b544b8c4400ef2b37405f132846e5c3738213b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.4</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=91a4926c9a9cd12f43307a2c934766c000356f07'/>
<id>91a4926c9a9cd12f43307a2c934766c000356f07</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/syntax_suggest] v2.0.3</title>
<updated>2026-01-21T18:11:17+00:00</updated>
<author>
<name>Earlopain</name>
<email>14981592+Earlopain@users.noreply.github.com</email>
</author>
<published>2026-01-21T17:40:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e4dd078a2734f1f3b7169feb4da8c68587effc6e'/>
<id>e4dd078a2734f1f3b7169feb4da8c68587effc6e</id>
<content type='text'>
https://github.com/ruby/syntax_suggest/commit/a81b92fcf2

[Bug #21847]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/syntax_suggest/commit/a81b92fcf2

[Bug #21847]
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/syntax_suggest] Refactor multi-prism version logic</title>
<updated>2026-01-21T18:11:17+00:00</updated>
<author>
<name>Schneems</name>
<email>richard.schneeman+foo@gmail.com</email>
</author>
<published>2026-01-20T21:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=12203963d22a984154c1abb03782c345ba8f5129'/>
<id>12203963d22a984154c1abb03782c345ba8f5129</id>
<content type='text'>
The reason this logic for different methods branches in the class instead of internally was to be eagerly aggressive about runtime performance. This code is currently only used once for the document where it's invoked ~N times (where N is number of lines):

```ruby
module SyntaxSuggest
  class CleanDocument
    # ...
    def join_trailing_slash!
      trailing_groups = @document.select(&amp;:trailing_slash?).map do |code_line|
        take_while_including(code_line.index..) { |x| x.trailing_slash? }
      end
      join_groups(trailing_groups)
      self
    end
```

Since this is not currently a hot-spot I think merging the branches and using a case statement is a reasonable tradeoff and avoids the need to do specific version testing.

An alternative idea was presented in #241 of behavior-based testing for branch logic (which I would prefer), however, calling the code triggered requiring a `DelegateClass` when the `syntax_suggest/api` is being required.

https://github.com/ruby/syntax_suggest/commit/ab122c455f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The reason this logic for different methods branches in the class instead of internally was to be eagerly aggressive about runtime performance. This code is currently only used once for the document where it's invoked ~N times (where N is number of lines):

```ruby
module SyntaxSuggest
  class CleanDocument
    # ...
    def join_trailing_slash!
      trailing_groups = @document.select(&amp;:trailing_slash?).map do |code_line|
        take_while_including(code_line.index..) { |x| x.trailing_slash? }
      end
      join_groups(trailing_groups)
      self
    end
```

Since this is not currently a hot-spot I think merging the branches and using a case statement is a reasonable tradeoff and avoids the need to do specific version testing.

An alternative idea was presented in #241 of behavior-based testing for branch logic (which I would prefer), however, calling the code triggered requiring a `DelegateClass` when the `syntax_suggest/api` is being required.

https://github.com/ruby/syntax_suggest/commit/ab122c455f
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/syntax_suggest] Handle `on_sp` when using prism</title>
<updated>2026-01-21T18:11:17+00:00</updated>
<author>
<name>Earlopain</name>
<email>14981592+Earlopain@users.noreply.github.com</email>
</author>
<published>2026-01-20T12:38:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bbba57f22c7eb7279297e03f8124d51135a7e87a'/>
<id>bbba57f22c7eb7279297e03f8124d51135a7e87a</id>
<content type='text'>
It used to not emit this token type, but now it does.
So when a newer version of prism is present, we can fall back
to the same code that ripper uses.

Ref:
* https://github.com/ruby/ruby/pull/15914
* https://github.com/ruby/prism/pull/3859

https://github.com/ruby/syntax_suggest/commit/42a3b8f6cb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It used to not emit this token type, but now it does.
So when a newer version of prism is present, we can fall back
to the same code that ripper uses.

Ref:
* https://github.com/ruby/ruby/pull/15914
* https://github.com/ruby/prism/pull/3859

https://github.com/ruby/syntax_suggest/commit/42a3b8f6cb
</pre>
</div>
</content>
</entry>
</feed>
