[#43077] problems committing — Aaron Patterson <tenderlove@...>
It seems like the disk might be full on the svn server:
5 messages
2012/03/05
[#43090] "\\".gsub("\\", "\\\\") == "\\" ?!!! — Rodrigo Rosenfeld Rosas <rr.rosas@...>
Please, help me understand what is happening here.
6 messages
2012/03/06
[#43094] Re: "\\".gsub("\\", "\\\\") == "\\" ?!!!
— Xavier Noria <fxn@...>
2012/03/06
A literal passed as second argument to gsub goes over two
[#43120] [ruby-trunk - Bug #6124][Open] What is the purpose of "fake" gems in Ruby — Vit Ondruch <v.ondruch@...>
27 messages
2012/03/07
[#43142] Questions about thread performance (with benchmark included) — Rodrigo Rosenfeld Rosas <rr.rosas@...>
A while ago I've written an article entitled "How Nokogiri and JRuby
10 messages
2012/03/08
[#43785] Re: Questions about thread performance (with benchmark included)
— Tomoyuki Chikanaga <nagachika00@...>
2012/03/28
Hello, Rodrigo.
[#43797] Re: Questions about thread performance (with benchmark included)
— Rodrigo Rosenfeld Rosas <rr.rosas@...>
2012/03/28
Em 27-03-2012 23:22, Tomoyuki Chikanaga escreveu:
[#44213] Re: Questions about thread performance (with benchmark included)
— SASADA Koichi <ko1@...>
2012/04/09
Hi,
[#44214] Re: Questions about thread performance (with benchmark included)
— Urabe Shyouhei <shyouhei@...>
2012/04/09
#### MRI threads myths and facts #####
[#44220] Re: Questions about thread performance (with benchmark included)
— Rodrigo Rosenfeld Rosas <rr.rosas@...>
2012/04/09
Hi Urabe, thank you for your input, but I think you have
[#43245] [ruby-trunk - Bug #6131][Open] Ctrl-C handler do not work from exec process (Windows) — Luis Lavena <luislavena@...>
10 messages
2012/03/12
[#43279] [ruby-trunk - Bug #6148][Open] ruby_1_9_3 revision conflict — Jon Forums <redmine@...>
4 messages
2012/03/14
[#43313] [ruby-trunk - Feature #6150][Open] add Enumerable#grep_v — Suraj Kurapati <sunaku@...>
17 messages
2012/03/15
[#43325] [ruby-trunk - Bug #6154][Open] Eliminate extending WaitReadable/Writable at runtime — Charles Nutter <headius@...>
25 messages
2012/03/16
[#43326] [ruby-trunk - Bug #6154] Eliminate extending WaitReadable/Writable at runtime
— Charles Nutter <headius@...>
2012/03/16
[#43369] Re: [ruby-trunk - Bug #6154][Open] Eliminate extending WaitReadable/Writable at runtime
— Tanaka Akira <akr@...>
2012/03/17
2012/3/16 Charles Nutter <headius@headius.com>:
[#43334] [ruby-trunk - Bug #6155][Open] Enumerable::Lazy#flat_map raises an exception when an element does not respond to #each — Dan Kubb <dan.kubb@...>
9 messages
2012/03/16
[#43345] [ruby-trunk - Bug #6159][Open] Enumerable::Lazy#inspect — Benoit Daloze <redmine@...>
10 messages
2012/03/16
[#43497] [ruby-trunk - Bug #6179][Open] File::pos broken in Windows 1.9.3p125 — "jmthomas (Jason Thomas)" <jmthomas@...>
24 messages
2012/03/20
[#43502] [ruby-trunk - Feature #6180][Open] to_b for converting objects to a boolean value — "AaronLasseigne (Aaron Lasseigne)" <aaron.lasseigne@...>
17 messages
2012/03/20
[#43529] [ruby-trunk - Bug #6183][Open] Enumerator::Lazy performance issue — "gregolsen (Innokenty Mikhailov)" <anotheroneman@...>
36 messages
2012/03/21
[#43814] [ruby-trunk - Feature #6219][Open] Return value of Hash#store — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
20 messages
2012/03/28
[#43904] [ruby-trunk - Feature #6225][Open] Hash#+ — "trans (Thomas Sawyer)" <transfire@...>
36 messages
2012/03/29
[#43909] [ruby-trunk - Feature #6225][Assigned] Hash#+
— "mame (Yusuke Endoh)" <mame@...>
2012/03/29
[#43923] [ruby-trunk - Feature #6225] Hash#+
— "shyouhei (Shyouhei Urabe)" <shyouhei@...>
2012/03/30
[#43951] [ruby-trunk - Bug #6228][Open] [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "jonforums (Jon Forums)" <redmine@...>
28 messages
2012/03/30
[#43996] [ruby-trunk - Bug #6236][Open] WEBrick::HTTPServer swallows Exception — "regularfry (Alex Young)" <alex@...>
13 messages
2012/03/31
[#44015] [Ruby 1.8 - Bug #6239][Open] super Does Not Pass Modified Rest Args When Originally Empty — "mudge (Paul Mucur)" <mudge@...>
6 messages
2012/03/31
[ruby-core:43990] [ruby-trunk - Feature #5677] IO C API
From:
"MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
Date:
2012-03-31 02:52:52 UTC
List:
ruby-core #43990
Issue #5677 has been updated by MartinBosslet (Martin Bosslet). nobu (Nobuyoshi Nakada) wrote: > > Can't you use rb_io_stdio_file()? > And OpenSSL seems providing BIO_new_fd() too. True, and that's also what I should be using there :) I'll fix it. > > The problem, though, is that only rb_io_bufwrite is public API in io.h, > > rb_io_bufread is declared private in internal.h and rb_cloexec_dup is > > semi-public in intern.h. > > > > Could we make rb_io_bufread public API in io.h as well? What about > > rb_cloexec_dup? > > It doesn't seem bad to me. > > They are all added to internal.h by akr. I've done a lot of IO in C over the last months, now I have a much clearer picture of it. I think my only problem was that there is no unified read/write that allows working on arbitrary IOs efficiently (I could fall back to rb_funcall, but then I'd give away the performance benefits). I had to make the distinction between IOs based on rb_io_t, between StringIO and raw Strings. I ended up in writing my own wrapper that would abstract away the differences. It would be really nice to have such an abstraction directly in the API. Would this be an option? ---------------------------------------- Feature #5677: IO C API https://bugs.ruby-lang.org/issues/5677#change-25512 Author: MartinBosslet (Martin Bosslet) Status: Assigned Priority: Normal Assignee: akr (Akira Tanaka) Category: core Target version: 2.0.0 This is related to the proposal in [ruby-core:41321][1]. I'd like to take advantage of streaming IO in an extension I am working on. The problem I'm having is that I don't want to call IO#read on the rb_funcall level because that would kill the performance due to wrapping the bytes into Ruby objects back and forth again. I saw two solutions to my problem: 1. Duplicating the file descriptor to obtain a pure FILE* like it is done in ext/openssl/ossl_bio.c[2] and continue working on the raw FILE*. 2. Since I really only need to read and write on the stream, I was looking for public Ruby C API that would support me in the process, and I found - ssize_t rb_io_bufwrite(VALUE io, const void *buf, size_t size) - ssize_t rb_io_bufread(VALUE io, void *buf, size_t size) I think both cases are valid use cases, 1. is likely necessary if there is the need to pass a FILE* on to an external C library, 2. is for cases like mine where there is the need to operate on raw C data types for performance reasons. The problem, though, is that only rb_io_bufwrite is public API in io.h, rb_io_bufread is declared private in internal.h and rb_cloexec_dup is semi-public in intern.h. Could we make rb_io_bufread public API in io.h as well? What about rb_cloexec_dup? [1] http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/41321 [2] https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_bio.c#L17 -- http://bugs.ruby-lang.org/