<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/ruby, branch ruby_3_4</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) 8f98abfc46d48c84db2b1408fc8f14b240ec05fd: [Backport #21941]</title>
<updated>2026-05-09T05:57:47+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-05-09T05:57:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8a434effcafaa4c2f32170a0003d3c1219110890'/>
<id>8a434effcafaa4c2f32170a0003d3c1219110890</id>
<content type='text'>
	[PATCH] YJIT: Fix not reading locals from `cfp-&gt;ep` after `YJIT.enable` and exceptional entry
	MIME-Version: 1.0
	Content-Type: text/plain; charset=UTF-8
	Content-Transfer-Encoding: 8bit

	Fix for [Bug #21941].

	In case of `--yjit-disable`, YJIT only starts to record environment
	escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
	we always have a full history all the way back to VM boot. This had YJIT
	install and run code that assume EP=BP when EP≠BP for some exceptional
	entry into the middle of a running frame, if the environment escaped
	before `YJIT.enable`.

	The fix is to reject exceptional entry with an escaped environment.
	Rename things and explain in more detail how the predicate for deciding
	to assume EP=BP works. It's quite subtle since it reasons about all
	parties in the system that push a control frame and then run JIT code.

	Note that while can_assume_on_stack_env() checks the currently running
	environment if it so happens to be the one YJIT is compiling against, it
	can return true for any ISEQ. The check isn't necessary for fixing the
	bug, and the load bearing part of this patch is the change to
	exceptional entries.

	This fix is flat on speed and space on ruby-bench headline benchmarks.

	Many thanks for the community effort to create a small test case for
	this bug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] YJIT: Fix not reading locals from `cfp-&gt;ep` after `YJIT.enable` and exceptional entry
	MIME-Version: 1.0
	Content-Type: text/plain; charset=UTF-8
	Content-Transfer-Encoding: 8bit

	Fix for [Bug #21941].

	In case of `--yjit-disable`, YJIT only starts to record environment
	escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
	we always have a full history all the way back to VM boot. This had YJIT
	install and run code that assume EP=BP when EP≠BP for some exceptional
	entry into the middle of a running frame, if the environment escaped
	before `YJIT.enable`.

	The fix is to reject exceptional entry with an escaped environment.
	Rename things and explain in more detail how the predicate for deciding
	to assume EP=BP works. It's quite subtle since it reasons about all
	parties in the system that push a control frame and then run JIT code.

	Note that while can_assume_on_stack_env() checks the currently running
	environment if it so happens to be the one YJIT is compiling against, it
	can return true for any ISEQ. The check isn't necessary for fixing the
	bug, and the load bearing part of this patch is the change to
	exceptional entries.

	This fix is flat on speed and space on ruby-bench headline benchmarks.

	Many thanks for the community effort to create a small test case for
	this bug.
</pre>
</div>
</content>
</entry>
<entry>
<title>- iseq.c: fix passing frozen option to compile_file_prism</title>
<updated>2026-05-05T07:53:12+00:00</updated>
<author>
<name>Vladimir Dementyev</name>
<email>dementiev.vm@gmail.com</email>
</author>
<published>2026-04-21T14:34:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=abf5cc668564d08c20be3b91db170e276f49e2c1'/>
<id>abf5cc668564d08c20be3b91db170e276f49e2c1</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) 7f4f3c8ee7cde795dc27be753796fc7ea8318565: [Backport #22004]</title>
<updated>2026-05-04T12:31:57+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-05-04T12:31:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fdac94eee1a3f226cafcfa6ec0da97bb08b03369'/>
<id>fdac94eee1a3f226cafcfa6ec0da97bb08b03369</id>
<content type='text'>
	[PATCH] [Bug #22004] Fix short-circuited loop conditions
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] [Bug #22004] Fix short-circuited loop conditions
</pre>
</div>
</content>
</entry>
<entry>
<title>iseq.c: rb_estimate_iv_count handle no superclass</title>
<updated>2026-04-15T09:51:03+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2026-04-12T13:13:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1bdce3585e2e135a3d69c5bf3e3ea446d4839851'/>
<id>1bdce3585e2e135a3d69c5bf3e3ea446d4839851</id>
<content type='text'>
[Bug #21992]

When redefining `BasicObject#initialize` there's no super class to
access.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21992]

When redefining `BasicObject#initialize` there's no super class to
access.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix UnboundMethod#== for methods from included/extended modules [Backport #21873]</title>
<updated>2026-03-07T05:41:17+00:00</updated>
<author>
<name>Mike Dalessio</name>
<email>mike@37signals.com</email>
</author>
<published>2026-02-10T17:10:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0097b87b1e2c6aa60489527e421e8bf2e2791d69'/>
<id>0097b87b1e2c6aa60489527e421e8bf2e2791d69</id>
<content type='text'>
Method#unbind clones the method entry, preserving its defined_class.
For methods mixed in via include/extend, defined_class is an ICLASS,
causing UnboundMethod#== to return false when comparing against the
same method obtained via Module#instance_method.

Resolve ICLASS defined_class in method_eq.

[Bug #21873]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Method#unbind clones the method entry, preserving its defined_class.
For methods mixed in via include/extend, defined_class is an ICLASS,
causing UnboundMethod#== to return false when comparing against the
same method obtained via Module#instance_method.

Resolve ICLASS defined_class in method_eq.

[Bug #21873]
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) d7a6ff8224519005d2deeb3f4e98689a8a0835ad: [Backport #21819]</title>
<updated>2026-01-25T08:47:37+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T08:47:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d5ca99a71ccb170db08e4b610d661ce3a18626f2'/>
<id>d5ca99a71ccb170db08e4b610d661ce3a18626f2</id>
<content type='text'>
	[PATCH] [Bug #21819] Data objects without members should also be frozen
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] [Bug #21819] Data objects without members should also be frozen
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 19e539c9ee1701b34189fa0c1feb942adeb0e326: [Backport #21814]</title>
<updated>2026-01-25T08:41:02+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T08:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8fa17ea3b2c857369c808a4384ff7ff8174d69f8'/>
<id>8fa17ea3b2c857369c808a4384ff7ff8174d69f8</id>
<content type='text'>
	[PATCH] [Bug #21814] Fix negative bignum modulo

	If modulo is zero, do not  apply bias even if the divisor is zero.
	`BIGNUM_POSITIVE_P` is true even on bignum zero.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] [Bug #21814] Fix negative bignum modulo

	If modulo is zero, do not  apply bias even if the divisor is zero.
	`BIGNUM_POSITIVE_P` is true even on bignum zero.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 86320a53002a3adaf35ad7434c70e86747a8b345: [Backport #21326] [Backport #21807]</title>
<updated>2026-01-25T08:20:48+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T08:12:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=55920677854fe757c36368785f6dfdbce0b49ab7'/>
<id>55920677854fe757c36368785f6dfdbce0b49ab7</id>
<content type='text'>
	[PATCH] Fix compilation for forwarding params in Prism

	[Bug #21326]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] Fix compilation for forwarding params in Prism

	[Bug #21326]
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f430fbbfacea5690d790dd9060ca4118431fc2fb, c353b625297162024b5a80480664e599dd49a294: [Backport #21787]</title>
<updated>2026-01-25T07:37:10+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2026-01-25T07:37:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=45100545b056792fb5701a93abd1f78259a6224e'/>
<id>45100545b056792fb5701a93abd1f78259a6224e</id>
<content type='text'>
	[PATCH] IO::Buffer: Fill the test for `IO::Buffer#clear`

	[PATCH] [Bug #21787] IO::Buffer: Check addition overflows

	https://hackerone.com/reports/3437743
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] IO::Buffer: Fill the test for `IO::Buffer#clear`

	[PATCH] [Bug #21787] IO::Buffer: Check addition overflows

	https://hackerone.com/reports/3437743
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 9168cad4d63a5d281d443bde4edea6be213b0b25: [Backport #21266]</title>
<updated>2025-12-16T23:53:40+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-12-16T23:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d8f087b581735ec250b8671c3574fa4d5b16ae54'/>
<id>d8f087b581735ec250b8671c3574fa4d5b16ae54</id>
<content type='text'>
	[PATCH] YJIT: Bail out if proc would be stored above stack top

	Fixes [Bug #21266].
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[PATCH] YJIT: Bail out if proc would be stored above stack top

	Fixes [Bug #21266].
</pre>
</div>
</content>
</entry>
</feed>
