From: "ioquatix (Samuel Williams)" Date: 2022-03-29T08:18:12+00:00 Subject: [ruby-core:108102] [Ruby master Feature#18566] Merge `io-wait` and `io-nonblock` gems into core IO Issue #18566 has been updated by ioquatix (Samuel Williams). The core method for waiting is `IO#wait`. Everything else if I recall correctly is just a wrapper around that core method. So, while I don't have a strong opinion about introducing `IO#wait_readable` and `IO#wait_writable` (it's true they are popular interface), I would suggest that the most important method is `IO#wait` which should be introduced. As `io/nonblock` has clunky interface for `IO#wait`, I suggest we implement subset in core Ruby and if `io/wait` is required, it implements the old clunky interface (super set of core `IO#wait`). ---------------------------------------- Feature #18566: Merge `io-wait` and `io-nonblock` gems into core IO https://bugs.ruby-lang.org/issues/18566#change-97066 * Author: byroot (Jean Boussier) * Status: Closed * Priority: Normal ---------------------------------------- I think we should reconsider status of `io-wait`, and consider simply merging it into core's `IO`. According to @nobu it's only a gem for "historical" reasons. Any non trivial IO code will likely make use of it, and it's just 400 lines of code. Recently with the extraction of `net-protocol`, it was added add a dependency and that caused Ruby 3.1 compatibility issues with some gems (e.g. with [`mail`](https://github.com/mikel/mail/pull/1439)). ### Proposal - Merge `io-wait` into `io.c` for Ruby 3.2 - Remove `io-wait` as a dependency of all gems maintained by `ruby-core` (e.g. `net-protocol`). - Publish a new `io-wait` version that is simply an empty gem. - Add a `lib/io/wait.rb` stub, with eventually a deprecation warning. cc @eregon @headius @mame @ioquatix -- https://bugs.ruby-lang.org/ Unsubscribe: