<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/include, branch v3_3_11</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) 9d44cb0b2b5520b2b299851003ca2a97bf1e2079, 367ddd445cdf5ccc55a0481c944746ef595f72f7, 48dce7874fcb571765635b32fa6a3e3a12e228f8: [Backport #21655]</title>
<updated>2025-11-29T03:30:30+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-11-29T03:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=61a9c450f45b318d43de987e80b9b1dcd5b4d007'/>
<id>61a9c450f45b318d43de987e80b9b1dcd5b4d007</id>
<content type='text'>
	[PATCH] Remove rbimpl_rstring_getmem() usage as workaround for GCC 15.2.1 optimization bug. [Bug #21655]

	[PATCH] include/ruby/internal/core/rstring.h: Remove rbimpl_rstring_getmem() definition.

	[PATCH] simplify RSRING_GETMEM() definition.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] Remove rbimpl_rstring_getmem() usage as workaround for GCC 15.2.1 optimization bug. [Bug #21655]

	[PATCH] include/ruby/internal/core/rstring.h: Remove rbimpl_rstring_getmem() definition.

	[PATCH] simplify RSRING_GETMEM() definition.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 43dbb9a93f4de3f1170d7d18641c30e81cc08365, 2bb6fe3854e2a4854bb89bfce4eaaea9d848fd1b, 7c9dd0ecff61153b96473c6c51d5582e809da489: [Backport #21629]</title>
<updated>2025-10-08T13:56:02+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-10-08T13:55:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5a8d7642168f4ea0d9331fded3033c225bbc36c5'/>
<id>5a8d7642168f4ea0d9331fded3033c225bbc36c5</id>
<content type='text'>
	[PATCH] [Bug #21629] Enable `nonstring` attribute on clang 21

	[PATCH] [Bug #21629] Initialize `struct RString`

	[PATCH] [Bug #21629] Initialize `struct RArray`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] [Bug #21629] Enable `nonstring` attribute on clang 21

	[PATCH] [Bug #21629] Initialize `struct RString`

	[PATCH] [Bug #21629] Initialize `struct RArray`
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) b42afa1dbcbb91e89852b3b3bc72484d7f0a5528, 67b91e780798b80038dbfb39a06831918a75259f, f1f0cc14cc7d3f9be35b203e5583f9224b1e2387, 543e3a1896ae2fe3b5b954f6497d261ab5663a15, ed2806117a0b76e4439ce1a061fae21d9e116d69, 46e4c8673747de96838d2c5dec37446d23d99d88: [Backport #21497]</title>
<updated>2025-07-20T09:32:03+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-07-20T07:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=407f6c9d0528fa6aa3f382eb1dce3a58baf5d571'/>
<id>407f6c9d0528fa6aa3f382eb1dce3a58baf5d571</id>
<content type='text'>
	Suppress gcc 15 unterminated-string-initialization warnings

	Drop an ignored attribute
	MIME-Version: 1.0
	Content-Type: text/plain; charset=UTF-8
	Content-Transfer-Encoding: 8bit

	GCC 13.3.0 (Ubuntu 24.04) emits the following warning:

	../symbol.c: In function ‘rb_id_attrset’:
	../symbol.c:175:9: warning: ‘nonstring’ attribute ignored on objects of type ‘const char[][8]’ [-Wattributes]
	  175 |         RBIMPL_ATTR_NONSTRING() static const char id_types[][8] = {
	      |         ^~~~~~~~~~~~~~~~~~~~~

	Separate `__has_attribute` from `defined(__has_attribute)`

	Fix Visual C warnings:
	```
	regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline
	```

	Cast up `int` instruction code to `VALUE`

	Fix Visual C warnings:
	```
	iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
	iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
	```

	Do not let files depend on a phony target

	Detect `clock_gettime` and `clock_getres` for winpthreads
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Suppress gcc 15 unterminated-string-initialization warnings

	Drop an ignored attribute
	MIME-Version: 1.0
	Content-Type: text/plain; charset=UTF-8
	Content-Transfer-Encoding: 8bit

	GCC 13.3.0 (Ubuntu 24.04) emits the following warning:

	../symbol.c: In function ‘rb_id_attrset’:
	../symbol.c:175:9: warning: ‘nonstring’ attribute ignored on objects of type ‘const char[][8]’ [-Wattributes]
	  175 |         RBIMPL_ATTR_NONSTRING() static const char id_types[][8] = {
	      |         ^~~~~~~~~~~~~~~~~~~~~

	Separate `__has_attribute` from `defined(__has_attribute)`

	Fix Visual C warnings:
	```
	regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline
	```

	Cast up `int` instruction code to `VALUE`

	Fix Visual C warnings:
	```
	iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
	iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
	```

	Do not let files depend on a phony target

	Detect `clock_gettime` and `clock_getres` for winpthreads
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 2297afda7ff3926c51fea700dfbf0f0eb4fea1e5: [Backport #21340]</title>
<updated>2025-06-14T02:41:49+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-06-14T02:41:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5de0c228a34dc919b663b547f933fb276333fdce'/>
<id>5de0c228a34dc919b663b547f933fb276333fdce</id>
<content type='text'>
	Include stdbool.h without checking with autoconf

	As reported in &lt;https://bugs.ruby-lang.org/issues/21340&gt;, older autoconf
	have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
	fixed the macro, but also mentions that it's obsolescent since all
	current compilers have this header.

	Since we require C99 [1] and VS 2015 [2], we might actually be able take
	that suggestion and include stdbool.h without a check. I want to try
	this on rubyci.org and will revert if this cause any issues. Not
	touching AC_HEADER_STDBOOL in configure.ac for now.

	[1]: https://bugs.ruby-lang.org/issues/15347
	[2]: https://bugs.ruby-lang.org/issues/19982
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Include stdbool.h without checking with autoconf

	As reported in &lt;https://bugs.ruby-lang.org/issues/21340&gt;, older autoconf
	have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
	fixed the macro, but also mentions that it's obsolescent since all
	current compilers have this header.

	Since we require C99 [1] and VS 2015 [2], we might actually be able take
	that suggestion and include stdbool.h without a check. I want to try
	this on rubyci.org and will revert if this cause any issues. Not
	touching AC_HEADER_STDBOOL in configure.ac for now.

	[1]: https://bugs.ruby-lang.org/issues/15347
	[2]: https://bugs.ruby-lang.org/issues/19982
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, 46e4c8673747de96838d2c5dec37446d23d99d88:</title>
<updated>2025-05-17T06:41:00+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-05-17T06:41:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a3adc05a4e1f5c5d1cd95eee92da9693b23360bf'/>
<id>a3adc05a4e1f5c5d1cd95eee92da9693b23360bf</id>
<content type='text'>
	Fix redefinition of `clock_gettime` and `clock_getres`

	winpthreads-git 12.0.0.r720 provides `clock_gettime` and
	`clock_getres` as inline functions.

	Detect `clock_gettime` and `clock_getres` for winpthreads
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix redefinition of `clock_gettime` and `clock_getres`

	winpthreads-git 12.0.0.r720 provides `clock_gettime` and
	`clock_getres` as inline functions.

	Detect `clock_gettime` and `clock_getres` for winpthreads
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 719486a642f0e282b02b958069b8b39b85b3aa1e: [Backport #21286]</title>
<updated>2025-05-06T02:29:37+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-05-06T02:29:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ffd469bd6d06df10057325a5b8c773fca009af8d'/>
<id>ffd469bd6d06df10057325a5b8c773fca009af8d</id>
<content type='text'>
	Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions

	Fixes [Bug #21286]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions

	Fixes [Bug #21286]
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20650] Fix memory leak in Regexp capture group when timeout (#11244)</title>
<updated>2024-07-25T16:14:26+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-07-25T16:14:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7571ad42f42939d172ec9a68dfe56aac724ee2ef'/>
<id>7571ad42f42939d172ec9a68dfe56aac724ee2ef</id>
<content type='text'>
Fix memory leak in Regexp capture group when timeout

[Bug #20650]

The capture group allocates memory that is leaked when it times out.

For example:

    re = Regexp.new("^#{"(a*)" * 10_000}x$", timeout: 0.000001)
    str = "a" * 1000000 + "x"

    10.times do
      100.times do
        re =~ str
      rescue Regexp::TimeoutError
      end

      puts `ps -o rss= -p #{$$}`
    end

Before:

    34688
    56416
    78288
    100368
    120784
    140704
    161904
    183568
    204320
    224800

After:

    16288
    16288
    16880
    16896
    16912
    16928
    16944
    17184
    17184
    17200</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix memory leak in Regexp capture group when timeout

[Bug #20650]

The capture group allocates memory that is leaked when it times out.

For example:

    re = Regexp.new("^#{"(a*)" * 10_000}x$", timeout: 0.000001)
    str = "a" * 1000000 + "x"

    10.times do
      100.times do
        re =~ str
      rescue Regexp::TimeoutError
      end

      puts `ps -o rss= -p #{$$}`
    end

Before:

    34688
    56416
    78288
    100368
    120784
    140704
    161904
    183568
    204320
    224800

After:

    16288
    16288
    16880
    16896
    16912
    16928
    16944
    17184
    17184
    17200</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 1faeb44dfcf777ace28321e80d0ebf942161a0a7,7f87ad9fc4bc45faf8cd33602a025f27c094b2fd: [Backport #20431]</title>
<updated>2024-05-29T23:50:13+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-05-29T23:50:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b2eb7f47b3e5f5a4681aa364ed960a0809460cdb'/>
<id>b2eb7f47b3e5f5a4681aa364ed960a0809460cdb</id>
<content type='text'>
	Check if macros are defined before using

	Assume macros with the same prefix would be defined together.

	Refer autoconfigured endian macro (#10572)

	Remove the case `RB_IO_BUFFER_HOST_ENDIAN` is not defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Check if macros are defined before using

	Assume macros with the same prefix would be defined together.

	Refer autoconfigured endian macro (#10572)

	Remove the case `RB_IO_BUFFER_HOST_ENDIAN` is not defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correctly release the underlying file mapping. (#9340)</title>
<updated>2023-12-25T01:20:53+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2023-12-25T01:20:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=260bf60e52ffdfa625be1153624b0d123fc305f8'/>
<id>260bf60e52ffdfa625be1153624b0d123fc305f8</id>
<content type='text'>
* Avoiding using `Tempfile` which was retaining the file preventing it from unlinking.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Avoiding using `Tempfile` which was retaining the file preventing it from unlinking.</pre>
</div>
</content>
</entry>
<entry>
<title>IO::Buffer improvements and documentation. (#9329)</title>
<updated>2023-12-24T13:03:36+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2023-12-24T13:03:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=37753f163e461e157e6e224d9d3e5626427a50cc'/>
<id>37753f163e461e157e6e224d9d3e5626427a50cc</id>
<content type='text'>
* Restore experimental warnings.

* Documentation and code structure improvements.

* Improved validation of flags, clarified documentation of argument handling.

* Remove inconsistent use of `Example:` and add example to `null?`.

* Expose `IO::Buffer#private?` and add test.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Restore experimental warnings.

* Documentation and code structure improvements.

* Improved validation of flags, clarified documentation of argument handling.

* Remove inconsistent use of `Example:` and add example to `null?`.

* Expose `IO::Buffer#private?` and add test.</pre>
</div>
</content>
</entry>
</feed>
