<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/ruby, branch v3_4_3</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) 3a7b9ca93b91dcc086b9ac8b9957e59268f9493b: [Backport #21217]</title>
<updated>2025-04-14T07:21:51+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-04-14T07:21:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9abd48df705c37f69ec9fd954f84cbbbd65db624'/>
<id>9abd48df705c37f69ec9fd954f84cbbbd65db624</id>
<content type='text'>
	Fix `Integer.sqrt` to never exceed actual value

	`Integer.sqrt` uses `sqrt(3)` from libm for small values.
	This method must return a value less than or equal to the actual integer
	square root, but libm's sqrt does not always guarantee that.

	This change corrects that by decrementing the result if necessary.

	Fixes [Bug #21217]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix `Integer.sqrt` to never exceed actual value

	`Integer.sqrt` uses `sqrt(3)` from libm for small values.
	This method must return a value less than or equal to the actual integer
	square root, but libm's sqrt does not always guarantee that.

	This change corrects that by decrementing the result if necessary.

	Fixes [Bug #21217]
</pre>
</div>
</content>
</entry>
<entry>
<title>Picking test fix from https://github.com/ruby/ruby/commit/3d8a66568e8106b367665d716e0d3c8c8208aa07</title>
<updated>2025-04-03T04:45:14+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-04-03T02:54:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=34e990fcec828a3e555ed353780e4e94e50b70a6'/>
<id>34e990fcec828a3e555ed353780e4e94e50b70a6</id>
<content type='text'>
The original change is https://github.com/ruby/ruby/commit/d78ff6a767ca813ac5fa178dd7611f20a993c191
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The original change is https://github.com/ruby/ruby/commit/d78ff6a767ca813ac5fa178dd7611f20a993c191
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)</title>
<updated>2025-03-27T22:23:31+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-03-23T00:42:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=aa7380f9d8a9a37d7c4d8f827d8b119c0ffbb6f2'/>
<id>aa7380f9d8a9a37d7c4d8f827d8b119c0ffbb6f2</id>
<content type='text'>
[Bug #21195]</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21195]</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21094] Update nested module names when setting temporary name</title>
<updated>2025-03-20T16:41:35+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-01-29T07:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5b3970f68b9108e0976b75b5d67da8c56eaa9db4'/>
<id>5b3970f68b9108e0976b75b5d67da8c56eaa9db4</id>
<content type='text'>
[Backport #21094]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Backport #21094]
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21186] multibyte char literal should be a single letter word</title>
<updated>2025-03-20T16:38:42+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-03-17T12:37:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8b491169c32621d4e74324eed08465448dfc54d5'/>
<id>8b491169c32621d4e74324eed08465448dfc54d5</id>
<content type='text'>
[Backport #21186]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Backport #21186]
</pre>
</div>
</content>
</entry>
<entry>
<title>Have `ast` live longer in ISeq.compile_file to fix GC stress crash</title>
<updated>2025-03-14T19:04:25+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-03-11T17:14:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=31502b0d8569b806d723a0e49a919921bf5d6e2c'/>
<id>31502b0d8569b806d723a0e49a919921bf5d6e2c</id>
<content type='text'>
Previously, live range of `ast_value` ended on the call right before
rb_ast_dispose(), which led to premature collection and use-after-free.

We observed this crashing on -O3, -DVM_CHECK_MODE, with GCC 11.4.0 on
Ubuntu.

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, live range of `ast_value` ended on the call right before
rb_ast_dispose(), which led to premature collection and use-after-free.

We observed this crashing on -O3, -DVM_CHECK_MODE, with GCC 11.4.0 on
Ubuntu.

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #19841] Refine error on marshaling recursive USERDEF</title>
<updated>2025-03-12T17:51:50+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-08-20T04:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ae2fcdc0f705e767045c2bd5253e8eae733d2edb'/>
<id>ae2fcdc0f705e767045c2bd5253e8eae733d2edb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21163] Fix hexadecimal float conversion</title>
<updated>2025-03-10T19:04:54+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-03-04T01:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e15a9044d7a9ee5435e7a6d19ef9ac46b50bb880'/>
<id>e15a9044d7a9ee5435e7a6d19ef9ac46b50bb880</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace tombstone when converting AR to ST hash</title>
<updated>2025-03-05T23:15:45+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-03-04T20:54:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=698741d73a0e6c998fb47297ce7b129366b4835b'/>
<id>698741d73a0e6c998fb47297ce7b129366b4835b</id>
<content type='text'>
[Bug #21170]

st_table reserves -1 as a special hash value to indicate that an entry
has been deleted. So that that's a valid value to be returned from the
hash function, do_hash replaces -1 with 0 so that it is not mistaken for
the sentinel.

Previously, when upgrading an AR table to an ST table,
rb_st_add_direct_with_hash was used which did not perform the same
conversion, this could lead to a hash in a broken state where one if its
entries which was supposed to exist being marked as a tombstone.

The hash could then become further corrupted when the ST table required
resizing as the falsely tombstoned entry would be skipped but it would
be counted in num entries, leading to an uninitialized entry at index
15.

In most cases this will be really rare, unless using a very poorly
implemented custom hash function.

This also adds two debug assertions, one that st_add_direct_with_hash
does not receive the reserved hash value, and a second in
rebuild_table_with, which ensures that after we rebuild/compact a table
it contains the expected number of elements.

Co-authored-by: Alan Wu &lt;alanwu@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21170]

st_table reserves -1 as a special hash value to indicate that an entry
has been deleted. So that that's a valid value to be returned from the
hash function, do_hash replaces -1 with 0 so that it is not mistaken for
the sentinel.

Previously, when upgrading an AR table to an ST table,
rb_st_add_direct_with_hash was used which did not perform the same
conversion, this could lead to a hash in a broken state where one if its
entries which was supposed to exist being marked as a tombstone.

The hash could then become further corrupted when the ST table required
resizing as the falsely tombstoned entry would be skipped but it would
be counted in num entries, leading to an uninitialized entry at index
15.

In most cases this will be really rare, unless using a very poorly
implemented custom hash function.

This also adds two debug assertions, one that st_add_direct_with_hash
does not receive the reserved hash value, and a second in
rebuild_table_with, which ensures that after we rebuild/compact a table
it contains the expected number of elements.

Co-authored-by: Alan Wu &lt;alanwu@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21159] module names should not be modifiable</title>
<updated>2025-03-03T23:41:33+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-02-27T02:07:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ddb73fbd115631e6dec3bdd230c1cfc13027602e'/>
<id>ddb73fbd115631e6dec3bdd230c1cfc13027602e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
