<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/internal/string.h, 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>merge revision(s) 5e0c17145131e073814c7e5b15227d0b4e73cabe: [Backport #20169]</title>
<updated>2024-05-28T21:22:45+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2024-05-28T21:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b77b5c191513f5f281e72a51e6b2de29e2d2d7a6'/>
<id>b77b5c191513f5f281e72a51e6b2de29e2d2d7a6</id>
<content type='text'>
	Make io_fwrite safe for compaction

	[Bug #20169]

	Embedded strings are not safe for system calls without the GVL because
	compaction can cause pages to be locked causing the operation to fail
	with EFAULT. This commit changes io_fwrite to use rb_str_tmp_frozen_no_embed_acquire,
	which guarantees that the return string is not embedded.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Make io_fwrite safe for compaction

	[Bug #20169]

	Embedded strings are not safe for system calls without the GVL because
	compaction can cause pages to be locked causing the operation to fail
	with EFAULT. This commit changes io_fwrite to use rb_str_tmp_frozen_no_embed_acquire,
	which guarantees that the return string is not embedded.
</pre>
</div>
</content>
</entry>
<entry>
<title>Pin embedded shared strings</title>
<updated>2023-12-01T20:04:31+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2023-11-30T19:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=80ea7fbad871b2222b16af1bd9f39e1f1828bbd4'/>
<id>80ea7fbad871b2222b16af1bd9f39e1f1828bbd4</id>
<content type='text'>
Embedded shared strings cannot be moved because strings point into the
slot of the shared string. There may be code using the RSTRING_PTR on
the stack, which would pin the string but not pin the shared string,
causing it to move.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Embedded shared strings cannot be moved because strings point into the
slot of the shared string. There may be code using the RSTRING_PTR on
the stack, which would pin the string but not pin the shared string,
causing it to move.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use end of char boundary in start_with?</title>
<updated>2023-09-01T23:23:28+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2023-08-31T22:12:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d89b15cdce8a2fa36fc2a150551f0dd8e58814d7'/>
<id>d89b15cdce8a2fa36fc2a150551f0dd8e58814d7</id>
<content type='text'>
Previously we used the next character following the found prefix to
determine if the match ended on a broken character.

This had caused surprising behaviour when a valid character was followed
by a UTF-8 continuation byte.

This commit changes the behaviour to instead look for the end of the
last character in the prefix.

[Bug #19784]

Co-authored-by: ywenc &lt;ywenc@github.com&gt;
Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we used the next character following the found prefix to
determine if the match ended on a broken character.

This had caused surprising behaviour when a valid character was followed
by a UTF-8 continuation byte.

This commit changes the behaviour to instead look for the end of the
last character in the prefix.

[Bug #19784]

Co-authored-by: ywenc &lt;ywenc@github.com&gt;
Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce `at_char_boundary` function</title>
<updated>2023-08-25T23:58:02+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-08-24T09:32:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=00ac3a64ba57ecd8f10bf54f03297cdec0c538d6'/>
<id>00ac3a64ba57ecd8f10bf54f03297cdec0c538d6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop exporting symbols for MJIT</title>
<updated>2023-03-07T05:59:23+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2023-03-07T05:34:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=233ddfac541749a0da80ea27913dc1ef4ea700bb'/>
<id>233ddfac541749a0da80ea27913dc1ef4ea700bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use shared flags of the type</title>
<updated>2022-11-02T15:03:21+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2022-11-02T15:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4a8cd9e8bca2be1c14310cc13366ec9177a1f74d'/>
<id>4a8cd9e8bca2be1c14310cc13366ec9177a1f74d</id>
<content type='text'>
The ELTS_SHARED flag is generic, so we should prefer to use the flags
specific of the type (STR_SHARED for strings and RARRAY_SHARED_FLAG
for arrays).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ELTS_SHARED flag is generic, so we should prefer to use the flags
specific of the type (STR_SHARED for strings and RARRAY_SHARED_FLAG
for arrays).
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Revert "error.c: Let Exception#inspect inspect its message""</title>
<updated>2022-09-23T07:40:59+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2022-09-23T07:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a78c733cc32cc3da3796cbf65da21cdd40c63230'/>
<id>a78c733cc32cc3da3796cbf65da21cdd40c63230</id>
<content type='text'>
This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce.

[Bug #18170]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce.

[Bug #18170]
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit char</title>
<updated>2022-08-31T08:27:59+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-08-30T09:12:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=576bdec03f0d58847690a0607c788ada433ce60f'/>
<id>576bdec03f0d58847690a0607c788ada433ce60f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move String RVALUES between pools</title>
<updated>2022-06-13T17:11:27+00:00</updated>
<author>
<name>Matt Valentine-House</name>
<email>matt@eightbitraptor.com</email>
</author>
<published>2022-04-06T08:55:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=56cc3e99b6b9ec004255280337f6b8353f5e5b06'/>
<id>56cc3e99b6b9ec004255280337f6b8353f5e5b06</id>
<content type='text'>
And re-embed any strings that can now fit inside the slot they've been
moved to
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And re-embed any strings that can now fit inside the slot they've been
moved to
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "error.c: Let Exception#inspect inspect its message"</title>
<updated>2022-06-07T02:52:44+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2022-06-07T02:50:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b9f030954a8a1572032f3548b39c5b8ac35792ce'/>
<id>b9f030954a8a1572032f3548b39c5b8ac35792ce</id>
<content type='text'>
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741.
</pre>
</div>
</content>
</entry>
</feed>
