[#109115] [Ruby master Misc#18891] Expand tabs in C code — "k0kubun (Takashi Kokubun)" <noreply@...>

Issue #18891 has been reported by k0kubun (Takashi Kokubun).

13 messages 2022/07/02

[#109118] [Ruby master Bug#18893] Don't redefine memcpy(3) — "alx (Alejandro Colomar)" <noreply@...>

Issue #18893 has been reported by alx (Alejandro Colomar).

11 messages 2022/07/02

[#109152] [Ruby master Bug#18899] Inconsistent argument handling in IO#set_encoding — "javanthropus (Jeremy Bopp)" <noreply@...>

Issue #18899 has been reported by javanthropus (Jeremy Bopp).

10 messages 2022/07/06

[#109193] [Ruby master Bug#18909] ARGF.readlines reads more than current file — "JohanJosefsson (Johan Josefsson)" <noreply@...>

Issue #18909 has been reported by JohanJosefsson (Johan Josefsson).

17 messages 2022/07/13

[#109196] [Ruby master Bug#18911] Process._fork hook point is not called when Process.daemon is used — "ivoanjo (Ivo Anjo)" <noreply@...>

Issue #18911 has been reported by ivoanjo (Ivo Anjo).

9 messages 2022/07/13

[#109201] [Ruby master Bug#18912] Build failure with macOS 13 (Ventura) Beta — "hsbt (Hiroshi SHIBATA)" <noreply@...>

Issue #18912 has been reported by hsbt (Hiroshi SHIBATA).

20 messages 2022/07/14

[#109206] [Ruby master Bug#18914] Segmentation fault during Ruby test suite execution — "jprokop (Jarek Prokop)" <noreply@...>

Issue #18914 has been reported by jprokop (Jarek Prokop).

8 messages 2022/07/14

[#109207] [Ruby master Feature#18915] New error class: NotImplementedYetError or scope change for NotImplementedYet — Quintasan <noreply@...>

Issue #18915 has been reported by Quintasan (Michał Zając).

18 messages 2022/07/14

[#109260] [Ruby master Feature#18930] Officially deprecate class variables — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18930 has been reported by Eregon (Benoit Daloze).

21 messages 2022/07/20

[#109314] [Ruby master Bug#18938] Backport cf7d07570f50ef9c16007019afcff11ba6500d70 — "byroot (Jean Boussier)" <noreply@...>

Issue #18938 has been reported by byroot (Jean Boussier).

8 messages 2022/07/25

[#109371] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18949 has been reported by Eregon (Benoit Daloze).

35 messages 2022/07/29

[ruby-core:109143] [Ruby master Feature#18004] Add Async to the stdlib

From: "shan (Shannon Skipper)" <noreply@...>
Date: 2022-07-05 17:05:26 UTC
List: ruby-core #109143
Issue #18004 has been updated by shan (Shannon Skipper).


larskanis (Lars Kanis) wrote in #note-4:
> Adding the core Async gem to stdlib requires to add 4 more dependent gems. Async is a big library with a lot of supplemental gems. It makes things more complicated if some gems are in stdlib and some are not. Also Async is made to be usable on rubies before 3.0, whereas ruby-3.x has `Fiber.schedule` as a builtin mechanism for starting async tasks.
> 
> The problem is, that `Fiber.schedule` is not usable without adding a complete scheduler. This makes `Fiber.schedule` a no-go in smaller scripts. So IMHO the thing that is missing in ruby-3.x is a simple scheduler. Otherwise the scheduler feature is rather incomplete.
> 
> My proposal is to promote [test/fiber/scheduler.rb](https://github.com/ruby/ruby/blob/master/test/fiber/scheduler.rb) to the stdlib (probably as a gem). With around 250 lines it is small enough to be considered a simple reference scheduler, but is too big to be copied into each and every script. Would you consider such a pull request?
> 
> Background: I'm going to make ruby-pg fully compatible to Fiber.scheduler [here](https://github.com/ged/ruby-pg/pull/397). For testing a simple scheduler is required, so I copied [test/fiber/scheduler.rb](https://github.com/ruby/ruby/blob/master/test/fiber/scheduler.rb), but it doesn't receive fixes like [this](https://github.com/ruby/ruby/pull/4777) when copied.

That's a great point about multiple gem dependencies. I think my request was overly broad and you're right that a tiny but maintained scheduler backed by io-wait would be great to have by default rather than the whole Async gem along with it's dependencies.

It looks like https://github.com/bruno-/fiber_scheduler would be a good option, though it could be paired down by removing scheduler.rb since io-wait is guaranteed to be available.

----------------------------------------
Feature #18004: Add Async to the stdlib
https://bugs.ruby-lang.org/issues/18004#change-98283

* Author: shan (Shannon Skipper)
* Status: Open
* Priority: Normal
----------------------------------------
Adding Async to the stdlib would signal a clear concurrency story for Ruby 3 to compliment Ractor-based parallelism. I don't know how ioquatix feels about adding Async to stdlib, but I wanted to propose it since we keep getting questions about concurrent I/O with Ruby 3 in the community.

Ractors get a fair amount of attention on the #ruby IRC channels and Ruby Discord. When Ractors are discussed, question around concurrent I/O in Ruby 3 often follow. Folk don't seem to be aware of Async, so we often cite the Ruby 3 release notes Async Net::HTTP example shown below.
``` ruby
require 'async'
require 'net/http'
require 'uri'

Async do
  ["ruby", "rails", "async"].each do |topic|
    Async do
      Net::HTTP.get(URI "https://www.google.com/search?q=#{topic}")
    end
  end
end
```
The main downside I see for this proposal is the bloat from Async's several gem dependencies. For what it's worth, nio4r has been a staple for a long time and is also the only dependency of Puma.
```
Async is a composable asynchronous I/O framework for Ruby based on nio4r and timers.
```
Async is just so useful it would be awesome to add to the stdlib. It fills and important gap for concurrent I/O with Ruby 3 and would be exciting to see included in a future release.

See https://github.com/socketry/async#readme



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread