<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/darray.h, branch v4.0.4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Create rb_darray_realloc_mul_add</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T22:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d67d1530a88fcc19c355ff79fccb165b623a48f1'/>
<id>d67d1530a88fcc19c355ff79fccb165b623a48f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Change rb_darray_realloc_mul_add_without_gc to check for overflow</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T22:52:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bd70534e97362ac8927bf01c7aafca1e051fc76a'/>
<id>bd70534e97362ac8927bf01c7aafca1e051fc76a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Create rb_darray_calloc_mul_add</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T22:51:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e596516182572457ce3a51adc246ece62a5c7823'/>
<id>e596516182572457ce3a51adc246ece62a5c7823</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Change rb_darray_calloc_mul_add_without_gc to check for overflow</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T22:50:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2e3b2d5eb25aff54bc97b93743b3e517096ca221'/>
<id>2e3b2d5eb25aff54bc97b93743b3e517096ca221</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use rb_darray_insert_without_gc for heap_pages darray</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T20:30:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b8c4af24f920a973cfa1f7b671825e8a5421368c'/>
<id>b8c4af24f920a973cfa1f7b671825e8a5421368c</id>
<content type='text'>
rb_darray_insert could trigger a GC, which would cause problems if it
freed pages while a new page was being inserted.

For example, the following script fails:

    GC.stress = true
    GC.auto_compact = :empty

    10.times do
      GC.verify_compaction_references(expand_heap: true, toward: :empty)
    end

It errors out with:

    'GC.verify_compaction_references': malloc: possible integer overflow (8*18446744073709551603) (ArgumentError)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
rb_darray_insert could trigger a GC, which would cause problems if it
freed pages while a new page was being inserted.

For example, the following script fails:

    GC.stress = true
    GC.auto_compact = :empty

    10.times do
      GC.verify_compaction_references(expand_heap: true, toward: :empty)
    end

It errors out with:

    'GC.verify_compaction_references': malloc: possible integer overflow (8*18446744073709551603) (ArgumentError)
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Remove with_gc functions in darray"</title>
<updated>2025-01-02T16:03:04+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-24T20:13:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f9cd9a1b5574e99c3b87cc203bba7f2c552dae53'/>
<id>f9cd9a1b5574e99c3b87cc203bba7f2c552dae53</id>
<content type='text'>
This reverts commit 24a740796050b72aa2d35339ba2a317d4eda7b75.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 24a740796050b72aa2d35339ba2a317d4eda7b75.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix MEMMOVE in rb_darray_insert</title>
<updated>2024-12-24T14:40:12+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-23T15:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=07e89bde4693fa6b8da4c152f1cf91686d1823f1'/>
<id>07e89bde4693fa6b8da4c152f1cf91686d1823f1</id>
<content type='text'>
Ruby's MEMMOVE takes in the element data type for the third argument, not
the size of the element. What this did was do sizeof(sizeof( ... )) which
always returned sizeof(size_t).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ruby's MEMMOVE takes in the element data type for the third argument, not
the size of the element. What this did was do sizeof(sizeof( ... )) which
always returned sizeof(size_t).
</pre>
</div>
</content>
</entry>
<entry>
<title>darray.h does not depend on internal/bits.h</title>
<updated>2024-12-05T19:12:56+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-12-05T18:36:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7ccad5b9f81f5184511d0f0445e15a8a089feb00'/>
<id>7ccad5b9f81f5184511d0f0445e15a8a089feb00</id>
<content type='text'>
darray.h no longer depends on internal/bits.h, so we can remove it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
darray.h no longer depends on internal/bits.h, so we can remove it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch sorted list of pages in the GC to a darray</title>
<updated>2024-09-09T14:15:21+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-09-04T15:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b66d6e48c8832edebcf7e6d667d10702ddbce42c'/>
<id>b66d6e48c8832edebcf7e6d667d10702ddbce42c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unneeded rb_darray_append_impl</title>
<updated>2024-09-06T13:56:59+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-09-04T14:49:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6bf519ba8128a2dfa7f2f2bec92ca6321b39406a'/>
<id>6bf519ba8128a2dfa7f2f2bec92ca6321b39406a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
