<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/io.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>merge revision(s) bccec7fb468ad977be75e7e4c2644b4ea845ab0c, 5f8ebcada099351acbc22db264e7cd3773c2bdc4, e13575bb7938e9e5b6a79bfca1b3793123f479da, 4adcfc8cd7a17593a6590025da2b03eebf4fd63c: [Backport #19584]</title>
<updated>2025-03-13T05:27:06+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-03-13T04:26:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f89a334b555d9f91f0bb5a7c58b3097960dd7fb8'/>
<id>f89a334b555d9f91f0bb5a7c58b3097960dd7fb8</id>
<content type='text'>
	Fix crash in rb_gc_register_address

	[Bug #19584]

	Some C extensions pass a pointer to a global variable to
	rb_gc_register_address. However, if a GC is triggered inside of
	rb_gc_register_address, then the object could get swept since it does
	not exist on the stack.

	[Bug #19584] Register global variable address before assignment

	[Bug #19584] Register global variables before assignment

	[Bug #19584] [DOC] Tweek description of `rb_gc_register_address`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix crash in rb_gc_register_address

	[Bug #19584]

	Some C extensions pass a pointer to a global variable to
	rb_gc_register_address. However, if a GC is triggered inside of
	rb_gc_register_address, then the object could get swept since it does
	not exist on the stack.

	[Bug #19584] Register global variable address before assignment

	[Bug #19584] Register global variables before assignment

	[Bug #19584] [DOC] Tweek description of `rb_gc_register_address`
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f423f6e10c0c226dfed98e7cb7a5d489191dfa35: [Backport #21131]</title>
<updated>2025-03-13T05:27:06+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-03-12T09:09:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6dd8bd0d9090d0a347b90479d441884fcaa1629a'/>
<id>6dd8bd0d9090d0a347b90479d441884fcaa1629a</id>
<content type='text'>
	Ensure IO.copy_stream buffer is an independent string

	Otherwise, changes to the buffer by the destination write method
	could result in data changing for supposedly independent strings.

	Fixes [Bug #21131]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Ensure IO.copy_stream buffer is an independent string

	Otherwise, changes to the buffer by the destination write method
	could result in data changing for supposedly independent strings.

	Fixes [Bug #21131]
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 8034e9c3d001ca3dff124ab42972684eac8af2ae: [Backport #20995]</title>
<updated>2025-01-11T06:30:06+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2025-01-11T06:30:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f150d67b7d389eb88e0cd13694d3529895d55579'/>
<id>f150d67b7d389eb88e0cd13694d3529895d55579</id>
<content type='text'>
	[Bug #20995] Protect `IO.popen` block from exiting by exception
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20995] Protect `IO.popen` block from exiting by exception
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) e90b447655dd39ad1eb645cdaae450efd605db00: [Backport #20924]</title>
<updated>2024-12-15T07:18:43+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-12-15T07:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3110d5c8abf8f710de42989fbc35870287a12f75'/>
<id>3110d5c8abf8f710de42989fbc35870287a12f75</id>
<content type='text'>
	[Bug #20924] Fix reading with delimiter in wide character encodings
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20924] Fix reading with delimiter in wide character encodings
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "merge revision(s) 5e0c17145131e073814c7e5b15227d0b4e73cabe: [Backport #20169]"</title>
<updated>2024-07-15T02:55:41+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-07-15T02:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0cb1e753cadb4cd1706ecf334e007bb246438577'/>
<id>0cb1e753cadb4cd1706ecf334e007bb246438577</id>
<content type='text'>
This reverts commit 6b73406833dd22e489114fa77c1c80c4b7af2ed0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 6b73406833dd22e489114fa77c1c80c4b7af2ed0.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 5e0c17145131e073814c7e5b15227d0b4e73cabe: [Backport #20169]</title>
<updated>2024-07-14T23:50:38+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-07-14T23:46:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6b73406833dd22e489114fa77c1c80c4b7af2ed0'/>
<id>6b73406833dd22e489114fa77c1c80c4b7af2ed0</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>Adjust `else` style to be consistent in each files [ci skip]</title>
<updated>2024-05-18T11:09:56+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-02-26T04:20:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1bfdd68b69f0ea82cbf572e889a5aed2887a7945'/>
<id>1bfdd68b69f0ea82cbf572e889a5aed2887a7945</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) 2554c5d3b8738a248cedb2fea96dfab9fbe19417: [Backport #20231]</title>
<updated>2024-03-31T08:16:26+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2024-03-31T08:16:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bf6e9299ef4f10dbd23f32331c355ac875bfb5e3'/>
<id>bf6e9299ef4f10dbd23f32331c355ac875bfb5e3</id>
<content type='text'>
	Don't wait in `io_binwrite_string` if not necessary. (#9792)

	---
	 io.c | 8 +++-----
	 1 file changed, 3 insertions(+), 5 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Don't wait in `io_binwrite_string` if not necessary. (#9792)

	---
	 io.c | 8 +++-----
	 1 file changed, 3 insertions(+), 5 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 0b2613f44309bddae45562c9f3a14ed43e56959b: [Backport #19640]</title>
<updated>2023-07-22T04:03:22+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2023-07-22T04:03:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ea89527a76a84741463c304246db2dd3a5df845b'/>
<id>ea89527a76a84741463c304246db2dd3a5df845b</id>
<content type='text'>
	`rb_io_puts` should not write zero length strings. (#7806)

	---
	 io.c                  | 40 ++++++++++++++++++++++++----------------
	 test/fiber/test_io.rb | 28 ++++++++++++++++++++++++++++
	 2 files changed, 52 insertions(+), 16 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	`rb_io_puts` should not write zero length strings. (#7806)

	---
	 io.c                  | 40 ++++++++++++++++++++++++----------------
	 test/fiber/test_io.rb | 28 ++++++++++++++++++++++++++++
	 2 files changed, 52 insertions(+), 16 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>Docs: path: option for IO.new</title>
<updated>2022-12-23T16:09:49+00:00</updated>
<author>
<name>zverok</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2022-12-21T20:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d61a4cec618b8f5554398fff2ee4656763aeec4e'/>
<id>d61a4cec618b8f5554398fff2ee4656763aeec4e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
