<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/enumerator.c, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[Backport #21866] Fix integer overflow checks in enumerator (#16088)</title>
<updated>2026-02-09T17:47:03+00:00</updated>
<author>
<name>Randy Stauner</name>
<email>randy@r4s6.net</email>
</author>
<published>2026-02-09T17:47:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=584c3b6465ec40226687e9699d2b652d9ad31a8f'/>
<id>584c3b6465ec40226687e9699d2b652d9ad31a8f</id>
<content type='text'>
Fix integer overflow checks in enumerator

Co-authored-by: Jörmungandrk &lt;github@zerodaysec.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix integer overflow checks in enumerator

Co-authored-by: Jörmungandrk &lt;github@zerodaysec.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add clarifications about the Enumerator.size (#15615)</title>
<updated>2025-12-20T11:26:12+00:00</updated>
<author>
<name>Victor Shepelev</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2025-12-20T11:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a57039196f0ef5a3ee8710d85e52e8644b9bc0c2'/>
<id>a57039196f0ef5a3ee8710d85e52e8644b9bc0c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert the default size of Enumerator::Producer to infinity</title>
<updated>2025-12-17T09:56:22+00:00</updated>
<author>
<name>Akinori Musha</name>
<email>knu@idaemons.org</email>
</author>
<published>2025-12-17T09:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c99670d6683fec770271d35c2ae082514b1abce3'/>
<id>c99670d6683fec770271d35c2ae082514b1abce3</id>
<content type='text'>
[Bug #21780]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21780]
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert the override of Enumerator#to_set that performed size checks</title>
<updated>2025-12-17T08:30:24+00:00</updated>
<author>
<name>Akinori Musha</name>
<email>knu@idaemons.org</email>
</author>
<published>2025-12-17T08:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=79f36c544a0431d9b76c3c11a5f622383eaca7bd'/>
<id>79f36c544a0431d9b76c3c11a5f622383eaca7bd</id>
<content type='text'>
[Bug #21780]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21780]
</pre>
</div>
</content>
</entry>
<entry>
<title>Enumerator.produce accepts an optional `size` keyword argument</title>
<updated>2025-12-13T14:33:09+00:00</updated>
<author>
<name>Akinori Musha</name>
<email>knu@idaemons.org</email>
</author>
<published>2025-11-20T14:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=79a6ec74831cc47d022b86dfabe3c774eaaf91ca'/>
<id>79a6ec74831cc47d022b86dfabe3c774eaaf91ca</id>
<content type='text'>
When not specified, the size is unknown (`nil`).  Previously, the size was always `Float::INFINITY` and not specifiable.

[Feature #21701]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When not specified, the size is unknown (`nil`).  Previously, the size was always `Float::INFINITY` and not specifiable.

[Feature #21701]
</pre>
</div>
</content>
</entry>
<entry>
<title>Add size checks to Range#to_set and Enumerator#to_set [Bug #21654]</title>
<updated>2025-11-13T13:00:07+00:00</updated>
<author>
<name>Akinori Musha</name>
<email>knu@idaemons.org</email>
</author>
<published>2025-11-13T11:01:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=61500c6f48135ef018f5e496ff292a86b0043c65'/>
<id>61500c6f48135ef018f5e496ff292a86b0043c65</id>
<content type='text'>
These two class are most common sources of infinite sequences.  This change should effectively prevent accidental infinite loops when calling to_set on them. [Bug #21513]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These two class are most common sources of infinite sequences.  This change should effectively prevent accidental infinite loops when calling to_set on them. [Bug #21513]
</pre>
</div>
</content>
</entry>
<entry>
<title>Make Enumerator::Product write-barrier protected</title>
<updated>2025-08-12T17:32:41+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-08-12T14:16:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a9230e76ee19716c7d2e035be7bd1be9bdca2b59'/>
<id>a9230e76ee19716c7d2e035be7bd1be9bdca2b59</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make Enumerator::Chain write-barrier protected</title>
<updated>2025-08-12T17:32:41+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-08-12T14:14:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3e1e2bda49724c619cbb82935b2a11254e810b6c'/>
<id>3e1e2bda49724c619cbb82935b2a11254e810b6c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert `Enumerator` types to use `rb_gc_mark_and_move`</title>
<updated>2025-08-07T19:00:00+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-08-07T12:41:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=aee8e65c702283af8a70cb1fdac0797aa7c75001'/>
<id>aee8e65c702283af8a70cb1fdac0797aa7c75001</id>
<content type='text'>
The `p-&gt;field = rb_gc_location(p-&gt;field)` isn't ideal because it means all
references are rewritten on compaction, regardless of whether the referenced
object has moved. This isn't good for caches nor for Copy-on-Write.

`rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
have a single function for both marking and updating references.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `p-&gt;field = rb_gc_location(p-&gt;field)` isn't ideal because it means all
references are rewritten on compaction, regardless of whether the referenced
object has moved. This isn't good for caches nor for Copy-on-Write.

`rb_gc_mark_and_move` avoid needless writes, and most of the time allow to
have a single function for both marking and updating references.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract checks for the block in lazy enumerator</title>
<updated>2025-07-28T08:54:09+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-07-28T08:54:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1a68f1b199e48dce755015eff2dfa8828f38714d'/>
<id>1a68f1b199e48dce755015eff2dfa8828f38714d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
