<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/io.c, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[DOC] Remove outdated documentation about command injection</title>
<updated>2025-12-26T12:23:56+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-12-26T08:14:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=35c140f92be2c0676c6433e037996926aa935982'/>
<id>35c140f92be2c0676c6433e037996926aa935982</id>
<content type='text'>
[Feature #19630]

This dangerous behavior was removed in 4.0 (996cae65f3cc8fed60c6bb758b00882cac49389d)
but the documentation wasn't updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Feature #19630]

This dangerous behavior was removed in 4.0 (996cae65f3cc8fed60c6bb758b00882cac49389d)
but the documentation wasn't updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>remove obsolete workaround</title>
<updated>2025-12-20T05:54:45+00:00</updated>
<author>
<name>YO4</name>
<email>ysno@ac.auone-net.jp</email>
</author>
<published>2025-12-18T16:06:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=43b67356bcd636d92ec17bc48c1a492677a5b615'/>
<id>43b67356bcd636d92ec17bc48c1a492677a5b615</id>
<content type='text'>
This appears to be a workaround for Windows XP behavior. It is unnecessary now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This appears to be a workaround for Windows XP behavior. It is unnecessary now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fiber scheduler: invoke `#io_write` hook on IO flush (#15609)</title>
<updated>2025-12-19T10:58:26+00:00</updated>
<author>
<name>Sharon Rosner</name>
<email>sharon@noteflakes.com</email>
</author>
<published>2025-12-19T10:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9ee2243bede65fba8b7fbce54a232b8c063a5616'/>
<id>9ee2243bede65fba8b7fbce54a232b8c063a5616</id>
<content type='text'>
Previously, calling IO#flush or closing an IO with unflushed buffered
writes would just invoke `#blocking_operation_wait` and flush the write
buffer using a `write` syscall. This change adds flushing through the
fiber scheduler by invoking the `#io_write` hook.

* Prefer IO::Buffer#write in IOScheduler

* Use Dir.tmpdir for test file

* Correctly handle errors in io_flush_buffer_fiber_scheduler</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, calling IO#flush or closing an IO with unflushed buffered
writes would just invoke `#blocking_operation_wait` and flush the write
buffer using a `write` syscall. This change adds flushing through the
fiber scheduler by invoking the `#io_write` hook.

* Prefer IO::Buffer#write in IOScheduler

* Use Dir.tmpdir for test file

* Correctly handle errors in io_flush_buffer_fiber_scheduler</pre>
</div>
</content>
</entry>
<entry>
<title>Fewer calls to `GET_EC()` and `GET_THREAD()` (#15506)</title>
<updated>2025-12-12T19:47:43+00:00</updated>
<author>
<name>Luke Gruber</name>
<email>luke.gruber@shopify.com</email>
</author>
<published>2025-12-12T19:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3add3db797c4216423fdaa4bef6e2ee3c7630303'/>
<id>3add3db797c4216423fdaa4bef6e2ee3c7630303</id>
<content type='text'>
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:

* rb_thread_wait_for_single_fd
* rb_thread_io_wait

I didn't change the following exported internal function because it's
used in C extensions:

* rb_thread_fd_select

I added a comment to note that this function, although internal, is used
in C extensions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:

* rb_thread_wait_for_single_fd
* rb_thread_io_wait

I didn't change the following exported internal function because it's
used in C extensions:

* rb_thread_fd_select

I added a comment to note that this function, although internal, is used
in C extensions.</pre>
</div>
</content>
</entry>
<entry>
<title>Re-introduce support for `io_close` hook. (#15434)</title>
<updated>2025-12-07T11:55:13+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@shopify.com</email>
</author>
<published>2025-12-07T11:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=eafaff9443daebba1f4e1a5b2a217b993f066360'/>
<id>eafaff9443daebba1f4e1a5b2a217b993f066360</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix `io_pwrite` fiber scheduler hook. (#15428)</title>
<updated>2025-12-06T07:35:08+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@shopify.com</email>
</author>
<published>2025-12-06T07:35:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=180020e1e53b96a3080f3ac731cb32bbbdee31d5'/>
<id>180020e1e53b96a3080f3ac731cb32bbbdee31d5</id>
<content type='text'>
Fix io_pwrite fiber scheduler hook.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix io_pwrite fiber scheduler hook.</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21764] Propagate the encoding of ID to warning</title>
<updated>2025-12-04T15:27:45+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-12-04T15:27:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cf12aff0593a0aa70d957b96f03df8288c025938'/>
<id>cf12aff0593a0aa70d957b96f03df8288c025938</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reorganize page documentations (#15154)</title>
<updated>2025-11-27T20:12:24+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan001212@gmail.com</email>
</author>
<published>2025-11-27T20:12:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4cd6661e1853930c8002174c4ccd14f927fcd33b'/>
<id>4cd6661e1853930c8002174c4ccd14f927fcd33b</id>
<content type='text'>
Re-organize page docs</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Re-organize page docs</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use non blocking pipes for RUBY_CRASH_REPORT</title>
<updated>2025-11-23T15:41:41+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-11-21T22:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=190b017fc6c21ff7b61c2b5ece0294785e4a4ca2'/>
<id>190b017fc6c21ff7b61c2b5ece0294785e4a4ca2</id>
<content type='text'>
[Bug #21703]

RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux.
For example, given the following shell script dump.sh:

    #!/usr/bin/env bash
    cat &gt; /tmp/crash

And we see it fails like this:

    $ RUBY_CRASH_REPORT="|dump.sh" ruby -rfiddle -e "Fiddle::Pointer.new(1, 10)[0]"
    cat: -: Resource temporarily unavailable
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #21703]

RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux.
For example, given the following shell script dump.sh:

    #!/usr/bin/env bash
    cat &gt; /tmp/crash

And we see it fails like this:

    $ RUBY_CRASH_REPORT="|dump.sh" ruby -rfiddle -e "Fiddle::Pointer.new(1, 10)[0]"
    cat: -: Resource temporarily unavailable
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor io_each_codepoint</title>
<updated>2025-11-15T02:04:49+00:00</updated>
<author>
<name>YO4</name>
<email>ysno@ac.auone-net.jp</email>
</author>
<published>2025-11-14T16:15:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=70b49b657122da7f5cbfa2b93f198dddf2e41c30'/>
<id>70b49b657122da7f5cbfa2b93f198dddf2e41c30</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
