[#35400] Fwd: [ruby-cvs:38176] Ruby:r30994 (trunk): * string.c (rb_str_byteslice): the resulted encoding should keep — "Martin J. Dst" <duerst@...>
I'm really surprised that the encoding is kept for an arbitrary byteslice.
[#35403] Why are hash keys sometimes duped? — Aaron Patterson <aaron@...>
Why are some objects duped when they are used as hash keys and other
Aaron Patterson <aaron@tenderlovemaking.com> wrote:
[#35417] [Ruby 1.9 - Bug #4463][Open] [PATCH] release GVL for fcntl() for operations that may block — Eric Wong <normalperson@...>
> Issue #4463 has been reported by Eric Wong.
Hi
KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
Hi
[#35426] [Ruby 1.8 - Bug #4467][Open] Process.maxgroups= should only accept numeric values — Daniel Berger <djberg96@...>
[#35440] [Ruby 1.9 - Feature #1047] request: getters, setters for the GC — Narihiro Nakamura <authorNari@...>
[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>
[#35462] Source for 1.8 syck gram.y and token.re? — Kurt Stephens <ks@...>
I found bug in 1.8 ext/syck. The problem is in gram.c and/or token.c.
This is obviously dead and gone: http://whytheluckystiff.net/syck/
Syck is dead. 1.9 should make Psych/libyaml default. The fact that
I know syck is dead.
Maybe it's possible to bribe Aaron into releasing a Psych gem for 1.8?
[#35483] /proc/$PID/environ in Linux — Eric Wong <normalperson@...>
I wanted to inspect the environment of a long-running process[1] and I
[#35494] Re: can someone explain this? — Michael Edgar <adgar@...>
[+ruby-core]
[#35509] Why has defined? been changed for autoloaded constants in 1.9? — Nikolai Weibull <now@...>
Hi!
[#35513] String#upcase and UTF-8/Unicode not working — Nikolai Weibull <now@...>
Why does the following print ”äBC” instead of ”ÄBC”?
[#35519] NoMethodError#message may take very long to execute — Adiel Mittmann <adiel@...>
Hello,
[#35528] [Ruby 1.9 - Feature #4512][Open] [PATCH] ext/fcntl/fcntl.c: add F_DUPFD_CLOEXEC constant — Eric Wong <normalperson@...>
[#35536] File.write take 4 — Roger Pack <rogerdpack2@...>
Hello all.
Could I get any feedback on my latest patch for File.write?
[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>
On 18/03/12 10:22, nobu wrote:
On Mon, Mar 19, 2012 at 8:06 AM, Alex Young <alex@blackkettle.org> wrote:
On 19/03/12 11:58, Luis Lavena wrote:
[#35555] [Ruby 1.9 - Bug #4527][Open] [PATCH] IO#close releases GVL if possible — Eric Wong <normalperson@...>
[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>
> ref: [ruby-core:35527]
KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
2011/3/29 Eric Wong <normalperson@yhbt.net>:
Comment for patch 2.
Motohiro KOSAKI <kosaki.motohiro@gmail.com> wrote:
diff --git a/ext/-test-/wait_for_single_fd/wait_for_single_fd.c
[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>
2011/3/28 Eric Wong <normalperson@yhbt.net>:
KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
[#35567] [Ruby 1.9 - Bug #4534][Open] ri does not open $PAGER with program name only — Robert Klemme <shortcutter@...>
[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>
Charles Nutter <headius@headius.com> wrote:
[ruby-core:35572] Re: [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases
KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
> > ref: [ruby-core:35527]
> >
> > This adds a new C API function with the following prototype:
> >
> > rb_io_poll_fd(int fd, short events, int timeout);
> >
> > It is emulated using select() for platforms that we do not support
> > poll() for. It is much easier to use than rb_thread_select() and
> > rb_thread_fd_select() for the common case in C extensions[1].
> >
> > For Linux (and eventually any other platforms where poll() works for all
> > select()-able files), we actually implement rb_io_poll_fd() using the
> > poll() system call which means it is faster for high numbered file
> > descriptors and does not put malloc pressure on the garbage collector.
>
> Meta review comment. All performance patches should have mesured
> performance number.
Based on a contrived test case:
http://redmine.ruby-lang.org/attachments/1562/io_select_using_poll_test.rb
I get the following results:
---- before NOFILE=1024 ---
max fd: 1024 (results not apparent with <= 1024 max fd)
last IO: #<IO:fd 1022>
2.050000 1.440000 3.490000 ( 3.476264)
GC.count: 386
---- after NOFILE=1024 ---
max fd: 1024 (results not apparent with <= 1024 max fd)
last IO: #<IO:fd 1022>
2.430000 0.320000 2.750000 ( 2.734643)
GC.count: 343
---- before NOFILE=16384 ---
max fd: 16384 (results not apparent with <= 1024 max fd)
last IO: #<IO:fd 16382>
3.610000 5.680000 9.290000 ( 9.266017)
GC.count: 643
---- after NOFILE=16384 ---
max fd: 16384 (results not apparent with <= 1024 max fd)
last IO: #<IO:fd 16382>
2.970000 0.450000 3.420000 ( 3.415426)
GC.count: 394
I don't have real world results/test case but I think small bits
like this count for the future.
> And, if you really want to care C10K scalability issue, why don't you use
> epoll?
I assume you mean Ruby programming in general and not making MRI itself
use epoll().
I find synchronous programming easier especially when dealing with
existing libraries (I use Ruby to make programming life easier :)
For me, thousands of native threads (NPTL + 64-bit) often makes more
sense than epoll() + non-blocking I/O.
Concurrent connections isn't always an issue, either, but also sometimes
have many open file handles to support other tasks[1].
I mainly think select() is a horrible interface and having extension
authors to deal with HAVE_RB_FD_INIT and remembering rb_fd_term() is
dangerous. Small bits of pressure from Rubyists can hopefully steer
other OSes towards better poll() support.
Thank you for your time!
[1] DB connection pool, large memcached pool, regular files,
various message queues, etc...
--
Eric Wong