<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext, branch v3_3_6</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) 0d16c36d0ab2afa2ec79b72b229e69c141ebdaba: [Backport #13831]</title>
<updated>2024-11-04T22:26:25+00:00</updated>
<author>
<name>Jonathan Calvert</name>
<email>athemeus@athemeus.com</email>
</author>
<published>2024-09-07T03:19:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7446f7cdd103b129b8b750f577efd29e069176c0'/>
<id>7446f7cdd103b129b8b750f577efd29e069176c0</id>
<content type='text'>
	[win32/registry] Fallback to UTF-8 for unknown codepages

	There are some codepages like cp708 for which no ruby encoding exists:

	    $ ruby -e "Encoding.find('cp708')"
	    Traceback (most recent call last):
	    	1: from -e:1:in `&lt;main&gt;'
	    -e:1:in `find': unknown encoding name - cp708 (ArgumentError)

	win32/registry uses ENCODING to transcode error messages and expand environment
	variables from UTF-16LE, so using UTF-8 seems like the best choice and is better
	than a hard failure.

	This should resolve [Bug #13831]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[win32/registry] Fallback to UTF-8 for unknown codepages

	There are some codepages like cp708 for which no ruby encoding exists:

	    $ ruby -e "Encoding.find('cp708')"
	    Traceback (most recent call last):
	    	1: from -e:1:in `&lt;main&gt;'
	    -e:1:in `find': unknown encoding name - cp708 (ArgumentError)

	win32/registry uses ENCODING to transcode error messages and expand environment
	variables from UTF-16LE, so using UTF-8 seems like the best choice and is better
	than a hard failure.

	This should resolve [Bug #13831]
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge JSON 2.7.2 for Ruby 3.3 (#11541)</title>
<updated>2024-09-04T15:47:06+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-09-04T15:47:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4eb51dfc9e67683a1a03fdf302d5ddd95cad716a'/>
<id>4eb51dfc9e67683a1a03fdf302d5ddd95cad716a</id>
<content type='text'>
Merge JSON 2.7.2</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Merge JSON 2.7.2</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 97449338d6cb42d9dd7c9ca61550616e7e6b6ef6: [Backport #20649]</title>
<updated>2024-09-02T10:07:09+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-09-02T10:07:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b210c86a0201f6a97c4da8266908260746f53ae0'/>
<id>b210c86a0201f6a97c4da8266908260746f53ae0</id>
<content type='text'>
	[Bug #20649] Allow `nil` as 2nd argument of `assign_error`

	Fallback to the last token element in that case, for the backward
	compatibilities.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20649] Allow `nil` as 2nd argument of `assign_error`

	Fallback to the last token element in that case, for the backward
	compatibilities.
</pre>
</div>
</content>
</entry>
<entry>
<title>retry on cancelling of `getaddrinfo` (#11131)</title>
<updated>2024-07-09T15:55:04+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-07-09T15:55:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3427a1679a8ca30465c684ac28449f495bff8a22'/>
<id>3427a1679a8ca30465c684ac28449f495bff8a22</id>
<content type='text'>
When the registerred unblock function is called, it should retry
the cancelled blocking function if possible after checkints.

For example, `SIGCHLD` can cancel this method, but it should not
raise any exception if there is no trap handlers.

The following is repro-code:

```ruby
require 'socket'
PN = 10_000

1000000.times{
  p _1
  PN.times{
    fork{
      sleep rand(0.3)
    }
  }
  i = 0
  while i&lt;PN
    cpid = Process.wait -1, Process::WNOHANG
    if cpid
      # p [i, cpid]
      i += 1
    end

    begin
      TCPServer.new(nil, 0).close
    rescue
      p $!
      exit!
    end
  end
}
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the registerred unblock function is called, it should retry
the cancelled blocking function if possible after checkints.

For example, `SIGCHLD` can cancel this method, but it should not
raise any exception if there is no trap handlers.

The following is repro-code:

```ruby
require 'socket'
PN = 10_000

1000000.times{
  p _1
  PN.times{
    fork{
      sleep rand(0.3)
    }
  }
  i = 0
  while i&lt;PN
    cpid = Process.wait -1, Process::WNOHANG
    if cpid
      # p [i, cpid]
      i += 1
    end

    begin
      TCPServer.new(nil, 0).close
    rescue
      p $!
      exit!
    end
  end
}
```</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) fba8aff7, d8c6e91748871ab2287d7703347847fe18a292d2: [Backport #20592]</title>
<updated>2024-07-08T22:58:13+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-07-08T22:58:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9d583dd43a24354e8ae58c089cf091c1243e6e60'/>
<id>9d583dd43a24354e8ae58c089cf091c1243e6e60</id>
<content type='text'>
	[Bug #20592] Fix segfault when sending NULL to freeaddrinfo

	On alpine freeaddrinfo does not accept NULL pointer

	Fix dangling `else`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20592] Fix segfault when sending NULL to freeaddrinfo

	On alpine freeaddrinfo does not accept NULL pointer

	Fix dangling `else`
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f54369830f83a65fb54916d762883fbe6eeb7d0b, 338eb0065bd81ba8ae8b9402abc94804a24594cc, ac636f5709feb1d9d7a0c46a86be153be765cf21: [Backport #20516]</title>
<updated>2024-06-04T20:14:09+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-06-04T20:14:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1df1538be4a494bbc5ef6e3504312a0284948709'/>
<id>1df1538be4a494bbc5ef6e3504312a0284948709</id>
<content type='text'>
	Revert "Rollback to released version numbers of stringio and strscan"

	This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548.

	[ruby/strscan] StringScanner#captures: Return nil not "" for unmached capture (https://github.com/ruby/strscan/pull/72)

	fix https://github.com/ruby/strscan/issues/70
	If there is no substring matching the group (s[3]), the behavior is
	different.

	If there is no substring matching the group, the corresponding element
	(s[3]) should be nil.

	```
	s = StringScanner.new('foobarbaz') #=&gt; #&lt;StringScanner 0/9 @ "fooba..."&gt;
	s.scan /(foo)(bar)(BAZ)?/  #=&gt; "foobar"
	s[0]           #=&gt; "foobar"
	s[1]           #=&gt; "foo"
	s[2]           #=&gt; "bar"
	s[3]           #=&gt; nil
	s.captures #=&gt; ["foo", "bar", ""]
	s.captures.compact #=&gt; ["foo", "bar", ""]
	```

	```
	s = StringScanner.new('foobarbaz') #=&gt; #&lt;StringScanner 0/9 @ "fooba..."&gt;
	s.scan /(foo)(bar)(BAZ)?/  #=&gt; "foobar"
	s[0]           #=&gt; "foobar"
	s[1]           #=&gt; "foo"
	s[2]           #=&gt; "bar"
	s[3]           #=&gt; nil
	s.captures #=&gt; ["foo", "bar", nil]
	s.captures.compact #=&gt; ["foo", "bar"]
	```

	https://docs.ruby-lang.org/ja/latest/method/MatchData/i/captures.html
	```
	/(foo)(bar)(BAZ)?/ =~ "foobarbaz" #=&gt; 0
	$~.to_a        #=&gt; ["foobar", "foo", "bar", nil]
	$~.captures #=&gt; ["foo", "bar", nil]
	$~.captures.compact #=&gt; ["foo", "bar"]
	```

	* StringScanner#captures is not yet documented.
	https://docs.ruby-lang.org/ja/latest/class/StringScanner.html

	https://github.com/ruby/strscan/commit/1fbfdd3c6f

	[ruby/strscan] Bump version

	https://github.com/ruby/strscan/commit/d6f97ec102
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Revert "Rollback to released version numbers of stringio and strscan"

	This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548.

	[ruby/strscan] StringScanner#captures: Return nil not "" for unmached capture (https://github.com/ruby/strscan/pull/72)

	fix https://github.com/ruby/strscan/issues/70
	If there is no substring matching the group (s[3]), the behavior is
	different.

	If there is no substring matching the group, the corresponding element
	(s[3]) should be nil.

	```
	s = StringScanner.new('foobarbaz') #=&gt; #&lt;StringScanner 0/9 @ "fooba..."&gt;
	s.scan /(foo)(bar)(BAZ)?/  #=&gt; "foobar"
	s[0]           #=&gt; "foobar"
	s[1]           #=&gt; "foo"
	s[2]           #=&gt; "bar"
	s[3]           #=&gt; nil
	s.captures #=&gt; ["foo", "bar", ""]
	s.captures.compact #=&gt; ["foo", "bar", ""]
	```

	```
	s = StringScanner.new('foobarbaz') #=&gt; #&lt;StringScanner 0/9 @ "fooba..."&gt;
	s.scan /(foo)(bar)(BAZ)?/  #=&gt; "foobar"
	s[0]           #=&gt; "foobar"
	s[1]           #=&gt; "foo"
	s[2]           #=&gt; "bar"
	s[3]           #=&gt; nil
	s.captures #=&gt; ["foo", "bar", nil]
	s.captures.compact #=&gt; ["foo", "bar"]
	```

	https://docs.ruby-lang.org/ja/latest/method/MatchData/i/captures.html
	```
	/(foo)(bar)(BAZ)?/ =~ "foobarbaz" #=&gt; 0
	$~.to_a        #=&gt; ["foobar", "foo", "bar", nil]
	$~.captures #=&gt; ["foo", "bar", nil]
	$~.captures.compact #=&gt; ["foo", "bar"]
	```

	* StringScanner#captures is not yet documented.
	https://docs.ruby-lang.org/ja/latest/class/StringScanner.html

	https://github.com/ruby/strscan/commit/1fbfdd3c6f

	[ruby/strscan] Bump version

	https://github.com/ruby/strscan/commit/d6f97ec102
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/zlib] Bump up 3.1.1</title>
<updated>2024-05-29T18:35:46+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-05-29T18:35:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=541fc816fcb697307d666fed644ddd07ca5e942e'/>
<id>541fc816fcb697307d666fed644ddd07ca5e942e</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) 9f8f32bf9f3758ba67dd2afe7e07d9eccb68bbc7: [Backport #20289]</title>
<updated>2024-05-29T18:35:23+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-05-29T18:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2ae6df6d03c6d9750be559641c4c9f3b39eac62d'/>
<id>2ae6df6d03c6d9750be559641c4c9f3b39eac62d</id>
<content type='text'>
	[ruby/zlib] In Zlib::GzipReader#eof? check if we're actually at eof

	Only consider it eof if we read ahead and something fills the buf.
	If not, we may only have empty blocks and the footer.

	Fixes https://github.com/ruby/zlib/pull/56

	https://github.com/ruby/zlib/commit/437bea8003
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/zlib] In Zlib::GzipReader#eof? check if we're actually at eof

	Only consider it eof if we read ahead and something fills the buf.
	If not, we may only have empty blocks and the footer.

	Fixes https://github.com/ruby/zlib/pull/56

	https://github.com/ruby/zlib/commit/437bea8003
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 7e4b1f8e1935a10df3c41ee60ca0987d73281126: [Backport #20322]</title>
<updated>2024-05-29T18:07:07+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-05-29T18:07:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=548c7cb9f517dcb8029bd9698187c81819e08edd'/>
<id>548c7cb9f517dcb8029bd9698187c81819e08edd</id>
<content type='text'>
	[Bug #20322] Fix rb_enc_interned_str_cstr null encoding

	The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be
	a null pointer, but this currently causes a segmentation fault when
	trying to autoload the encoding. This commit fixes the issue by checking
	for NULL before calling `rb_enc_autoload`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20322] Fix rb_enc_interned_str_cstr null encoding

	The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be
	a null pointer, but this currently causes a segmentation fault when
	trying to autoload the encoding. This commit fixes the issue by checking
	for NULL before calling `rb_enc_autoload`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Initialize errno variables and fix maybe-uninitialized warnings</title>
<updated>2024-05-29T17:48:19+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-01-24T10:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bcf5cd3ba47e70c5c1c6328f61887bbac2f9d41b'/>
<id>bcf5cd3ba47e70c5c1c6328f61887bbac2f9d41b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
