Files | Admin

Notes:

Release Name: 1.0.0

Notes:
The splice family of Linux system calls can transfer data between file
descriptors without the need to copy data into userspace.  Instead of a
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
buffer.

* http://bogomips.org/ruby_io_splice/
* ruby.io.splice@librelist.com
* git://git.bogomips.org/ruby_io_splice.git

Changes:

io_splice is now easier to use, as it can take IO/File objects in
addition to raw file descriptors as arguments.

IO.vmsplice now always splices buffers in full, since it's too difficult
to use otherwise.  Keep in mind that the usefulness of vmsplice is still
questionable from Ruby and IO.writev (from the "io-extra" gem) is more
flexible as it allows writing to non-pipe descriptors.

There are also some code cleanups and improved documentation.



Changes: GNUmakefile | 35 ++++++- LICENSE | 6 +- README | 10 ++ ext/io_splice/io_splice_ext.c | 198 ++++++++++++++++++++++++++++------------- lib/io/splice.rb | 4 +- local.mk.sample | 55 +----------- test/test_io_splice.rb | 157 +++++++++++++++++++++++++++++++- 7 files changed, 336 insertions(+), 129 deletions(-) commit 33c1653ae4bf8f7a6d0963839b12b8633f876b56 Author: Eric Wong Date: Thu May 27 19:35:15 2010 +0000 Ruby io_splice 1.0.0 commit 744cb76719a0b1659c7358878457eb2f1b003d4d Author: Eric Wong Date: Thu May 27 19:30:52 2010 +0000 cleanup makefiles commit c297d48713553e57cf880f29d67dc97c3a2ebe0e Author: Eric Wong Date: Thu May 27 19:20:04 2010 +0000 test for non-blocking, non-pipe descriptor commit 74d5631ca99e9104faf71b65f382a20dc4a1b160 Author: Eric Wong Date: Thu May 27 19:06:55 2010 +0000 clarify wording in license commit e60aebdd55da2db78780165656ba8c457ecbeb97 Author: Eric Wong Date: Thu May 27 09:35:23 2010 +0000 allow IO(-ish) objects as descriptor arguments This should be more convenient to use than having to remember to call "fileno" every time... commit dfe29268314ea3fce7e7025ff9536821c6f60c9c Author: Eric Wong Date: Thu May 27 09:13:28 2010 +0000 test: enable Ruby warnings commit 2b5ed135add5562e288017ecafc5f41553d22180 Author: Eric Wong Date: Thu May 27 09:08:52 2010 +0000 IO.splice always releases the GVL We can't reliably/efficiently know if the non-pipe descriptor may block, and releasing the GVL is fairly cheap under Linux. commit 419231017fe2789057aeef5cf9c8eec9ad24bc29 Author: Eric Wong Date: Thu May 27 09:05:33 2010 +0000 test: more descriptive Tempfile names commit 88671379426904ac0caa9645cb3cca7fd1d1a2fa Author: Eric Wong Date: Thu May 27 09:04:27 2010 +0000 doc: better explain the need for IO::Splice::F_NONBLOCK commit c9b42fb857f77109d215a0418fd3171f0f5d5b18 Author: Eric Wong Date: Thu May 27 08:08:56 2010 +0000 avoid partial writes on IO.vmsplice unless F_NONBLOCK vmsplice-ing a partial array of strings into a pipe is not very useful under Ruby, so wait for I/O availability if the pipe is full. This code/logic was also contributed to the io-extra gem (by me) for the IO.writev implementation. Signed-off-by: Eric Wong commit bde5844909cd61ecfa3393fba4e9884c083f2fa8 Author: Eric Wong Date: Mon May 24 23:27:14 2010 -0700 split out ARY2IOVEC macro commit c405321e8df7ff71417cc0b6f7b0624e18970655 Author: Eric Wong Date: Sun May 23 13:14:39 2010 -0700 GNUmakefile: switch to RDoc 2.5.x commit d7d6e51dd3c34fd1ab72591e75a0b3950ce3923e Author: Eric Wong Date: Sat May 22 17:18:14 2010 -0700 "Splice" should be a module, not a class We never create IO::Splice objects :x commit d9014ae9f96d98984b035029a3a6211a764274a0 Author: Eric Wong Date: Sat Feb 20 19:33:30 2010 -0800 README: add mailing list archive information commit bcf68797e2cc1d8321d94d3ab629437cf327817c Author: Eric Wong Date: Mon Feb 15 01:40:11 2010 -0800 LICENSE: s/posix_mq/io_linux/