<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/encoding.c, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Cache filesystem_encindex</title>
<updated>2025-12-12T22:03:37+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-12-11T23:56:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=176e384bcffd9d3de5ca4b9e56781b3c2b7bdfdd'/>
<id>176e384bcffd9d3de5ca4b9e56781b3c2b7bdfdd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Store Encoding#name as an attribute</title>
<updated>2025-12-12T21:53:06+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-12-10T18:20:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e7a38b32e0516e6b7d74f6cd55480cb453486691'/>
<id>e7a38b32e0516e6b7d74f6cd55480cb453486691</id>
<content type='text'>
When debugging the fstring table, I found "UTF-8" to be the most common
interned strings in many benchmarks.

We have a fixed, limited number of these strings, so we might as well permanently
cache their fstrings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When debugging the fstring table, I found "UTF-8" to be the most common
interned strings in many benchmarks.

We have a fixed, limited number of these strings, so we might as well permanently
cache their fstrings.
</pre>
</div>
</content>
</entry>
<entry>
<title>Always treat encoding as TYPEDDATA</title>
<updated>2025-12-10T17:49:18+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-12-08T23:54:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=41ee65899a7a6c6abca9701957bc84f598d2491a'/>
<id>41ee65899a7a6c6abca9701957bc84f598d2491a</id>
<content type='text'>
Encodings are RTypedData, not the deprecated RData. Although the
structures are compatible we should use the correct API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Encodings are RTypedData, not the deprecated RData. Although the
structures are compatible we should use the correct API.
</pre>
</div>
</content>
</entry>
<entry>
<title>use `SET_SHAREABLE`</title>
<updated>2025-10-23T04:08:26+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2025-09-24T20:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bc00c4468e0054ca896d2b83d3020180915f64cf'/>
<id>bc00c4468e0054ca896d2b83d3020180915f64cf</id>
<content type='text'>
to adopt strict shareable rule.

* (basically) shareable objects only refer shareable objects
* (exception) shareable objects can refere unshareable objects
  but should not leak reference to unshareable objects to Ruby world
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to adopt strict shareable rule.

* (basically) shareable objects only refer shareable objects
* (exception) shareable objects can refere unshareable objects
  but should not leak reference to unshareable objects to Ruby world
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify enc_autoload_body</title>
<updated>2025-09-19T22:35:15+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-19T05:02:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=02d5b8443a0f77bf498d29c0121e035f4deeaa27'/>
<id>02d5b8443a0f77bf498d29c0121e035f4deeaa27</id>
<content type='text'>
Previously we were looping over the enc_table, but when I added an
assertion the only thing that loop was doing is the equivalent of
ENC_TO_ENCINDEX(base). However we don't even need the index of base.

Instead we should be able to just use the badirectly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we were looping over the enc_table, but when I added an
assertion the only thing that loop was doing is the equivalent of
ENC_TO_ENCINDEX(base). However we don't even need the index of base.

Instead we should be able to just use the badirectly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract enc_load_from_base from enc_register_at</title>
<updated>2025-09-19T22:35:15+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-18T23:31:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f048f77c4a0bf9cb604e2f3291dda71978ed8313'/>
<id>f048f77c4a0bf9cb604e2f3291dda71978ed8313</id>
<content type='text'>
Previously we would sometimes call enc_register_at several times in
order to update the encoding values after the base encoding may have
been loaded.

This updates enc_register_at to only be used via enc_register, when an
actual new encoding at a new index is being registered.

Other callers (which in all cases found the index by the name matching)
now call enc_load_from_base which is only responsibly for loading the
encoding from the base values.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we would sometimes call enc_register_at several times in
order to update the encoding values after the base encoding may have
been loaded.

This updates enc_register_at to only be used via enc_register, when an
actual new encoding at a new index is being registered.

Other callers (which in all cases found the index by the name matching)
now call enc_load_from_base which is only responsibly for loading the
encoding from the base values.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mark list as frozen and shareable</title>
<updated>2025-09-19T22:35:15+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-19T00:20:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7c51ce5ff625c1295d48ff041b22cb4a9d75c9aa'/>
<id>7c51ce5ff625c1295d48ff041b22cb4a9d75c9aa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid racing ruby_encoding_index with base index</title>
<updated>2025-09-17T23:24:22+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-17T18:33:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0bb6a8bea49fed8ccef0a70aca5f2ea05af94292'/>
<id>0bb6a8bea49fed8ccef0a70aca5f2ea05af94292</id>
<content type='text'>
Previously when we copied base_encoding on top of the encoding, other
threads could briefly see the name and ruby_encoding_index of the base
encoding.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously when we copied base_encoding on top of the encoding, other
threads could briefly see the name and ruby_encoding_index of the base
encoding.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid duplicate autoloading of encodings</title>
<updated>2025-09-17T23:24:22+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-17T05:41:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=71fa9809a3c57a4c76b87414dbd6ee73c34c347b'/>
<id>71fa9809a3c57a4c76b87414dbd6ee73c34c347b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixes to encoding/transcoding for ractors.</title>
<updated>2025-08-22T17:49:44+00:00</updated>
<author>
<name>Luke Gruber</name>
<email>luke.gruber@shopify.com</email>
</author>
<published>2025-08-14T23:21:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9db54a1a98956ea37a04d6e3f83fcd6745ed96a6'/>
<id>9db54a1a98956ea37a04d6e3f83fcd6745ed96a6</id>
<content type='text'>
Not all ractor-related encoding issues were fixed by 1afc07e815051e2f73493f055f2130cb642ba12a.
I found more by running my test-all branch with 3 ractors for each test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not all ractor-related encoding issues were fixed by 1afc07e815051e2f73493f055f2130cb642ba12a.
I found more by running my test-all branch with 3 ractors for each test.
</pre>
</div>
</content>
</entry>
</feed>
