Samuel Williams

Hash Date Message
a6a4e86029f16415767b579e62691f09b1fb6075 2019-06-05 Ignore `/build*`.
3fd83cb6fcc483d2eac0795bc139c521a3a59bd2 2019-06-05 Improve benchmarks and tests for threads.
69195fd9b26d4585ad0d13d45ce9fd7b7ebac154 2019-06-19 Show thread and fiber limits as part of bootstrap tests.
b24603adff8ec1e93e71358b93b3e30c99ba29d5 2019-06-04 Move vm stack init into thread.
7c7a1c221281cdba1f48d5e42ee2f9af306d27f8 2019-06-05 Fix handling of vm_stack_size and avoid trying to deallocate it.
38791145ebc6890b97ea55ee490084c63b67f3cc 2019-06-05 Better handling of root fiber.
4b3b781c66c48604a013557172540effd929f96a 2019-06-05 Ensure execution context is cleared after thread is finished.
b8e4bea7806f481efab42f8d88ecba783c709042 2019-06-05 Track how stack was allocated for `cont_free`.
8121a523c3ea68898016ab3984b6c0240ff66995 2019-06-05 Use stack size defaults for win32 threads.
5855af73b8d7233bcdb18b6dda5c0058cbc315bf 2019-06-05 Basic assertions for thread initialization.
9cb4e7725f668318d08cb79b1459a04eadf2f925 2019-06-05 Handle (empty) backtrace when thread is not born yet.
7cc7269b3d3e3aff518a6cd05971422351253957 2019-06-05 Use default stack size for worker thread (no th pointer available).
561c9bcf3a1ce33e51c2c03e88aa3103d42f5af9 2019-06-05 Make sure `alloca` fast path is used (inline assembler).
dee0cfbb4757ca954853de48814367c51f255933 2019-06-06 Specify that size is non-committed memory.
714703805370767efb859078d5095a014417a692 2019-06-19 Update `stack_start` and `stack_maxsize` according to stack direction.
cb5da39f20a17bd73e791dca1e7e1832f0adbc53 2019-06-19 Use shared implementation of `rb_ec_initialize_vm_stack`.
3e5b885cd271e42ba4cb39dc8e612714f88ec889 2019-06-19 Rework debug conditional.
d17344cfc56edc4599252041b3ec0d46af0851fd 2019-06-19 Remove IA64 support.
2abe548f356756788db7f893b221938a5f775ccd 2019-06-19 Don't change vm_stack/cfp without acquiring gvl first.
91c4ef01512d1ba285ccb3c3cb03e611257790e8 2019-06-19 Don't try to dereference NULL cfp.
25049a6e818d879aecb88379753f1e215b915f93 2019-06-19 Extra assertions around thread.
626483721ae297ecb641a36b7bb39fc6d6490c82 2019-06-19 Set `cfp` to null (along with vm_stack) in `rb_fiber_close`.
6bf1285b2069ff736e283a1f8328852e3175fccc 2019-06-20 Fix typo in VM_ASSERT.
dbc2b89bc042d73e60aeb7d56686aa28d82e2622 2019-06-20 Ensure `vm_stack` is cleared after fork.
15c4f6aed29b4f9f8d2c911548ac87756239b592 2019-06-20 Skip `rb_ec_clear_vm_stack` for now.
7d9d1ed463323fe28f24d0b94212c2cb7ad109bd 2019-06-20 Don't clear cfp, it causes problems.
c26c51449461e3c8ee9bb4e1800933fb3d3caf67 2019-06-20 Revert failed attempt at fixing invalid usage of vm_stack.
e4cafa393f8fd4aa207f20b1d122884b4de99cf1 2019-06-19 Ensure that vm_stack is cleared in `thread_cleanup_func_before_exec`.
f607e433520218ac2adc93fcf32bc3b797219a60 2019-06-20 Transition root fiber into state FIBER_TERMINATED.
9e7a8a4351de0690b3d531c4be4fbb6fc8f4f813 2019-06-20 Only ignore build directories.
096a45d3d2c6ab0c40ec2d41bdb3a26cda091e6b 2019-06-23 Update NEWS.
a071bed7a5041e3d3e7029f73c3f09a9f6cdfd98 2019-06-24 Print warning if not using native coroutine.
abdbfebad11471e76e1e9756de7f9bc14bd30355 2019-06-24 Use spaces for indentation in `configure.ac`.
0e6396d2ac8bc3803742655896bb0fad70007dda 2019-06-24 Try using arm64 implementation for fibers.
518adcca0a2c611c4a94eaa778f9dcec4aff03f9 2019-06-24 Try using arm32 implementation for fibers.
dbe232e24e56cb200b8e5b78062c8a2784a792e9 2019-06-25 Order of arguments might be incorrect in arm32 coroutine implementation.
6c6bf9ffcbfeb8be9d9c342e7604b74ec819e88a 2019-06-24 Add `ucontext` coroutine implementation for generic fallback.
acb67472c7da459812aa9008cf8cfbedcdddea67 2019-06-26 Restore updated implementation of arm32 coroutine code, but prefer ucontext.
012e954b472d2e47b03647ac0c8f745416d7db58 2019-06-02 Improved fiber benchmarks. Increase number of iterations.
5c8061a9e2a34df975846d724273cb5be7d74a7c 2019-07-07 Make `stack_check` slightly easier to use in debugger.
a2adcd40df96acd1218cc60dc1810e83dbc124d8 2019-06-03 Add note about `STACK_GROW_DIR_DETECTION`.
47500f2055467d0c72c7ce53b2535d7610347fb0 2019-03-14 [ruby/logger] Add support for changing severity using bang methods.
3fdb963827fde7fbe1837763cb834842b8336fee 2019-03-20 [ruby/logger] Prefer require_relative, it's a little bit faster.
2c22051b4b54482531e43915f5edef0c3d3a053b 2019-03-21 [ruby/logger] Enable `frozen_string_literal: true` in `logger.rb`.
9b28eefeb2cea9690b897aeb3a1e1de2cbc19137 2019-07-17 Add benchmark to help diagnose performance regression.
1b82c877dfa72e8505ded149fd0e3ba956529d3f 2019-06-01 Make FIBER_USE_NATIVE the default and reformat code.
14cf95cff35612c6238790ad2f605530f69e9a44 2019-06-02 Implement fiber pool for reduced fiber allocation overhead.
8779382da44723438eb6cae23bd7267990157433 2019-06-19 Remove unused vm_stack recycling.
91aae651bf90be46773a246e4c46b9e221353fbd 2019-06-27 Stack copying implementation of coroutines.
7291fef55c90b9ab6b3c22018b16972861b98c9d 2019-06-29 Improve build process and coroutine implementation selection.
b8242bce2301e33d3ba1fae95b68a291cc3004b5 2019-06-29 Add `ucontext` and `copy` coroutine implementations to test matrix.
47c0cab248ca09deb9508ff29edfd1dfc11b5f31 2019-07-01 Add details of fiber pool and coroutine selection to NEWS.
77f3319071e600a2aafaa9863b892dfd3c1da343 2019-07-11 Enable `madvise` to release stack space back to OS.
8ac9a7be0fea95d9fc17cce53c0d18d70cc8d091 2019-07-12 Limit expansion of fiber pool on 32-bit platforms.
4d60a5820ae2c7bc2ce5bee441b834129a3a56e1 2019-07-16 Add FIBER_POOL_ALLOCATION_FREE to control allocation/free strategy.
385ea910fc28f0e46c72669a260e44d4f3f37d9e 2019-07-16 Add `struct fiber_pool {int free_stacks;}` to control usage of madvise.
001f187ed6539f320421d8893d2f3c8f584cc3a5 2019-07-16 Make fiber_pool more conservative on platforms with limited address space.
56fcf988495ec1b36655534f4cc2ae786e2ab8c5 2019-07-16 Add note about setting `vm.max_map_count` for Linux.
311007bf403160b978e015997ad5076a229290da 2019-07-16 Add experimental `RUBY_SHARED_FIBER_POOL_FREE_STACKS` to control madvise.
38e3c65a33aa7bcd4cee922487e259a8da699831 2019-07-18 Improve `fiber_pool_expand` allocation strategy.
9790b778a339f36f9b29517a1d762cf02a2f0293 2019-07-18 Ensure we don't have dangling cfp.
9dda0a03cc19d0ca20fc8fc220760e37cb5b9f02 2019-07-18 Remove `rb_vm_push_frame` as it is no longer used.
d7fdf45a4ae1bcb6fac30a24b025d4f20149ba0a 2019-07-18 Ensure cfp is initialized to NULL.
8ca32020b03a4f3e69c8f0b15e015eb7ad5d8e05 2019-07-18 Revert "Ensure cfp is initialized to NULL."
6eef80d824aa4aca91ff13ea215f5cd053d16906 2019-07-19 Improve ec assertions.
cf93f98a609d8a48e3b69790bc38ae9edf8aa687 2019-07-19 Better usage of `rb_ec_clear_vm_stack` to maintain invariants.
dd0e33f0839124a910f4eb0bb67423e041036645 2019-07-19 Split assertions to check which one fails.
e14f5762c532241706ad5bd8f81b520c46d97654 2019-07-19 Add assertions to `coroutine_initialize_main`.
547f574b639cd8586568ebb8570c51faf102c313 2019-07-19 In some situations, `vm_stack` can be NULL, but `cfp` is valid.
e004afd46d3bd27bda4c4922eadcf11c7e4bfc55 2019-07-19 Ensure that madvise does not clobber vacancy data.
517f7f9b578f8f48ce80dfbe5c8e61b4f8ebd1d4 2019-07-19 Fix 32-bit build and typo.
0a7093a8e9277d9f459b2c14f2eade02eed15e28 2019-07-19 Add documentation to `fiber_pool_allocate_memory`.
c584dd8460bdbb78b0e5ab47a1c15b2df2c45ded 2019-07-20 Move travis coroutine check to cron only.
9699a5c5bcb9e1483f21efdf7e5cb9bf0a6279fb 2019-09-14 Update news regarding `Fiber#raise`.
78e266da1dede1c81e634982e76a129c5720d80e 2019-11-19 Clarify documentation for `InstructionSequence#compile`.
f96216df8dfd2d1e206150572912289f4dda7386 2019-12-27 Remove "All Rights Reserved." from Copyright statement.
bf04fe086bca47184c6ab13603e064b3c0e88d8e 2019-12-27 Remove "All Rights Reserved." from Copyright statement.
844ff7ea45b79e95eaed4b725fd0cf5c33874058 2019-12-27 [ruby/uri] Simplify construction of URI instances using parser interface.
b24f7dbcfd605b41e7b510488e30832bd8a1a9ea 2020-03-26 [rubygems/rubygems] Update util.rb
0e3b0fcdba70cf96a8e0654eb8f50aacb8024bd4 2020-05-14 Thread scheduler for light weight concurrency.
6fa8455ebbf457e5d8752295a8d6380146636c0c 2020-05-15 Move `test/scheduler` -> `test/fiber` [Bug #16892][ruby-core:98366].
4bff8e84232594ecb9914e2a8437b7c40a63b799 2020-06-04 Ensure that the head of the vacancy list is correctly inserted into the linked list.
238464863a039b1d36f009d4447fab42f1a855bf 2020-07-15 Remove fiber HTTP test.
a3ac1bf450d2aa0c6b0b34fee417992b4352ff2c 2020-07-18 Add more timeouts to macos, mjit, ubuntu and windows workflows.
e6e9cef06e9023a80991518297d9f2c0c12488ce 2020-07-16 Improve consistency of tests.
9f6a3d030682e9f99c77c2ef31881f9801c3979e 2020-07-18 Add multi-threaded I/O test.
f3462d99a3dd8d535eda287b000cb035bade522c 2020-07-18 Rename `rb_current_thread_scheduler` to `rb_thread_scheduler_if_nonblocking`.
1b3a6847be83ed1269b6eb87016c721ca33da8e5 2020-07-20 Move declarations to private `internal/thread.h` header.
c45f5ff2b0b801a94ffe761d83a46760c3d6d33d 2020-08-17 Clarify coroutine implementation license.
0a218a97ad31f06eb7f59ccdd428fd46c4b93982 2020-08-15 Expose ec -> backtrace (internal) and use it to implement fiber backtrace.
c12b2703bc05f8c7eaaace49253f63a5e0f28273 2020-08-25 Add `RB_` prefix for size_t to number conversion.
b22b3f03f46cb3c4e3e6fb55d23ae7fccaa19359 2020-09-06 Increase timeout for GitHub Actions.
703e529751deb086a46a9c029ce38d4fff14e84c 2020-08-20 Add `rb_thread_current_scheduler()`.
6747cb575414cf781c79c263f68d7b70778efa24 2020-08-20 Add RB_ prefix to `GetOpenFile` and `MakeOpenFile`.
905e9c8093b2bb06def609975929465be0f41a0c 2020-08-20 Simplify bitmasks for IO events.
d387029f39d976565c955377117103499d47ff09 2020-08-20 Standardised scheduler interface.
132453fa521cf87693035769031f3501ddc02f4a 2020-08-20 Rename `Fiber{}` to `Fiber.schedule{}`.
701dcbb3ca9bf04b61cc07156608c61aaf9173f0 2020-08-20 Add support for hooking `IO#read`.
9e0a48c7a31ecd39be0596d0517b9d521ae75282 2020-09-05 Prefer `rb_thread_current_scheduler`.
3dc0fc11f0e21087c96781cce2360f5f6a26c7c6 2020-09-05 Update dependencies
1a0cfe28390ce5d46f7b854eaad2b9b979c160de 2020-09-06 Improve handling of urgent notification pipe.
0f613cc5f1bbe319ab916be905de263523ef5402 2020-09-11 Add support for ConditionVariable.
8eea66a0ca8965ae8319b4c404f61c4d46866f64 2020-09-13 Add support for Queue & SizedQueue.
7fca27419846f76f978f3bbef2d2db3e1bf688e7 2020-09-14 Rework console to use `rb_io_wait`.
a9b2a96c5cfa5ab36c89ffae82e28eb733e36542 2020-09-15 Fix incorrect initialization of `rb_io_t::self`.
026ba68c1056fb6729868456fba3382f8b9a0fcf 2020-09-15 Fix handling of FMODE_PREP.
f75009c1222621836b2340bbb5f4d4274972ccb4 2020-09-16 Prefer to use `prep_io` for temporary IO instances.
501fff14c7657f769d68f90de98fd2ebccb807fb 2020-09-19 When setting current thread scheduler to nil, invoke `#close`.
70f08f1eed1df4579fef047d28fc3c807183fcfa 2020-09-20 Make `Thread#join` non-blocking.
f7aa51b2b8fe576f33d15cbcbb28723116fb0885 2020-09-21 Update NEWS & documentation relating to scheduler.
10d795cfca7ec688e0dead63568277ea37e4977b 2020-09-21 Add NEWS about `Fiber#backtrace` and `Fiber#backtrace_locations`.
388281c5c92d4c04bfb08aeac7513770de9ea128 2020-09-30 Fix order of operations during `rb_ec_finalize`.
13660105e225df0a4fc1f91b8c9618261e5761f3 2020-10-01 Don't call `Scheduler#close` if it doesn't exist.
7f2902059031ffe0dad35c9832e4be33d57c5588 2020-10-01 Raise an exception if the scheduler was already closed.
dd2e95fb26b89ce060631af0fd372b5780a443dd 2020-10-01 Remove `Thread.scheduler` from public interface.
a88fe61a3e3079fd4bd0172374dfa8bd229a90d5 2020-10-01 Rework `rb_ec_scheduler_finalize` to ensure exceptions are printed.
2db081b5ffb07a2e6bdac58122fa3466830b12a9 2020-10-01 Don't use `th->scheduler` directly because it's not always valid to do so.
a08ee8330d3d739467bfa34deeb797d83e59ed3c 2020-10-16 Rename to `Fiber#set_scheduler`.
5b3572b5aec742a2a6355f0212a84759983a6b4e 2020-11-07 Update dependencies
afe3cb782bbdb5ef38c865b1c857e6cd9083e978 2020-11-08 `Fiber.new(blocking: false)` is now the default.
f73135233b1437eb2cc6a5c8c732adca1dbd41f2 2020-11-08 Don't try to resume blocked fiber on dead thread.
c39984ec5cc6dc94eb0c0e4169e7160f71e89240 2020-11-08 Tidy up book keeping for `thread->keeping_mutexes`.
57b83dad4cd3c7d4b2a29829a1cb194c9b5ee9d1 2020-11-08 Defer `kernel_sleep` to `block` to avoid exiting the event loop when duration is nil.
bed4848661d4a0397b36f481c0c0940277cc31f8 2020-11-08 Urgent notification pipe has same lifetime as scheduler.
7b126a82a921c991f8121f62e094a62a5f0edb30 2019-07-09 Simplify `ipaddr.gemspec`.
d65621b636e1eb89696f13f4076e53d54710cb3f 2019-07-09 Specify minimum version.
15e23312f6abcbf1afc6fbbf7917a57a0637f680 2020-10-03 Rework the order of operations to avoid stack smashing.
3b5b309b7b3724849c27dc1c836b5348a8a82e23 2020-11-09 Proposed method for dealing with stack locals which have non-local lifetime.
09229c71bcdc82b2e7c3138baa4cb2696b97ec5d 2020-12-08 Fix "Ruby is not properly fortified on armv7hl".
2553c5f94a5d51c2c5876b31e4c1521ad9be12f6 2020-12-07 Add support for non-blocking `Process.wait`.
93a56a5e98875ed619fe5c29f401a8a43632dbed 2020-12-21 Update fiber scheduler documentation.
5f69a7f60467fa58c2f998daffab43e118bff36c 2021-02-09 Expose scheduler as public interface & bug fixes. (#3945)
4c53dc970bf82e4c5fb237be4b2404bcb07496d2 2021-02-11 Add hook for `Timeout.timeout`.
9b9bbaec111c34d15d75750e300d94fb5c30c8b1 2021-02-11 Update lib/timeout.rb
c05dd7dc85311d1a62204aff5f633e758efae949 2021-02-11 Prefer `rb_check_funcall`.
09c865d541472366550804ef09bf14e22a193644 2021-02-12 Fix native implementation.
511acba4aeb3e35cf025a8a6cde4241b7b5167f3 2020-12-26 Update method name and add documentation.
af1c587546c34190721bb8b72e86985e9b79bdc6 2021-02-12 Improve timeout tests.
92449e0e99ae0e44f0deec5e59a7146824872952 2021-02-12 Fix handling of timeout accessing scheduler outside of non-blocking context.
3d32c217586a48c709b762865a8abc46f9098455 2021-03-30 Disable public interface for now.
b507f65d4461757c577a9f90325967e92a895520 2021-03-30 Support for native riscv64 coroutines.
611e711085c7e3984555a79626d025c8b876eced 2021-03-30 Test incorrect behaviour of `rb_io_wait_readable/writable`.
a9c5c2d614f30a616970245fef3e7ffc151e2ecf 2021-03-30 Check errno before invoking scheduler in `rb_io_wait_readable/writable`.
836da24e97d9443ffb75abbb35ced3ce52e8242f 2021-04-09 Fix symbol export.
dc25412042dcb921c27491ef09791d03bc377d98 2021-06-03 Expose `rb_fiber_transfer` and `rb_fiber_transfer_kw`.
2792acc8f29c6ee1d04b57b7b70d43519a0ceda8 2021-06-14 Add scheduler hook `Addrinfo.getaddrinfo`. (#4375)
050a89543952a2c9e7c9bc938f4fdb538f6c9278 2021-06-14 Wake up join list within thread EC context. (#4471)
25921fe1d67e4bdd2370e1e9c26f1ed4533af73e 2021-06-14 Revert "Suppress gcc11 clobbered warning"
3deb5d7113e1fd6e4b468e09464d524d390d811e 2021-05-08 Direct io for accept, send, sendmsg, recvfrom, and related methods.
45e65f302b663b2c6ab69df06d3b6f219c1797b2 2021-06-19 Deprecate and rework old (fd) centric functions.
fcc6fd23ec779a2421154bad441e168e4c6d4194 2021-06-19 Rework `sysread` to use blocking `read_internal_locktmp`.
e01fa2f6fffe4599b10e88865992f476f9656039 2021-06-22 Add fiber scheduler news.
eef3c08edc2fc74496cdc1e4d89798d053e32561 2021-06-22 Fix NEWS formatting.
e788481843d71030bd5dfee28fd0fc22dcae2f97 2021-06-23 [ruby/reline] Avoid using blocking `IO.select`.
bf376cae0c308f738bb255d110ac7c85019515cb 2021-06-23 [ruby/reline] Fix missing require.
5e75280c8edcd0f3c8f79d0c532cbfd18074886a 2021-06-29 Add basic test for updated IO wait functions.
42130a64f02294dc8025af3a51bda518c67ab33d 2021-06-25 Replace copy coroutine with pthread implementation.
1467328edc877ada0361e89f55158d2ed1bbb075 2021-06-30 More general matrix "configure" parameter, add `--with-coroutine=pthread`.
1862d961a9b18acbf30d9391e091d91de9c0f16d 2021-07-01 Ignore dead threads in `coroutine_join`.
71146bd4a32f26b26d76b8847cdb62a8126be491 2021-07-02 Remove copy coroutine build rule.
028441d22fee121d129126c55938690be38bd3d9 2021-07-12 Avoid calling `fstat` on things we already know are valid sockets.
9df712a0e2013018bf44be71404ffc17dce21744 2021-07-13 Expose `rb_obj_is_fiber`.
6073a8bdc01c7cfae9671faa4edf85abf6e28c29 2021-07-16 Add debug assertion in `rb_funcall*` that the current thread has the gvl.
1146a94aeea7d2ea1ead3bfcbddd0f4de696abe6 2021-05-21 [ruby/openssl] Implement `Certificate.load` to load certificate chain. (https://github.com/ruby/openssl/pull/441)
3f1d8a18eac7d775e69b99f761e756f2abb60c12 2021-06-19 [ruby/openssl] Deprecate and rework old (fd) centric functions
13f8521c630a15c87398dee0763e95f59c032a94 2021-07-19 Fix potential hang when joining threads.
2d4f29e77e883c29e35417799f8001b8046cde03 2021-07-28 Fix potential hang when joining threads.
3a8cadcf8f3e1c58b2c32fcd2d5a0b48cf6dfb1f 2021-08-08 Reduce chance to receive EBADF when closing an IO from another thread.
48c43f7783bdb9aa92af61970ed85cf91342b942 2021-08-08 Rework the readline test to be more robust.
6f6a84f2f3e82f9554618f080f9b66ded52884cc 2021-08-09 Extended logging for debugging readline failures.
d19af1675c9dcf4ccef643e831d83976f1831101 2021-08-07 [ruby/zlib] Don't print out warnings when freeing.
88ba5fe547cae2370eccbe230754f59e1d5cbaf3 2021-07-14 Expose `rb_fiber_raise` and tidy up the internal implementation.
649c87bd86d08bee8cd61584e6ece34e15e6814d 2021-09-20 Add C interface spec.
4730a1e0ec24cf273d2d93866ef56f9c5ac2a516 2021-09-20 Don't describe C function that does not exist in prior versions.
cb8434563d3cc8fc5c3a5aa1e34ad7a9bb542cdb 2021-07-18 Add alternative optional hook for `scheduler_close` to allow public usage of close.
b61064b821823e016e8015f3d9eeab3cf9074ccd 2021-07-16 Add gvl and fiber assertions to scheduler interface to catch invalid usage.
7db021f83bc68420746835bb92fce9a5d5a93d9b 2020-12-05 Add support for non-blocking `Kernel.system`.
bf3e3148525b8f83be9b7374ae41b07cc73f5052 2021-09-21 Rework order of operations to better handle last_status.
9151ed2fb2fa8c0648666cdfdb56e38ec3b15815 2021-09-23 Return fstrings from `build_const_pathname`.
4b8903421828cb9d4de139180563ae8d8f04e1ab 2021-07-02 IO::Buffer for scheduler interface.
81d0ce7e97af74a2086e143f9e349ee519bd1c4d 2021-11-10 Mark IO::Buffer as experimental.
51c67ee61a57093cfd6f0e06a5aff77d479a37e1 2021-11-10 Don't allow `fd == -1` to propagate to system calls.
98b442e013afbb450f1c946d86ed625c39ab3233 2021-10-22 More immutability and locking tests.
c833ece5f78b8c2e43263e08ccbd3ce1628bf610 2021-10-22 Rework implementation of `IO::Buffer.for(string)` to use string locking.
a19a657514a384a6c36cb62a2b4eb5352fb3074e 2021-11-15 Fix 32-bit conversions in IO::Buffer implementation.
5190926e40febeeb3822b8bd7c031b06279dc3f1 2021-11-15 Validate string type when constructing IO::Buffer for string mapping.
b5c4570af4c6ae7341ee03e7fc2e140192ec32d8 2021-12-11 [ruby/reline] Prefer wait_readable for fiber scheduler.
42d32311541e58503b885b09b469948922650c66 2021-12-18 Introduce io_result wrapper for passing `[-errno, size]` in VALUE.
75b5a4808fce6e6a11ef43a12c399e4e2eb63e86 2021-12-18 Initial hacking guide.
1560cc16889e1afede66f675c89f9e3962a1e35e 2021-12-18 Introduce setup instructions for better parallelism.
78c175280befc8f0078ee037233ce1bb0af80ed6 2021-12-18 Fix code formatting.
235f523a88f0c3733adcb982b8c41fceaac4f9f6 2021-12-18 Fix spelling of DECLAIR_TYPE.
f3e30b26c509c6dd707bc07c4a73fbac2576e9e2 2021-12-18 Default size for IO::Buffer.
56811617ab4b7007aad10c794366115a671e4f29 2021-12-19 Improve IO::Buffer resize and introduce ownership transfer.
9de5c4ec761aad3edc50b38d9824b40665d18911 2021-12-19 Fix mapping invalid non-file object.
71bf5cef75b9d244a06261c9fc0b84fbe5a1592f 2021-12-19 Fix handling of frozens strings.
49166fc74a9cd0bf48baa08d32e020183ad46723 2021-12-19 Improved exception usage/classes.
71bbc40ffa4bb16ef0fc31f8015f61709fac36ce 2021-12-19 Rename `to_str` -> `get_string` and add support for encodings.
c3d8d26ad744d2a2dada135196e7d694d2966008 2021-12-19 Add tests for `IO::Buffer` `get`/`set`.
da46b8d8e5d09f896fb1af5dabea12820f02b3d6 2021-12-19 Default `IO::Buffer#get_string` to use BINARY encoding.
c86bcd434da573982ab52522a301ba5499dc13ed 2021-12-19 Mark non-private mapped files as external.
2de5dc539b299ae27ea3157ec898a6dba33b6eda 2021-12-20 Fix handling of clear with offset and without length.
9fbf94ff042f91ecde094ff579784fa52efbc7a1 2021-12-20 Improve interface for get/set/copy.
617687df097b8e9646be312c9fdf062090994a37 2021-12-20 Rename IMMUTABLE to READONLY.
711342d93565092a8348ac5538bc4b4288d384ba 2021-12-20 Update cont.c
02a9a72f436c17ce22b990af6379356b331a3039 2021-12-21 Tidy up fiber scheduler interface documentation for `address_resolve` and `timeout_after`.
e30920354f8c4513150c61385220a8e75448d833 2021-12-21 Extended interface for IO::Buffer & documentation.
d9570437e296c35c6bce691027530f4d67dd7ef3 2021-12-21 Remove incorrectly added `update.rb` file.
bed920f0731a1a89a0e5fc7a7428d21be3ffb8a0 2021-12-22 Add fiber scheduler hooks for `pread`/`pwrite`, and add support to `IO::Buffer`.
acfe2f2655ab25d52c4347783c4de99fa2daaf62 2021-12-24 Improvements to `rb_io_wait` return value handling and internal implementation. (#5340)
548c8f5f7aa743ae05610ed372f857a6b488e89c 2021-12-24 Prefer to use RTEST when checking result of `rb_io_wait`. (#5341)
f27eb8148f5a72bbacfebfecc7de9305471bb5c9 2021-12-29 Sync io-console gem.
e4cd319f3d6560b76dbc1c7e89aa4d790a2d1e43 2021-12-29 [ruby/irb] Prefer `IO#wait_readable` over `IO#select`. (https://github.com/ruby/irb/pull/323)
243320d22fcd0b9b7ee4cc5b1b420dcd63d87f5f 2022-01-01 Fix incorrect minimum read length. (#5353)
03d97cc966fe35cd571a5260c01a9f50cbe60b2a 2022-01-02 Remove UTF-8 from documentation.
0ca00e2cb74f9d07d27844d97c29c208caab95a7 2022-01-08 Move IO write buffer allocation into function.
8648457541ec016b1d9d305d9d3ea29fb93ca336 2022-01-08 Don't combine test-all and rubyspec.
fd6cef79f54bebab1a49256034687dcc01a09eab 2022-05-07 Use a proper mutex for autoloading features. (#5788)
ef525b012a709077ea2797e8642fae0b61234063 2022-05-08 Explicit handling of frozen strings in `IO::Buffer#for`. (#5892)
cea34bd8082784051542131ddf8a353f5656ac88 2022-05-09 Add basic binary operators (and, or, xor, not) to `IO::Buffer`. (#5893)
32de6097b2b5d8394b3a1399e13d309444697954 2022-05-15 Fix various autoload race conditions. (#5898)
f626998c4fa62973cac3a027597f97cdacd0d3c5 2022-05-16 Delete autoload data from global features after autoload has completed. (#5910)
60d45b2ee86a80e248c3bff0c90c981ed2168ac3 2022-05-17 Restore implicit relationship between `autoload_const` and `autoload_data` during GC. (#5911)
11af23ee923858fbcec18f2d1365296fdfe24dc2 2022-05-17 Move feature deletion from GC mark to `autoload_delete`. (#5912)
901525b1079ac02da0122a76d8e4c3546a7f80f6 2022-05-19 Add support for address sanitizer for amd64 and arm64.
42bcc629fba518215c844488223bc279006a4fa2 2022-05-21 Retain reference to blocking fibers.
9a8fc4e04cc85b640c9ca569fe680850adc877fc 2022-05-24 Tidy up redundant returns.
86602484a28fe345d9d164fe33d765d5e2791c58 2022-05-25 Ensure we retain the main fiber stack bounds.
952ff7fbb3d1d4e9f13a4124016cb805c3a06a51 2022-05-25 Fix out of bounds read.
d875445e8a8b073298e8b3db177d1a5e78c92893 2022-05-25 Fix GC race condition in autoload.
946e3bbdc293693e667ad056885a27e6955a895f 2022-05-26 Simplify the autoload require logic.
2556e15d7520913119175c8166b1f9d17eb33415 2022-05-26 Remove unnecessary ignore warnings.
bd472ef36f22de176a886cbe789480e84990b82b 2022-05-26 Show ASAN_OPTIONS in hacking guide.
ce23cfa5182bb53e8b6555fb6a5b2846cd559922 2022-01-08 Make `io_binwrite` atomic.
15ebfe28493560f8368fc9a2fe7d9b5913051b84 2022-01-08 Make `io_binwritev` atomic.
216593f59b49fc7f59ed991ae3feaa1ad233ce75 2022-01-09 Add IO write throughput/locking overhead benchmark.
c6cd9e180e01f3c0c3258fae87cd55f5e9a219d4 2022-05-09 Better handling of `error`.
ac499bb511e88faa1e9a8566c6fd4821abb17457 2022-05-09 Improve error handling in `finish_writeconv`.
4efccd28e4b257fb1c8f97781d0b5b1c42c1d9fa 2022-05-09 Improve consistency of `io_binwritev_internal` implementaiton.
1589ac6291d6bf9caa8f237c6d143dd26526b579 2022-05-09 Improve handling of zero length writes.
753d30550368e4447b75bb7d1ed3d2703554ee01 2022-05-10 Tidy up usage of write_lock.
6b0131db6f029f3e472d00deb2134d45ad4dde3a 2022-05-28 Make `Kernel#p` completely uninterruptible.
425a46131a029390cd693242e621f6632c76cc42 2022-06-13 Handle case where write result is zero.
f9c8d8088378981385f6acd18d2fe9fedcd7ab85 2022-06-25 [ruby/io-wait] Don't add `IO#wait*` methods when `RUBY_IO_WAIT_METHODS` is defined by Ruby. (https://github.com/ruby/io-wait/pull/19)
d281347abbbe7f3b588646977a21b8f929aaa5bb 2022-06-25 [ruby/io-wait] Fix usage of `assert_raises` -> `assert_raise`. (https://github.com/ruby/io-wait/pull/20)
d2166c09b08fc144123e5a7eef69b8921bfced35 2022-06-18 Copy `IO#wait*` methods from `io-wait` gem to `io.c`.
9434a7333c2a23c680a977331a60ca7c502c1ac0 2022-09-17 Enable coverage for eval.
09ea4f3a9fc13214198fa2cf223ec601640d3eac 2022-09-23 Extract common code for coverage setup.
81b919ce5c85a82d68de9ccaebd5036adef8c7fb 2022-09-23 Add news for eval coverage.
a95b741a973438a3ea666b8997efa8194e1fd5e7 2022-09-25 [ruby/bigdecimal] Remove trailing whitespace.
75cf29f60d87b298edfd75611bfe272a92289cee 2022-09-25 Rework `first_lineno` to be `int`.
22af2e9084d869b0d1eb24e4c11bc1fd62b7c50d 2022-09-25 Rework vm_core to use `int first_lineno` struct member.
85cc0ce5c8b6a369d439093453f7b87f1a154efb 2022-09-25 Use `int first_lineno` for binary format.
025b8701c09813c40339bd8fa1c75e0e5eaf7120 2022-09-26 Add several new methods for getting and setting buffer contents. (#6434)
411d0eec11f3618066a293ee72810bf48168adc8 2022-09-26 Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (#6438)
1c14e406d3c4a4c660f66f0d1c642d1ed2aabed2 2022-09-26 Fix `io/buffer.h` header guard.
9dd902b83186ad6f9d0a553da2ca114bac6ab7b5 2022-09-28 Add `eval: true/false` flag to `Coverage.setup`.
bd2fbd35888413217337dd327ad90015c0322d12 2022-09-28 Add `Coverage.supported?` to detect what modes are supported.
e7ddb6b182c35a1caf6f95fb6f4d9d53426d52f4 2022-09-28 Update NEWS.md with updated coverage interfaces.
e696ec67ac7bd14ff8436f9ee7724c17c5bf6689 2022-10-06 Introduce `Fiber.blocking{}` for bypassing the fiber scheduler. (#6498)
e4f91bbdbaa6ab3125f24967414ac5300bb244f5 2022-10-07 Add IO#timeout attribute and use it for blocking IO operations. (#5653)
a081fe76de5de0307651d99324a0e454fd8b8a8b 2022-10-07 Simplify default argument specification. (#6507)
24f3e397e957a6747a2067edd831bc7920e204ec 2022-10-07 Add spec for `Coverage.supported?` and `start(eval: true)`. (#6499)
844a9dff887f0af075c0c50020f98a45a1528d14 2022-10-08 Try `nil` as default for 'default timeout'. (#6509)
1bafa4a59b296e6ca80e32755fc84b76c3c575e5 2022-10-10 Ignore failure to set nonblock mode. (#6524)
ced1d172804b6dfe39aa31a323ffab80a25223b9 2022-10-11 Improvements to IO::Buffer implementation and documentation. (#6525)
04d291a490517eb32ea02df636fc8f1f1ed57873 2022-10-12 Simplify implementation of scheduler `io_read` and `io_write`. (#6527)
765ee822b54026e6cafa107d93475c2883e2bad8 2022-10-13 Add missing `f.resume` to fiber test. (#6539)
d4162053410782a449e0921ee7222e7ce3deca6f 2022-10-14 Copy `IO#timeout` on `IO#dup`. (#6546)
8a420670a29a7c78c7201f678eb26528621bf39f 2022-10-15 Introduce `Fiber::Scheduler#io_select` hook for non-blocking `IO.select`. (#6559)
52fcb3a72446189448e96a465d8c91c469ac0ed2 2022-10-15 Add missing `#close` call to `test_dup_timeout` test. (#6560)
7fcad1fa03c21b9a9916a12b816ec886a5b68920 2022-10-15 Update `Fiber::Scheduler` documentation. (#6562)
aecc470a3354bbf61e5cd2e65f4aeb4f3825a9be 2022-10-07 [ruby/openssl] Use default `IO#timeout` if possible.
fc3137ef54562c3c3290245c0f62e0bb193c3145 2022-10-19 Add support for anonymous shared IO buffers. (#6580)
7f175e564875b011efb43537907867dd08d659e8 2022-10-20 Avoid missed wakeup with fiber scheduler and Fiber.blocking. (#6588)
8dfe3bdf48ff73052de1262e4644c08742abd8e6 2022-10-22 Improved formatting of `hash_foreach_iter` functions. (#6615)
16953867ed8fc951364f05fdf0c9267799e3087a 2022-11-01 We don't care about actual hostname resolution. (#6652)
2bb89b7f114e4beb3012f63e12e726ae23005e6f 2022-11-04 Lower priority of `POSIX_MADV_DONTNEED`. (#6671)
ea8a7287e2b96b9c24e5e89fe863e5bfa60bfdda 2022-11-17 Add support for `sockaddr_un` on Windows. (#6513)
cb4c89e08ea2f879b6a860a3d6944efce6c9bf50 2022-11-17 Fix quoting of code in `NEWS.md`.
0436f1e15a8e79ffef5ea412ac1312cbf9f063e6 2022-12-01 Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612)
4fa47eabf21f3a13bb614cf8a63708f05decb710 2022-12-02 Clarify the storage argument. (#6849)
701251c57650a70d838caf5a11905fca12300546 2022-12-08 [ruby/logger] Drop RDoc development dependency to avoid CI failures. (https://github.com/ruby/logger/pull/82)
7ab4820af7b39e12023ab3aee74cb7e66e97f786 2022-12-08 [ruby/logger] Only assign to `@filename` if the path is valid. (https://github.com/ruby/logger/pull/81)
6fd5d2dc003bda5ce0685abd2b975d7ac7079d46 2022-12-08 Introduce `IO.new(..., path:)` and promote `File#path` to `IO#path`. (#6867)
22d391dc637dd756fdcdfc0ece4a71753b5b2ddb 2022-12-10 Add spec for fiber storage. (#6896)
d20bd06a97555a4493458d866590107da6cb21f4 2022-12-14 Remove `require 'io/wait'` where it's no longer necessary. (#6932)
9da5a7e79dcaed9bf233f6a9a5df54c727f60c77 2022-12-17 Add tests for `Queue#pop` with fiber scheduler. (#6953)
6073782627b8a4976cab232daab2350e36c21cdd 2022-12-19 Disable SEH workaround on __MINGW64__ only. (#6957)
11ad9a42d76ba785b2ec93f327469ead9b810ef4 2022-12-23 Fix missing handling of offset argument in `IO::Buffer` `pread` and `pwrite`. (#7012)
edd00697a88892b477b498b796d9f62f9ec84e28 2023-01-18 Test some missing coverage too. (#7041)
5cdf312d2cc7465fb7f5c36b01f868f059b69ac3 2023-01-21 Add `doc/distribution.md` to help reduce some of the confusion. (#6856)
3e7fdf29532333667271f01fff84c10ec80822e1 2023-01-21 Windows build instructions documentation. (#6956)
2c93c554019ebdc394d3c51c6d925620d3005f84 2023-01-21 Ensure main file has default coverage if required. (#7169)
f5ea43a2e61789357e9c4b374b4bc6756abeae17 2023-01-22 More coverage tests & specs. (#7171)
1b06cd3f09183c14d15ceaada57e425e12a6f3b2 2023-01-27 Pass through `line_offset` argument correctly (but it was always 0). (#7177)
57bc3f2f462df8e945ddfa5f9a8de45c1b0f0a86 2023-02-25 Add `IO::Buffer.string` for efficient string creation. (#7364)
f94e83faa04d99a6deac49b8c0a14c585aeea59a 2023-02-25 Assigning `nil` to fiber storage deletes the association. (#7378)
d0031db9b3d7c951ae786f47a6c41de8f3afb2eb 2023-02-25 Prefer RB_NUM2LONG for string length. (#7379)
7abe47b85a9db7393e8176ee5f0507c549da59bf 2023-03-07 Improve robustness of `io_wait` implementation. (#7456)
2c4b2053ca1884f058982fd46f2576bd887920b6 2023-03-07 Correctly clean up `keeping_mutexes` before resuming any other threads. (#7460)
1658e7d96696a656d9bd0a0c84c82cde86914ba2 2023-03-09 Remove SIGCHLD `waidpid`. (#7476)
44a0711eab7fbc71ac2c8ff489d8c53e97a8fe75 2023-03-09 Remove special handling of `SIGCHLD`. (#7482)
86d38b452005a9168eb2b5eaffd5fb3465313436 2023-03-10 Accept `sleep(nil)` as sleep forever. (#7484)
4dce12bead3bfd91fd80b5e7195f7f540ffffacb 2023-03-10 Remove prototypes for functions that are no longer used. (#7497)
ac65ce16e904695ba45888d3fba641d12caf733a 2023-03-14 Revert SIGCHLD changes to diagnose CI failures. (#7517)
7fd53eeb46db261bbc20025cdab70096245a5cbe 2023-03-15 Remove SIGCHLD `waidpid`. (#7527)
466aa8010fb49f9ec6c78ea1de4e8ca0965f4fdf 2023-03-25 Fix incorrect usage of `rb_fiber_scheduler_io_(p)(read|write)`. (#7593)
648870b5c577239b3274b0b48c82fb74910dfabf 2023-03-30 Support `IO#pread` / `IO#pwrite` using fiber scheduler. (#7594)
0b2613f44309bddae45562c9f3a14ed43e56959b 2023-05-15 `rb_io_puts` should not write zero length strings. (#7806)
ab7bb38aca0d2b5c2b81142a8e67fbff0f1a4a8a 2023-05-15 Remove explicit SIGCHLD handling. (#7816)
4d1ca2e1f964b6d70de34656a7893c76bd3d669b 2023-05-16 Ensure SIGCHLD always uses a signal handler. (#7819)
2df5a697e2726a11f0441b13fb5c73dd549837c8 2023-05-18 Add Fiber#kill, similar to Thread#kill. (#7823)
872249e209fdb7b7c890a93b0f93a74a62d21aec 2023-05-21 Don't leak pipes. (#7820)
bcb16eb1e5d279e28d1e57c781531a8dea98eb8f 2023-05-22 Rename `data` -> `buffer` for better readability. (#7836)
bd786e78969f9d4a8699376ceafe10934b6ad533 2023-05-22 Fix mutation on shared strings. (#7837)
28056a6d161417bd7b3aed8099f59f4ac164b351 2023-05-24 Add support for pread/pwrite on windows. (#7827)
135a0d26a11cf0d0825e4f80e00e2b430555d831 2023-05-24 Improvements to `IO::Buffer` `read`/`write`/`pread`/`pwrite`. (#7826)
6d976eb5348098a346d82065621e37925acae8b8 2023-05-24 Fix "runs a C function with the global lock unlocked and unlocks IO with the generic RUBY_UBF_IO" on Windows. (#7848)
492e0025fd1221681beafe28f1947b4dd1aefd9a 2023-05-25 Allow environment variable to control madvise advice. (#7855)
bf1bc5362e5edb2321665e9ce7c5c4e2e7d9f5ef 2023-05-27 Improve `read`/`write`/`pread`/`pwrite` consistency. (#7860)
00d6674636839329f54cad6daf5e5ca16cc3911e 2023-05-28 [ruby/etc] Remove usage of IO internals. (https://github.com/ruby/etc/pull/26)
881757c03f28c30c02754ed367e3c5494f46e800 2023-05-28 [ruby/io-wait] Remove usage of IO internals. (https://github.com/ruby/io-wait/pull/25)
26dd9c5f0f8d17151ef721b46f94af0e6b3f484a 2023-05-28 [ruby/io-nonblock] Remove usage of IO internals.
55393645a12435305bb88907a628bedab69606d4 2023-05-28 [ruby/io-nonblock] Revert "Remove usage of IO internals."
14abb799c93c8e5cb7ce36d829fb805f80397d4c 2023-05-28 [ruby/io-nonblock] Remove usage of IO internals. (https://github.com/ruby/io-nonblock/pull/11)
1889133c04f337fec3969cb5040a544088249046 2023-05-29 [ruby/io-console] Remove usage of IO internals. (https://github.com/ruby/io-console/pull/43)
764207e47ce38d1b73774a8e65114c87bc888298 2023-05-29 [ruby/io-console] Remove trailing whitespace.
98f500d0958d12b1909f4638abf33682d75f3fe6 2023-05-29 [ruby/openssl] Remove usage of IO internals.
18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2 2023-05-30 Hide most of the implementation of `struct rb_io`. (#6511)
a218ed569243e7544d8c4e3b348245a17f6c6a51 2023-06-01 Hide the usage of `rb_io_t` where possible. (#7880)
64ec1813ac56799b3a61d97fe52e706415c0d8df 2023-06-01 Restores the changes in `io-console` without breaking backwards compatibility. (#7882)
d5a5333168690ea1e3453cdb6a5d042f46ba80b8 2023-06-01 [ruby/stringio] Avoid direct struct usage. (https://github.com/ruby/stringio/pull/54)
47a8de609595def385cb8c716b80d7a64b718310 2023-06-01 Drop `_t` suffix from struct names. (#7886)
b7ee51e81dd63990ec27daaa151864214cbf85d2 2023-06-01 Expose `enum rb_io_event` flags without `_t` suffix. (#7887)
0402193723647b8c4f57b1453fe2192ad2788d12 2023-06-03 Fix `Thread#join(timeout)` when running inside the fiber scheduler. (#7903)
3fe09eba9d040d275d8305fe1b00f2f22218b6c8 2023-06-08 Add deprecations for public `struct rb_io` members. (#7916)
be86767eeff745ac4d0255fa5d14da99e32f59bd 2023-06-10 Add VM_ASSERT on `fiber->blocking == 0`. (#7926)
27b07776c99dfb4a8a4e6885462786c03e9b0660 2023-06-09 [rubygems/rubygems] Autoload shellwords when it's needed.
5a69e8bcefcb609bf02b278a19cd9bf9018cea82 2023-06-13 Add tests to `String#byteslice` memory allocation behaviour. (#1909)
a87bce86bb2a7581943355b41abaf41a6ad18218 2023-06-21 Allow setting the name of a class or module. (#7483)
d4c720a91bc7bb9ff31810e1720acffb939f7a2f 2023-08-24 Fix support for dynamic keys. (#8273)
40d774bec68de3f252c0b252d9d0303a67bee0cb 2023-08-25 Avoid memory dependency between instructions. (#8284)
b2d1c720ece67b110ab4ade6b8c9f3b640216c8a 2023-08-25 Add documentation regarding how to build Ruby for debugging. (#8290)
caf48487cafb8414c60f32b902decf0689ae2093 2023-08-28 Restore `HAVE_RB_IO_T` macro for compatibility with `kgio`, `unicorn`, etc. (#8286)
901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d 2023-08-29 Validate the typed data before dereferencing the internal struct. (#8315)
e46e48d690cf543193418ef08725cdbe31688975 2023-08-29 Expose `rb_process_status_wait` and hide `rb_process_status_waitv`. (#8316)
f0b43597ffbef0a43ca3459d8807bdc00ba4ec59 2023-08-29 [DOC] Improved documentation. (#8319)
7e0f5df2f99693267d61636d23da47f79924e9d5 2023-09-04 Don't reset line coverage for evaled code. (#8330)
05aaff2191cbe777d1efb915ab9652eeaa1c16b8 2023-09-07 Reduce number of iterations in `TestFiberScheduler#test_autoload`. (#8391)
5184b40dd4dc446660cd35c3e53896324e95b317 2023-09-07 Extract `do_mutex_lock_check_interrupts` to try and fix `ppc64le`. (#8393)
be21a056d229652ae5cf6926e96c1517aa43453f 2023-09-08 Try default `gcc` 9.4.0 to see if it exhibits the same compiler bugs. (#8394)
a095740fed2a05a04806a1d3827bcaba02e45720 2023-09-14 Fix `io_buffer_get_string` default length computation. (#8427)
30f5a2bbcd0151ce25b1e55dcff31626d4ab253a 2022-06-25 [ruby/io-nonblock] Don't define nonblock methods if they are defined by core.
00467699a96902bc8dc68bf0ad237f9a02e093d5 2023-12-06 Don't warn generally for `IO::Buffer`, only on specific code paths e.g. `map`. (#9131)
888051802b7a0d38303c946f1349b2c0daf6239a 2023-12-06 Add news for `Fiber#kill`. (#9134)
7e05e9ff945c4e6d9fffebafc8037e28d747f0b7 2023-12-06 Fix incorrect "nested_fake_name" documentation. (#9135)
37753f163e461e157e6e224d9d3e5626427a50cc 2023-12-24 IO::Buffer improvements and documentation. (#9329)
260bf60e52ffdfa625be1153624b0d123fc305f8 2023-12-25 Correctly release the underlying file mapping. (#9340)
e5a4f757bdf5dc3d8c329ddd268432f9ecc7bff6 2023-12-26 Fix Window private file mapping unlink EACCES issue. (#9358)
08d4e5ebef3d372ca52de95d8ed896d7def8de49 2023-12-27 [ruby/openssl] Add more methods to `SocketForwarder`.
f7178045bb11fc3722a98082ed81e1ec39c4940f 2024-01-01 [ruby/openssl] Add support for `gets(chomp: true)`.
c5cf4d4e129f64cb69aaf0a829aed068ef1943c4 2024-01-14 Improve behavioural consistency of unallocated (zero length) `IO::Buffer`. (#9532)
4f634d3c85ca45b5995c1f37619784c99f2be62c 2024-01-17 [ruby/openssl] Add support for IO#timeout. (https://github.com/ruby/openssl/pull/714)
2554c5d3b8738a248cedb2fea96dfab9fbe19417 2024-02-01 Don't wait in `io_binwrite_string` if not necessary. (#9792)
78d9fe69479d32214a52ad7291c3973f1b6b7f6f 2024-02-21 Ensure that exiting thread invokes end-of-life behaviour. (#10039)
04729fe68dceddab045be7324e26c2bb15aa62c7 2024-02-21 Fix exception handling in `rb_fiber_scheduler_set`. (#10042)
6a0b05f413931cf24c149c29cc317d2b9c623885 2024-02-22 Remove `SAVE_ROOT_JMPBUF` as it no longer has any effect. (#10066)
9ab1fa3bf570bf19b0d6808adf12e965aacc6d83 2024-03-06 Hide public implementation of `rb_io`. (#9568)
b4d73e9f80aa5fe72c39f42a88727fed0abb261b 2024-03-22 Revert "Hide public implementation of `rb_io`. (#9568)" (#10283)
a7ff264477105b5dc0ade6facad4176a1b73df0b 2024-03-26 Don't clear pending interrupts in the parent process. (#10365)
dfa0897de89251a631a67460b941cd24a14c9b55 2024-04-07 Enumerator should use a non-blocking fiber. (#10478)
bdb1fc1e5bd09f23860d0f3aced10da51d2c9867 2024-04-07 Prefer to use `Fiber#transfer` in scheduler implementation. (#10479)
b473d304d449b520a967e45b7d5d5ecb8556b4c3 2024-04-07 Revert "Enumerator should use a non-blocking fiber. (#10478)" (#10480)
5d1702e01a36e11b183fe29ce10780a9b1a41cf0 2024-04-07 Enumerator should use a non-blocking fiber, change `rb_fiber_new` to be non-blocking by default. (#10481)
6ade36c06b7cef948099b8f5f483763498705d12 2024-04-17 `Fiber#raise` recursively raises on nested resuming_fiber. (#10482)
1699772ac4e62d783aab6e820f978c04a215a612 2024-04-22 [ruby/openssl] Introduce basic support for `close_read` and `close_write`.
f1afae2459e139430859f57b8351d180e9ef5d9f 2024-04-27 [ruby/openssl] More documentation.
368ce0758e1f4c0fd38ae08297f432c0a9589d4a 2024-04-28 [ruby/openssl] Further clarification of documentation.
4c3727c6ace506d00e2e869243b7812ea7d31bc2 2023-06-21 Add anonymous module name spec.
75c4ac3395f609cad55a0e30a59d61ecfd092952 2024-10-03 Update `IO::Buffer` documentation. (#11737)
cd96af2cb88a0b98add14eacf0005a8bee505d5d 2024-10-03 Add `IO::Buffer` tests for read and write with length & offset. (#11779)
96d69d2df269bbf68bb0e378b2cd4af46bfd37a4 2024-10-04 Clarify `rb_io_maybe_wait` behaviour. (#9527)
c878843b2cb8fd54ebfaabd10b6334cf4d400208 2024-10-04 Better handling of timeout in `rb_io_maybe_wait_*`. (#9531)
c33cb9a5867b0d35335a7d6921184a60356a32d7 2024-10-04 Update `io_spec.c` to use `rb_io_maybe_wait*` if possible. (#11792)
6ea0dcc9781931129e77540097712f6196d49fde 2024-10-04 Direct access to `fptr->fd` should prefer to use the `internal/io.h`. (#11793)
86e8a36e77a9946aeb179c73a232a793867951bb 2024-10-04 Revert "Direct access to `fptr->fd` should prefer to use the `internal/io.h`. (#11793)"
c50298d7d4f8797963490f5679b1c481b89d4955 2024-10-05 Introduce `rb_io_blocking_region` which takes `struct rb_io` argument. (#11795)
dee15211c154cc70409a6010883140f259d1c483 2024-10-09 Update `BasicSocket` to use `rb_io_blocking_region`.
d78bf437083229842925c45f4190d29773026e1b 2024-10-09 Update `UNIXSocket` to use `rb_io_blocking_region`.
823f29a36edd25136999d5a649eaff5e4a41481c 2024-10-09 Update `IPSocket` to use `rb_io_descriptor` and `rb_io_mode`.
3031bf6bd46c56f90f1944e41dcb4a5fb9948e40 2024-10-09 Update `UDPSocket#send` to use `rb_io_blocking_region`.
04ddb7e8084aa2fdb07ca4da2b4369cca275c1d9 2024-10-09 Update `Socket#accept` to use `rb_io_blocking_region`.
438ef21a9b50815f645a324e3d8950750467fd29 2024-10-09 Update `Socket#recvfrom` to use `rb_io_blocking_region`.
c43be94f76982d3ffa2ecd28d34172600b81ca31 2024-10-11 Update `rsock_connect` to take `VALUE io` argument. (#11847)
ad5641fd3424790789871300b7c0dd6c069f3614 2024-10-11 Support `IO#timeout` for `rsock_connect`. (#11880)
87fb44dff6409a19d12052cf0fc07ba80a4c45ac 2024-10-31 Introduce Fiber Scheduler `blocking_region` hook. (#11963)
4031beb0836a04ac9a8824c8ce63d1571ff76948 2024-11-02 Add documentation for `RUBY_ASSERT_CRITICAL_SECTION`. (#11982)
3b9896acfcaf992ac233578ca8ec5bb69978de4a 2024-11-06 Revert "Introduce Fiber Scheduler `blocking_region` hook. (#11963)" (#12013)
048bb1e1763c3ea9208a4049b515c15252f19cf1 2024-11-07 `ubf_th` appears to be unused. (#11994)
9c268302bfb4890d3757caa60981802a88bfbd89 2024-11-20 Introduce `Fiber::Scheduler#blocking_operation_wait`. (#12016)
3c0b09ac9e9afe5a8a536ac3c27c9202bcebc25c 2024-11-20 Allow `io_buffer_memmove` to release the GVL for large buffers. (#12021)
b143fd5bd8527da3ddd176a3d6a362d0ab3bc6c7 2024-11-20 [ruby/zlib] Don't call `rb_str_set_len` while released the GVL. (https://github.com/ruby/zlib/pull/88)
f6e6e6687069cbefa5ba777d98d1f90b566b4ada 2024-11-20 [ruby/zlib] Add support for safe offload of nogvl code. (https://github.com/ruby/zlib/pull/89)
03ff7db5fe1eaab9b9569185017f6ae87d36ac0e 2024-11-20 Update `scheduler.c` to use `RUBY_ASSERT`. (#12129)
89deb38736ccfb89a2de82a6087ce0723ba700e4 2024-11-21 bignum nogvl is offload safe. (#12132)
a8c2d5e7bee5fad0965baeb58d312ddc5932ec26 2024-11-23 Ensure fiber scheduler re-acquires mutex when interrupted from sleep. (#12158)
04ec07794657cd2444ecb001a522b9df2db1b90a 2025-01-15 Preserve `errno` in `rb_fiber_scheduler_unblock`. (#12576)
46b544c54955348ef1ea9692b837b061f59f91cd 2025-01-28 Prefer `uname -n` over `hostname`. (#12647)
d3abee739f4feb91bb9aaae33877d70c8c576db0 2025-01-28 Add fallback for `hostname` if `uname` isn't available. (#12655)
0da2b12741b2645f5c34f7e98e3b3b0f8f3cde5e 2025-01-31 Prefer `platform_is_not :windows`.
68f0150ff0402746e0fee21a287aabf7d7900523 2025-02-14 [ruby/json] Pass through all options if present.
d32fa5283f1197f2dfbd1f22d06515035095ecee 2025-02-25 Prefer `0.000001` over `0.000001f` for timeout calculations. (#12803)
021ccbf7e8e34a1ae7af2d8411ed6dc4e5e8f980 2025-02-25 [ruby/pp] Ensure the thread local state is always set up. (https://github.com/ruby/pp/pull/38)
eb91c664dc0b4d69db09ae913f2d7a5ef3490d74 2025-03-22 Fix broken CI. (#12963)
5f77f9bea61fb4cc8447a76e191fdfb28f076862 2025-03-23 Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)
22667fcc38f6246f8d93f229097375f85e3efbab 2025-04-14 Add `RUBY_VERSION_IS_3_5`.
4e970c5d5aee94c729541236c69792ec314f3731 2024-11-20 Expose `ruby_thread_has_gvl_p`.
c13ac4d615c28edc1580363c13b44eb7a73103f3 2024-11-01 Assert the GVL is held when performing various `rb_` functions.
28491e53cda02c9b7372c01b88bf55dad50a53bf 2025-04-15 [ruby/stringio] Support for `rb_io_mode_t` (https://github.com/ruby/stringio/pull/129)
8d21f666b8098545a366c46f1990edf2a9f4ffcb 2025-04-16 Introduce `enum rb_io_mode`. (#7894)
c4ae6cb5005cfa53be0af466a5619e7455c15744 2025-04-17 Prefer `th->ec` for stack base/size. (#13101)
06a7b3c14453b35ff530b3a06c134193dc25207e 2025-04-17 Only test on known good platforms. (#13123)
6f6d07272e76682029112c4ceb6eb6b811ee8d6f 2025-04-18 Update usage of `enum rb_io_mode`. (#13128)
20a1c1dc6be9349521592fc21b17de3eb9f84051 2025-04-19 Ensure `struct rb_io` is passed through to `thread.c`. (#13134)
d6d4e6877c9670b871ba44b9ca8bece033d17f22 2025-04-19 Tidy up `rb_io_fptr_finalize`. (#13136)
c1dbd01c6796adb64edc6136134be8271b933bb8 2025-04-23 Increase fiber sleep test tolerance. (#13152)
425fa0aeb5ced20c03b2d5edb7a409666363ea8f 2025-05-13 Make `waiting_fd` behaviour per-IO. (#13127)
1e2a67e1b0d12b193f3d9b367ec6f1743fc70a13 2025-05-13 Fix typo in `NEWS.md`.
a4ce8639d95838e55208a2cf348e3ba0099b41b8 2025-05-15 Add `continue-on-error` to failed Windows 2025 build.
87261c2d95f93f8738557cfb6f93ed14f1b483dd 2025-05-15 Ensure that forked process do not see invalid blocking operations. (#13343)
a0fe0095ab2711ba54b29cdd2a5957f993cfc1de 2025-05-16 Don't enumerate `io->blocking_operations` if fork generation is different. (#13359)
73c9d6ccaa2045a011ed991dc29633bd0443971a 2025-05-23 Allow `IO#close` to interrupt IO operations on fibers using `fiber_interrupt` hook. (#12839)
627a5ac53b8116d83ad63929c8510cae674f8423 2025-05-23 Bump fiber scheduler version and add missing documentation. (#13424)
9a292528305e88fc05c054afcfe25fc23e5c9b80 2025-06-02 Fix compatibility with fiber schedulers that don't implement `#fiber_interrupt`. (#13492)
81a23c5793fecaff5f75cefe6a6e03dab99df16b 2025-05-24 `rb_io_blocking_operation_exit` should not execute with pending interrupts.
5ac435dc345d81b78bac4c995fb2b3dc7cface68 2025-06-06 Log `ec->interrupt_flag` if non-zero.
dde9fca63bf4bf56050c734adca3eaae70506179 2025-06-06 Be more specific with `RUBY_VM_INTERRUPTED` in debug assertions.
68625a23d6deeb2e4c498d4bccc36d616608e05f 2025-06-14 Fix blocking operation cancellation. (#13614)
ba68343d3ad0465ae9cdaf786dd100b9ed0add07 2025-06-24 Allow wakeup mutex to be used in trap context. (#13684)