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/
|