[#59462] [ruby-trunk - Bug #9342][Open] [PATCH] SizedQueue#clear does not notify waiting threads in Ruby 1.9.3 — "jsc (Justin Collins)" <redmine@...>

9 messages 2014/01/02

[#59466] [ruby-trunk - Bug #9343][Open] [PATCH] SizedQueue#max= wakes up waiters properly — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2014/01/02

[#59498] [ruby-trunk - Bug #9352][Open] [BUG] rb_sys_fail_str(connect(2) for [fe80::1%lo0]:3000) - errno == 0 — "kain (Claudio Poli)" <claudio@...>

10 messages 2014/01/03

[#59516] [ruby-trunk - Bug #9356][Open] TCPSocket.new does not seem to handle INTR — "charliesome (Charlie Somerville)" <charliesome@...>

48 messages 2014/01/03

[#59538] [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — "shyouhei (Shyouhei Urabe)" <shyouhei@...>

33 messages 2014/01/03
[#59582] Re: [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — SASADA Koichi <ko1@...> 2014/01/06

Intersting challenge.

[#59541] Re: [ruby-trunk - Feature #9362][Assigned] Minimize cache misshit to gain optimal speed — Eric Wong <normalperson@...> 2014/01/04

Hi, I noticed a trivial typo in array.c, and it fails building struct.c

[#59583] [ruby-trunk - Bug #9367][Open] REXML::XmlDecl doesn't use user specified quotes — "bearmini (Takashi Oguma)" <bear.mini@...>

12 messages 2014/01/06

[#59642] [ruby-trunk - Bug #9384][Open] Segfault in ruby 2.1.0p0 — "cbliard (Christophe Bliard)" <christophe.bliard@...>

11 messages 2014/01/08

[#59791] About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...>

A while ago I created a proof-of-concept that I intended to use in my

16 messages 2014/01/15
[#59794] Re: About unmarshallable DRb objects life-time — Eric Hodel <drbrain@...7.net> 2014/01/15

On 15 Jan 2014, at 11:58, Rodrigo Rosenfeld Rosas <rr.rosas@gmail.com> wrote:

[#59808] Re: About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2014/01/16

Em 15-01-2014 19:42, Eric Hodel escreveu:

[#59810] Re: About unmarshallable DRb objects life-time — Eric Hodel <drbrain@...7.net> 2014/01/16

On 16 Jan 2014, at 02:15, Rodrigo Rosenfeld Rosas <rr.rosas@gmail.com> wrote:

[#59826] Re: About unmarshallable DRb objects life-time — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2014/01/17

Em 16-01-2014 19:43, Eric Hodel escreveu:

[#59832] Re: About unmarshallable DRb objects life-time — Eric Hodel <drbrain@...7.net> 2014/01/17

On 17 Jan 2014, at 04:22, Rodrigo Rosenfeld Rosas <rr.rosas@gmail.com> wrote:

[ruby-core:59636] Fwd: Merging nio4r into ruby-core

From: Tony Arcieri <bascule@...>
Date: 2014-01-08 01:06:38 UTC
List: ruby-core #59636
(Resending this as my previous attempt failed)

Hi there everyone!

For the past 2 years I have maintained a library called nio4r which
provides a cross-Ruby VM abstraction for I/O selectors which are the
underpinnings of I/O selectors and reactors:

https://github.com/celluloid/nio4r

This library supports at least MRI, JRuby, and Rubinius, and is highly
influenced by the Java NIO design.

The problem is I'm maintaining implementations for all of the popular Ruby
VMs. I think it would be better if the API were standardized into core Ruby
and each implementation could provide their own optimized implementation.

There are changes I'd like to see happen before such a standardization
occurs. However, I'd like to gauge interest about incorporating this sort
of API into the core of the Ruby language itself before that happens.

What do you all think about incorporating nio4r into Ruby itself?

--

On Tue, Jan 7, 2014 at 1:52 PM, Eric Wong <normalperson@yhbt.net> wrote:

> I am mildly against this, as it would likely hinder the
> adoption/evolution of better[1] non-blocking I/O libraries
> better-suited for use with multi-threaded applications.


The advantage of nio4r over every other existing solution I am aware of is
that it's API is it is modeled after Java NIO and can therefore provide a
least common denominator API for all Ruby VMs, including JRuby. None of
them are treated as second class citizens, and all VMs can provide
optimized implementations.

It's also relatively OS agnostic, although to get good Windows support we'd
need an even leakier abstraction like libuv (which, IMO, optimizes for
Windows at the cost of all other OSes, although a more libuv-like API might
be worth considering)

There are definitely better non-blocking I/O APIs out there if you're
willing to sacrifice ubiquity. This API is intended to be something that
works fairly well everywhere.

-- 
Tony Arcieri

In This Thread

Prev Next