Hi all,
This is a summary of ruby-dev mailing list in these days.
[ruby-dev:22859] Re: [ruby-talk:91705] io/nonblock
Nobuyoshi Nakada suggested new methods for nonblocking I/O:
* IO#nonblock?
* IO#nonblock = flag
* IO#nonblocking(flag) { .... }
* IO#nonblock { .... }
* IO#nonblock
TANAKA Akira is opposed to this idea, because:
* Nonblocking IO is not useful in most cases.
* Nonblocking flag is inherited to child processes,
that is very dangerous.
He also suggested alternative solution, “stdio-sensitive sysread”.
This issue is still open.
[ruby-dev:22877] Process.spawn & IO.popen without shell
Nobuyoshi Nakada proposed a new method Process.spawn.
This method offers portable interface to spawn processes asynchronously.
e.g.
Process.spawn "ls -l /"
He also suggested that IO.popen should invoke processes without
shell interaction e.g. IO.popen directly calls command if the first
argument is an Array, as well as #exec does.
# `*' is not expanded
IO.open(["/bin/ls", "*"], "r")
Matz agreed with these ideas.
[ruby-dev:22911] core dump with /#{Thread.pass}/o
TANAKA Akira reported that /#{Thread.pass}/o causes segmentation fault.
The ruby interpreter edits an internal syntax tree when /#{…}/o is
seen, the value of /#{…}/o can be unexpectable with multithreads.
This problem is already discussed in [ruby-dev:11650] and [ruby-dev:21614],
and it is needed to make Mutex class builtin.
Akira committed temporary fix, but this issue is still open.
[ruby-dev:23002] drb/eq causes unexpected assertion fail
Kazuhiro Nishiyama reported that drb’s unit test failed at
test_drb.rb:5: test_05_eq. This problem is caused by the difference
of drb/eq.rb load order.
Masatoshi Seki, the author of drb, noted that he is thinking to require
drb/eq.rb by default.
– Minero Aoki
ruby-dev summary index:
http://i.loveruby.net/en/ruby-dev-summary.html