<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/template/builtin_binary.inc.tmpl, branch v3_3_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Revert "Disable iseq-dumped builtin module for universal x86_64/arm64 binaries"</title>
<updated>2023-11-09T07:01:01+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-11-09T04:40:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=40d40a651ef8d9cd150503fc264b1c922f63fe61'/>
<id>40d40a651ef8d9cd150503fc264b1c922f63fe61</id>
<content type='text'>
This reverts commit 1d5598fe0d3470e7cab06a756d40a9221fcd501b.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 1d5598fe0d3470e7cab06a756d40a9221fcd501b.
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable iseq-dumped builtin module for universal x86_64/arm64 binaries</title>
<updated>2023-11-09T03:24:01+00:00</updated>
<author>
<name>Ben Hamilton</name>
<email>benhamilton@google.com</email>
</author>
<published>2023-02-23T20:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1d5598fe0d3470e7cab06a756d40a9221fcd501b'/>
<id>1d5598fe0d3470e7cab06a756d40a9221fcd501b</id>
<content type='text'>
During the build, Ruby has special logic to serialize its own builtin
module to disk using the binary iseq format during the build (I assume
for speed so it doesn't have to parse builtin every time it starts
up).

However, since iseq format is architecture-specific, when building on
x86_64 for universal x86_64 + arm64, the serialized builtin module is
written with the x86_64 architecture of the build machine, which fails
this check whenever ruby imports the builtin module on arm64:

https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/compile.c#L13243

Thankfully, there's logic to disable this feature for cross-compiled builds:

https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/builtin.c#L6

This disables the iseq logic for universal builds as well.

Fixes [Bug #18286]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During the build, Ruby has special logic to serialize its own builtin
module to disk using the binary iseq format during the build (I assume
for speed so it doesn't have to parse builtin every time it starts
up).

However, since iseq format is architecture-specific, when building on
x86_64 for universal x86_64 + arm64, the serialized builtin module is
written with the x86_64 architecture of the build machine, which fails
this check whenever ruby imports the builtin module on arm64:

https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/compile.c#L13243

Thankfully, there's logic to disable this feature for cross-compiled builds:

https://github.com/ruby/ruby/blob/1fdaa0666086529b3aae2d509a2e71c4247c3a12/builtin.c#L6

This disables the iseq logic for universal builds as well.

Fixes [Bug #18286]
</pre>
</div>
</content>
</entry>
<entry>
<title>Check loading built-in binaries</title>
<updated>2023-03-08T04:59:21+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-03-08T03:16:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=677c3228d09eaeaa57ad18396f52841f31411b6a'/>
<id>677c3228d09eaeaa57ad18396f52841f31411b6a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed a typo</title>
<updated>2020-05-10T09:40:47+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2020-05-10T09:40:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dd830fab6982dfbfd0667f025e823b097af42f71'/>
<id>dd830fab6982dfbfd0667f025e823b097af42f71</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix for cross_compiling</title>
<updated>2020-05-10T08:28:03+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2020-05-10T08:26:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=42e8de8db9c009fef41694db3e14d6d4500d6848'/>
<id>42e8de8db9c009fef41694db3e14d6d4500d6848</id>
<content type='text'>
`RubyVM.each_builtin` is not defined when cross compiling.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`RubyVM.each_builtin` is not defined when cross compiling.
</pre>
</div>
</content>
</entry>
<entry>
<title>delete mk_builtin_binary.rb</title>
<updated>2020-05-10T07:51:10+00:00</updated>
<author>
<name>卜部昌平</name>
<email>shyouhei@ruby-lang.org</email>
</author>
<published>2020-05-05T09:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4fca592e8c707c76e8afea2a0b5dd4d17e97cd8f'/>
<id>4fca592e8c707c76e8afea2a0b5dd4d17e97cd8f</id>
<content type='text'>
To generate what is necessary via generic_erb.rb instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To generate what is necessary via generic_erb.rb instead.
</pre>
</div>
</content>
</entry>
</feed>
