<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/internal/numeric.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>Fix strict aliasing warning in rb_int128_to_numeric</title>
<updated>2025-12-08T23:01:05+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-12-07T17:43:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=55ea3ec00f5166423cd7dcd67e220cd264a766f6'/>
<id>55ea3ec00f5166423cd7dcd67e220cd264a766f6</id>
<content type='text'>
If we don't have uint128, then rb_int128_to_numeric emits a strict
aliasing warning:

    numeric.c:3641:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    3641 |         return rb_uint128_to_numeric(*(rb_uint128_t*)&amp;n);
         |                                       ^~~~~~~~~~~~~~~~~
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we don't have uint128, then rb_int128_to_numeric emits a strict
aliasing warning:

    numeric.c:3641:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    3641 |         return rb_uint128_to_numeric(*(rb_uint128_t*)&amp;n);
         |                                       ^~~~~~~~~~~~~~~~~
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for `u128`, `U128`, `s128` and `S128` integers to `IO::Buffer`. (#15399)</title>
<updated>2025-12-06T02:55:32+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@shopify.com</email>
</author>
<published>2025-12-06T02:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a7dc53b91c8475323b34d5a332fdb25d190e277d'/>
<id>a7dc53b91c8475323b34d5a332fdb25d190e277d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of bignum[beg, len] (#14007)</title>
<updated>2025-07-29T16:34:13+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2025-07-29T16:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a66e4f21542aae99bde7c50e7af4fb0283a81070'/>
<id>a66e4f21542aae99bde7c50e7af4fb0283a81070</id>
<content type='text'>
Implement rb_big_aref2.
Taking a small slice from large bignum was slow in rb_int_aref2.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement rb_big_aref2.
Taking a small slice from large bignum was slow in rb_int_aref2.</pre>
</div>
</content>
</entry>
<entry>
<title>Faster Integer.sqrt for large bignum</title>
<updated>2024-03-18T04:52:27+00:00</updated>
<author>
<name>tompng</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-03-17T14:03:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0ff2c7fe6fbd663ebffdbbd09c44b810cdf492d2'/>
<id>0ff2c7fe6fbd663ebffdbbd09c44b810cdf492d2</id>
<content type='text'>
Integer.sqrt uses Newton's method.
This pull request reduces the precision which was unnecessarily high in each calculation step.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Integer.sqrt uses Newton's method.
This pull request reduces the precision which was unnecessarily high in each calculation step.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use `UNDEF_P`</title>
<updated>2024-01-30T05:48:59+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-01-30T05:48:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=361b3efe164bd753258c7a86aff5141f1fd3ecf6'/>
<id>361b3efe164bd753258c7a86aff5141f1fd3ecf6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop exporting symbols for MJIT</title>
<updated>2023-03-07T05:59:23+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2023-03-07T05:34:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=233ddfac541749a0da80ea27913dc1ef4ea700bb'/>
<id>233ddfac541749a0da80ea27913dc1ef4ea700bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use `roomof` macro for rounding up divisions</title>
<updated>2022-10-14T10:23:25+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-10-04T09:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5ccb625fbbd1e774636a9fdbe0bf1c3d38e085d5'/>
<id>5ccb625fbbd1e774636a9fdbe0bf1c3d38e085d5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Embed bare `double` if `sizeof(double) == sizeof(VALUE)`</title>
<updated>2021-10-26T17:05:06+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-10-26T15:50:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=26353c75a94469bad7a0e6a6aa81d968e64952d5'/>
<id>26353c75a94469bad7a0e6a6aa81d968e64952d5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Align `RFloat` at VALUE boundary</title>
<updated>2021-10-26T17:05:06+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-10-26T14:39:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e3a783b14191fef175c9a59996afdc744c8edc4c'/>
<id>e3a783b14191fef175c9a59996afdc744c8edc4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix unaligned access to `double` in RFloat</title>
<updated>2021-10-26T11:17:00+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-10-26T11:14:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=afdca0e780760e008e26f4c9fc7262a0a4fe56bb'/>
<id>afdca0e780760e008e26f4c9fc7262a0a4fe56bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
