<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/builtin.c, branch v3_2_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Fix trivial -Wundef warnings</title>
<updated>2021-05-04T12:56:55+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2021-04-29T12:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=68d6bd0873557c12bec6f8e0f8db622f1499d8a7'/>
<id>68d6bd0873557c12bec6f8e0f8db622f1499d8a7</id>
<content type='text'>
* See [Feature #17752]

Co-authored-by: xtkoba (Tee KOBAYASHI) &lt;xtkoba+ruby@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* See [Feature #17752]

Co-authored-by: xtkoba (Tee KOBAYASHI) &lt;xtkoba+ruby@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>builtin_lookup: do not goto into a branch</title>
<updated>2020-06-29T02:05:41+00:00</updated>
<author>
<name>卜部昌平</name>
<email>shyouhei@ruby-lang.org</email>
</author>
<published>2020-06-11T04:23:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8d182b04ed04378877e743535658be41a05aef74'/>
<id>8d182b04ed04378877e743535658be41a05aef74</id>
<content type='text'>
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea.  Better refactor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea.  Better refactor.
</pre>
</div>
</content>
</entry>
<entry>
<title>take care of USE_LAZY_LOAD=1.</title>
<updated>2019-12-25T05:12:33+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-12-25T05:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d9bf9c572f461c282fa6e65833e98bc7d453a66f'/>
<id>d9bf9c572f461c282fa6e65833e98bc7d453a66f</id>
<content type='text'>
On USE_LAZY_LOAD=1, the iseq should be loaded. So rb_iseq_check()
is needed. Furthermore, now lazy loading with builtin_function_table
is not supported, so it should cancel lazy loading.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On USE_LAZY_LOAD=1, the iseq should be loaded. So rb_iseq_check()
is needed. Furthermore, now lazy loading with builtin_function_table
is not supported, so it should cancel lazy loading.
</pre>
</div>
</content>
</entry>
<entry>
<title>rely on sorted compiled binary array.</title>
<updated>2019-12-11T06:48:30+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-12-11T06:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7f5014e6e884d7fa091e3e6462827b910417267c'/>
<id>7f5014e6e884d7fa091e3e6462827b910417267c</id>
<content type='text'>
`builtin_binary` is sorted by miniruby loading order and this
loading order should be same on ruby. So we can believe sorted
order of `builtin_binary` on boot time.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`builtin_binary` is sorted by miniruby loading order and this
loading order should be same on ruby. So we can believe sorted
order of `builtin_binary` on boot time.
</pre>
</div>
</content>
</entry>
<entry>
<title>support cross-compilation.</title>
<updated>2019-12-11T02:24:42+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-12-10T08:39:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=40026a408df5e3576380f6c1d8bf6c119fa2e32b'/>
<id>40026a408df5e3576380f6c1d8bf6c119fa2e32b</id>
<content type='text'>
On cross-compilation, compiled binary can no be created because
compiled binary should be created by same interpreter (on cross-
compilation, host ruby is used to build ruby (BASERUBY)).
So that cross-compilation system loads required scripts in text.
It is same as miniruby.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On cross-compilation, compiled binary can no be created because
compiled binary should be created by same interpreter (on cross-
compilation, host ruby is used to build ruby (BASERUBY)).
So that cross-compilation system loads required scripts in text.
It is same as miniruby.
</pre>
</div>
</content>
</entry>
<entry>
<title>use compiled binary for gem_prelude.rb.</title>
<updated>2019-12-11T02:24:42+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-12-10T07:19:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2c5c60754cafe9895b7a7421cd0552eaa2ae8b09'/>
<id>2c5c60754cafe9895b7a7421cd0552eaa2ae8b09</id>
<content type='text'>
`gem_prelude.rb` is not compiled yet. This patch compile it to
compiled binary.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`gem_prelude.rb` is not compiled yet. This patch compile it to
compiled binary.
</pre>
</div>
</content>
</entry>
<entry>
<title>move rb_vm_lvar_exposed() correctly.</title>
<updated>2019-11-13T19:21:24+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-11-13T19:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=179062dd808c0a48e16269a2c42b10235cbbacd8'/>
<id>179062dd808c0a48e16269a2c42b10235cbbacd8</id>
<content type='text'>
rb_vm_lvar_exposed() is prepared for __builtin_inline!(), needed for
mini_builtin.c and builtin.c. However, it's only on builtin.c.
So move it to make it as a part of VM.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
rb_vm_lvar_exposed() is prepared for __builtin_inline!(), needed for
mini_builtin.c and builtin.c. However, it's only on builtin.c.
So move it to make it as a part of VM.
</pre>
</div>
</content>
</entry>
<entry>
<title>__builtin_inline!</title>
<updated>2019-11-11T07:47:50+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-11-11T07:38:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=31416423809f64d4b5ea6b9651cced3179cc5ced'/>
<id>31416423809f64d4b5ea6b9651cced3179cc5ced</id>
<content type='text'>
Add an experimental `__builtin_inline!(c_expression)` special intrinsic
which run a C code snippet.
In `c_expression`, you can access the following variables:
  * ec (rb_execution_context_t *)
  * self (const VALUE)
  * local variables (const VALUE)
Not that you can read these variables, but you can not write them.
You need to return from this expression and return value will be a
result of __builtin_inline!().

Examples:
  `def foo(x) __builtin_inline!('return rb_p(x);'); end` calls `p(x)`.
  `def double(x) __builtin_inline!('return INT2NUM(NUM2INT(x) * 2);')`
  returns x*2.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add an experimental `__builtin_inline!(c_expression)` special intrinsic
which run a C code snippet.
In `c_expression`, you can access the following variables:
  * ec (rb_execution_context_t *)
  * self (const VALUE)
  * local variables (const VALUE)
Not that you can read these variables, but you can not write them.
You need to return from this expression and return value will be a
result of __builtin_inline!().

Examples:
  `def foo(x) __builtin_inline!('return rb_p(x);'); end` calls `p(x)`.
  `def double(x) __builtin_inline!('return INT2NUM(NUM2INT(x) * 2);')`
  returns x*2.
</pre>
</div>
</content>
</entry>
<entry>
<title>Full-path of builtin scripts no longer needed</title>
<updated>2019-11-09T10:43:14+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2019-11-09T10:43:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e3c852441177caa4b251fa33c83a65e4263a4146'/>
<id>e3c852441177caa4b251fa33c83a65e4263a4146</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "don't embed full-path."</title>
<updated>2019-11-08T22:09:01+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-11-08T22:09:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b5d884922053962c955df1ce54d9dabc98888272'/>
<id>b5d884922053962c955df1ce54d9dabc98888272</id>
<content type='text'>
This reverts commit dfac2e9eb3d697e56d91151584f1d3cf9d2c79c9.

It does not work if cwd is different from builddir...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit dfac2e9eb3d697e56d91151584f1d3cf9d2c79c9.

It does not work if cwd is different from builddir...
</pre>
</div>
</content>
</entry>
</feed>
