<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext, branch v3_3_5</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) 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>
<entry>
<title>merge revision(s) ae8990aef098410ecc2b5f48fea9d7d171a3c5f6: [Backport #20183] (#10310)</title>
<updated>2024-03-21T01:28:51+00:00</updated>
<author>
<name>NARUSE, Yui</name>
<email>nurse@users.noreply.github.com</email>
</author>
<published>2024-03-21T01:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a406c516685f1950269c4e43d13cc748f0bfbc06'/>
<id>a406c516685f1950269c4e43d13cc748f0bfbc06</id>
<content type='text'>
Alias init functions

	The extension library has each initialization function named "Init_" +
	basename. If multiple extensions have the same base name (such as
	cgi/escape and erb/escape), the same function will be registered for
	both names.

	To fix this conflict, rename the initialization functions under sub
	directories using using parent names, when statically linking.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Alias init functions

	The extension library has each initialization function named "Init_" +
	basename. If multiple extensions have the same base name (such as
	cgi/escape and erb/escape), the same function will be registered for
	both names.

	To fix this conflict, rename the initialization functions under sub
	directories using using parent names, when statically linking.</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20208] Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoi… (#9791)</title>
<updated>2024-03-14T16:27:05+00:00</updated>
<author>
<name>KJ Tsanaktsidis</name>
<email>kj@kjtsanaktsidis.id.au</email>
</author>
<published>2024-03-14T16:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=606dd03e9b0d4cf65ef56e52fab063e3ed5ef797'/>
<id>606dd03e9b0d4cf65ef56e52fab063e3ed5ef797</id>
<content type='text'>
Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns"

This reverts commit 673ed41c81cf5a6951bcb2c3dec82d7bd6ea7440.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns"

This reverts commit 673ed41c81cf5a6951bcb2c3dec82d7bd6ea7440.</pre>
</div>
</content>
</entry>
</feed>
