<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext, branch ruby_3_1</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Revert "[ruby/openssl] Use EVP_Digest{Sign,Verify} when available"</title>
<updated>2024-05-24T07:59:42+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-05-24T07:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7da01370d51e3a2e5c2c6092b2cc0da793176843'/>
<id>7da01370d51e3a2e5c2c6092b2cc0da793176843</id>
<content type='text'>
This reverts commit 63f40a5be59ac898e87528630568b7890ffcf5fb.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 63f40a5be59ac898e87528630568b7890ffcf5fb.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[ruby/openssl] Enable HKDF support for LibreSSL 3.6 and later"</title>
<updated>2024-05-24T07:59:42+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-05-24T07:22:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dc969b3a9c8bc1c860ecfd9306b3a5872e36579a'/>
<id>dc969b3a9c8bc1c860ecfd9306b3a5872e36579a</id>
<content type='text'>
This reverts commit b6da54c7219197eacdbfdca53739686f0bb2d06a.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit b6da54c7219197eacdbfdca53739686f0bb2d06a.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/openssl] Enable HKDF support for LibreSSL 3.6 and later</title>
<updated>2024-05-24T04:02:00+00:00</updated>
<author>
<name>Theo Buehler</name>
<email>tb@openbsd.org</email>
</author>
<published>2022-11-23T16:09:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b6da54c7219197eacdbfdca53739686f0bb2d06a'/>
<id>b6da54c7219197eacdbfdca53739686f0bb2d06a</id>
<content type='text'>
LibreSSL 3.6 added support for HKDF in EVP. Enable this in ossl_kdf.c.

https://github.com/ruby/openssl/commit/9bdd39a7e2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LibreSSL 3.6 added support for HKDF in EVP. Enable this in ossl_kdf.c.

https://github.com/ruby/openssl/commit/9bdd39a7e2
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/openssl] Use EVP_Digest{Sign,Verify} when available</title>
<updated>2024-05-24T04:02:00+00:00</updated>
<author>
<name>Theo Buehler</name>
<email>tb@openbsd.org</email>
</author>
<published>2022-11-10T13:50:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=63f40a5be59ac898e87528630568b7890ffcf5fb'/>
<id>63f40a5be59ac898e87528630568b7890ffcf5fb</id>
<content type='text'>
LibreSSL 3.4 added EVP_DigestSign() and EVP_DigestVerify(). Use them
when available to prepare for the addition of Ed25519 support in
LibreSSL 3.7.

https://github.com/ruby/openssl/commit/475b2bf766
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LibreSSL 3.4 added EVP_DigestSign() and EVP_DigestVerify(). Use them
when available to prepare for the addition of Ed25519 support in
LibreSSL 3.7.

https://github.com/ruby/openssl/commit/475b2bf766
</pre>
</div>
</content>
</entry>
<entry>
<title>LibreSSL 3.5 and later provide and need to use PEM_write_bio_PrivateKey_traditional()</title>
<updated>2024-05-24T04:02:00+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-05-24T03:05:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5f641517689719fb9cf1aa76d2834644ad639010'/>
<id>5f641517689719fb9cf1aa76d2834644ad639010</id>
<content type='text'>
Co-authored-by: "Jeremy Evans" &lt;code@jeremyevans.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: "Jeremy Evans" &lt;code@jeremyevans.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) ae8990aef098410ecc2b5f48fea9d7d171a3c5f6:</title>
<updated>2024-05-23T05:12:53+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-05-23T04:26:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0a671907355d806f1701ab5f677e1582f834a925'/>
<id>0a671907355d806f1701ab5f677e1582f834a925</id>
<content type='text'>
	Alias init functions

	The extension library has each initialization function named "Init_" +
	basename. If multiple extensions have the same base name (such as
	cgi/escape and erb/escape), the same function will be registered for
	both names.

	To fix this conflict, rename the initialization functions under sub
	directories using using parent names, when statically linking.
	---
	 ext/extmk.rb            | 16 +++++++++++++++-
	 template/extinit.c.tmpl |  2 +-
	 2 files changed, 16 insertions(+), 2 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Alias init functions

	The extension library has each initialization function named "Init_" +
	basename. If multiple extensions have the same base name (such as
	cgi/escape and erb/escape), the same function will be registered for
	both names.

	To fix this conflict, rename the initialization functions under sub
	directories using using parent names, when statically linking.
	---
	 ext/extmk.rb            | 16 +++++++++++++++-
	 template/extinit.c.tmpl |  2 +-
	 2 files changed, 16 insertions(+), 2 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) a4ad6bd9aac564e93219284c912b26a72f9e82fc:</title>
<updated>2024-05-23T01:57:56+00:00</updated>
<author>
<name>Sutou Kouhei</name>
<email>kou@clear-code.com</email>
</author>
<published>2022-09-14T22:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=80b11b216d5ca9338b2384c0215bc652e826412d'/>
<id>80b11b216d5ca9338b2384c0215bc652e826412d</id>
<content type='text'>
	[ruby/fiddle] closure: free resources when an exception is raised in
	 Closure.new

	GitHub: GH-102

	https://github.com/ruby/fiddle/commit/81a8a56239
	---
	 ext/fiddle/closure.c | 56 ++++++++++++++++++++++++++++++++++++++++------------
	 1 file changed, 43 insertions(+), 13 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/fiddle] closure: free resources when an exception is raised in
	 Closure.new

	GitHub: GH-102

	https://github.com/ruby/fiddle/commit/81a8a56239
	---
	 ext/fiddle/closure.c | 56 ++++++++++++++++++++++++++++++++++++++++------------
	 1 file changed, 43 insertions(+), 13 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge StringIO 3.0.1.2</title>
<updated>2024-04-23T07:04:41+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-03-21T06:56:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=26ec606bcd2de68b457a9b36852b764a71083b25'/>
<id>26ec606bcd2de68b457a9b36852b764a71083b25</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) ada9f8a9f78b3ccd8a5187775d06f45eb9f636f5: [Backport #18914]</title>
<updated>2023-10-10T11:52:53+00:00</updated>
<author>
<name>U.Nakamura</name>
<email>usa@ruby-lang.org</email>
</author>
<published>2023-10-10T11:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=84f2aabd272a54e79979795d2d405090704a1d07'/>
<id>84f2aabd272a54e79979795d2d405090704a1d07</id>
<content type='text'>
	[ruby/fiddle] closure: follow variable name change

	GitHub: GH-102

	https://github.com/ruby/fiddle/commit/2530496602
	---
	 ext/fiddle/closure.c | 2 +-
	 1 file changed, 1 insertion(+), 1 deletion(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/fiddle] closure: follow variable name change

	GitHub: GH-102

	https://github.com/ruby/fiddle/commit/2530496602
	---
	 ext/fiddle/closure.c | 2 +-
	 1 file changed, 1 insertion(+), 1 deletion(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>Backport cvar clone bug fix for 19379 to 3.1 (#7889)</title>
<updated>2023-07-25T11:05:27+00:00</updated>
<author>
<name>Eileen M. Uchitelle</name>
<email>eileencodes@users.noreply.github.com</email>
</author>
<published>2023-07-25T11:05:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cba152ff1f69fad98f4c67747dcf763407cd1883'/>
<id>cba152ff1f69fad98f4c67747dcf763407cd1883</id>
<content type='text'>
* Copy cvar table on clone

When a class with a class variable is cloned we need to also copy the
cvar cache table from the original table to the clone. I found this bug
while working on fixing [Bug #19379]. While this does not fix that bug
directly it is still a required change to fix another bug revealed by
the fix in https://github.com/ruby/ruby/pull/7265

This needs to be backported to 3.2.x and 3.1.x.

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

* Fix cvar caching when class is cloned

The class variable cache that was added in
https://github.com/ruby/ruby/pull/4544 changed the behavior of class
variables on cloned classes. As reported when a class is cloned AND a
class variable was set, and the class variable was read from the
original class, reading a class variable from the cloned class would
return the value from the original class.

This was happening because the IC (inline cache) is stored on the ISEQ
which is shared between the original and cloned class, therefore they
share the cache too.

To fix this we are now storing the `cref` in the cache so that we can
check if it's equal to the current `cref`. If it's different we don't
want to read from the cache. If it's the same we do. Cloned classes
don't share the same cref with their original class.

This will need to be backported to 3.1 in addition to 3.2 since the bug
exists in both versions.

We also added a marking function which was missing.

Fixes [Bug #19379]

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

* Add missing write barrier

We were missing the write barrier for class_value to cref. This should
fix the segv we were seeing in http://ci.rvm.jp/logfiles/brlog.trunk-gc-asserts.20230601-165052

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

---------

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Copy cvar table on clone

When a class with a class variable is cloned we need to also copy the
cvar cache table from the original table to the clone. I found this bug
while working on fixing [Bug #19379]. While this does not fix that bug
directly it is still a required change to fix another bug revealed by
the fix in https://github.com/ruby/ruby/pull/7265

This needs to be backported to 3.2.x and 3.1.x.

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

* Fix cvar caching when class is cloned

The class variable cache that was added in
https://github.com/ruby/ruby/pull/4544 changed the behavior of class
variables on cloned classes. As reported when a class is cloned AND a
class variable was set, and the class variable was read from the
original class, reading a class variable from the cloned class would
return the value from the original class.

This was happening because the IC (inline cache) is stored on the ISEQ
which is shared between the original and cloned class, therefore they
share the cache too.

To fix this we are now storing the `cref` in the cache so that we can
check if it's equal to the current `cref`. If it's different we don't
want to read from the cache. If it's the same we do. Cloned classes
don't share the same cref with their original class.

This will need to be backported to 3.1 in addition to 3.2 since the bug
exists in both versions.

We also added a marking function which was missing.

Fixes [Bug #19379]

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

* Add missing write barrier

We were missing the write barrier for class_value to cref. This should
fix the segv we were seeing in http://ci.rvm.jp/logfiles/brlog.trunk-gc-asserts.20230601-165052

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;

---------

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</pre>
</div>
</content>
</entry>
</feed>
