<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/include/ruby/internal/abi.h, 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>merge revision(s) 6f3aff3961a4c5ce87e05096a1a9dcf1055b7647: [Backport #19289]</title>
<updated>2023-01-25T04:26:25+00:00</updated>
<author>
<name>NARUSE, Yui</name>
<email>naruse@airemix.jp</email>
</author>
<published>2023-01-25T04:26:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4110137fcfd805de03a8f5569c3d6926959b9363'/>
<id>4110137fcfd805de03a8f5569c3d6926959b9363</id>
<content type='text'>
	[Bug #19289] Retain `ruby_abi_version` function

	A few extension libraries, to hide all symbols except for necessary to
	load, hardcode the symbols to be exported in symbol list files for
	linker without even checking by `have_func`.  As a workaround for such
	libraries, retain `ruby_abi_version` symbol always even in released
	versions for now.
	---
	 include/ruby/internal/abi.h | 7 +++++--
	 1 file changed, 5 insertions(+), 2 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #19289] Retain `ruby_abi_version` function

	A few extension libraries, to hide all symbols except for necessary to
	load, hardcode the symbols to be exported in symbol list files for
	linker without even checking by `have_func`.  As a workaround for such
	libraries, retain `ruby_abi_version` symbol always even in released
	versions for now.
	---
	 include/ruby/internal/abi.h | 7 +++++--
	 1 file changed, 5 insertions(+), 2 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>Move "special consts" so `Qundef` and `Qnil` differ just 1 bit</title>
<updated>2022-10-20T13:05:27+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-10-20T01:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f55212bce939f736559709a8cd16c409772389c8'/>
<id>f55212bce939f736559709a8cd16c409772389c8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop defining `RUBY_ABI_VERSION` if released versions</title>
<updated>2022-08-12T06:57:25+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-07-12T07:44:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cd1a0b3caaa5446e9258c192cf483b6dfe8d7819'/>
<id>cd1a0b3caaa5446e9258c192cf483b6dfe8d7819</id>
<content type='text'>
As commented in include/ruby/internal/abi.h, since teeny versions of
Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role
in released versions of Ruby.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As commented in include/ruby/internal/abi.h, since teeny versions of
Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role
in released versions of Ruby.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement Objects on VWA</title>
<updated>2022-07-15T13:21:07+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-07-11T14:09:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7424ea184f9d67c1c7f3ee97494ed3bd1aa60833'/>
<id>7424ea184f9d67c1c7f3ee97494ed3bd1aa60833</id>
<content type='text'>
This commit implements Objects on Variable Width Allocation. This allows
Objects with more ivars to be embedded (i.e. contents directly follow the
object header) which improves performance through better cache locality.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements Objects on Variable Width Allocation. This allows
Objects with more ivars to be embedded (i.e. contents directly follow the
object header) which improves performance through better cache locality.
</pre>
</div>
</content>
</entry>
<entry>
<title>Undefine RUBY_DLN_CHECK_ABI on cygwin</title>
<updated>2022-05-19T08:15:30+00:00</updated>
<author>
<name>Daisuke Fujimura (fd0)</name>
<email>booleanlabel@gmail.com</email>
</author>
<published>2022-04-16T03:41:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3d6fd162a469f9bfa4afc696ef8b8d8536a38507'/>
<id>3d6fd162a469f9bfa4afc696ef8b8d8536a38507</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Feature #18634] Implement Arrays on Variable Width Allocation</title>
<updated>2022-03-22T13:42:39+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-03-15T13:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a51f30c6712798fc07e57f692d0d0e5ccc59acf1'/>
<id>a51f30c6712798fc07e57f692d0d0e5ccc59acf1</id>
<content type='text'>
This commit implements arrays on Variable Width Allocation. This allows
longer arrays to be embedded (i.e. contents directly follow the object
header) which improves performance through better cache locality.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements arrays on Variable Width Allocation. This allows
longer arrays to be embedded (i.e. contents directly follow the object
header) which improves performance through better cache locality.
</pre>
</div>
</content>
</entry>
<entry>
<title>Wrap ruby_abi_version in `extern "C"` for C++</title>
<updated>2022-03-01T18:38:48+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-03-01T18:38:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=128972189284f4338722e8a910d0b4f6e7a02b31'/>
<id>128972189284f4338722e8a910d0b4f6e7a02b31</id>
<content type='text'>
Make ruby_abi_version have C linkage so that the symbol can be found
in the shared object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make ruby_abi_version have C linkage so that the symbol can be found
in the shared object.
</pre>
</div>
</content>
</entry>
<entry>
<title>Only define RUBY_DLN_CHECK_ABI when supported</title>
<updated>2022-03-01T14:44:39+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-03-01T14:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=25ad9eabc7e49de61b1c0504c14c5af46bf446ed'/>
<id>25ad9eabc7e49de61b1c0504c14c5af46bf446ed</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Feature #18249] Implement ABI checking</title>
<updated>2022-02-22T14:55:21+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-02-18T15:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3df16924b45adfd88c20ef5fe25b10a1acb82dd7'/>
<id>3df16924b45adfd88c20ef5fe25b10a1acb82dd7</id>
<content type='text'>
Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which
is the ABI version. This value should be bumped whenever an ABI
incompatible change is introduced.

When loading dynamic libraries, Ruby will compare its own
`ruby_abi_version` and the `ruby_abi_version` of the loaded library. If
these two values don't match it will raise a `LoadError`. This feature
can also be turned off by setting the environment variable
`RUBY_RUBY_ABI_CHECK=0`.

This feature will prevent cases where previously installed native gems
fail in unexpected ways due to incompatibility of changes in header
files. This will force the developer to recompile their gems to use the
same header files as the built Ruby.

In Ruby, the ABI version is exposed through
`RbConfig::CONFIG["ruby_abi_version"]`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which
is the ABI version. This value should be bumped whenever an ABI
incompatible change is introduced.

When loading dynamic libraries, Ruby will compare its own
`ruby_abi_version` and the `ruby_abi_version` of the loaded library. If
these two values don't match it will raise a `LoadError`. This feature
can also be turned off by setting the environment variable
`RUBY_RUBY_ABI_CHECK=0`.

This feature will prevent cases where previously installed native gems
fail in unexpected ways due to incompatibility of changes in header
files. This will force the developer to recompile their gems to use the
same header files as the built Ruby.

In Ruby, the ABI version is exposed through
`RbConfig::CONFIG["ruby_abi_version"]`.
</pre>
</div>
</content>
</entry>
</feed>
