io_splice 4.3.0 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +0 -2
- data/.gitignore +1 -2
- data/{.wrongdoc.yml → .olddoc.yml} +3 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +0 -5
- data/README +39 -7
- data/archive/.gitignore +3 -0
- data/archive/slrnpull.conf +4 -0
- data/ext/io_splice/io_splice_ext.c +10 -10
- data/io_splice.gemspec +6 -9
- data/lib/io/splice.rb +1 -1
- data/pkg.mk +28 -39
- metadata +32 -57
- data/Rakefile +0 -33
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dcadc5a4c0bc52553768f5d4571f3630668e841a
|
4
|
+
data.tar.gz: 3f3b773ece8adb9a746e315145a3b75fb21e4fed
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 500904b87fe0360f1860968fe9d0997568f7f5918685f763419a2097d229a1aa2cec521809c5382ac8404cdf2804105de179976d0ebc48a622c8c5669d1ea2d4
|
7
|
+
data.tar.gz: 87019a4a269b7bda7873921697bf33d0017bbf4f73c7784670066486fcb426205300253cab147fea77069d8e13d0cbd7319b378f9f05f58d6ac3b7176b5b72e7
|
data/.document
CHANGED
data/.gitignore
CHANGED
@@ -2,4 +2,6 @@
|
|
2
2
|
cgit_url: http://bogomips.org/ruby_io_splice.git
|
3
3
|
git_url: git://bogomips.org/ruby_io_splice.git
|
4
4
|
rdoc_url: http://bogomips.org/ruby_io_splice/
|
5
|
-
|
5
|
+
public_email: ruby-io-splice@bogomips.org
|
6
|
+
private_email: bofh@bogomips.org
|
7
|
+
ml_url: http://bogomips.org/ruby-io-splice/
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
all::
|
2
2
|
RCOV = rcov
|
3
3
|
RSYNC_DEST := bogomips.org:/srv/bogomips/ruby_io_splice
|
4
|
-
rfproject := qrp
|
5
4
|
rfpackage := io_splice
|
6
5
|
include pkg.mk
|
7
|
-
ifneq ($(VERSION),)
|
8
|
-
release::
|
9
|
-
$(RAKE) publish_news VERSION=$(VERSION)
|
10
|
-
endif
|
11
6
|
rcov: build
|
12
7
|
$(RCOV) -I lib:ext/io_splice $(test_unit)
|
13
8
|
.PHONY: rcov
|
data/README
CHANGED
@@ -87,14 +87,46 @@ don't email the git mailing list or maintainer with io_splice patches.
|
|
87
87
|
== Contact
|
88
88
|
|
89
89
|
All feedback (bug reports, user/development discussion, patches, pull
|
90
|
-
requests) go to the mailing list: mailto:ruby
|
90
|
+
requests) go to the mailing list: mailto:ruby-io-splice@bogomips.org
|
91
|
+
|
92
|
+
Send patches (from "git format-patch") with "git send-email" and do not
|
93
|
+
send HTML email or attachments. We are very responsive to email and you
|
94
|
+
will usually get a response within 24-72 hours.
|
91
95
|
|
92
96
|
== Mailing List Archives
|
93
97
|
|
94
|
-
|
95
|
-
|
96
|
-
{
|
97
|
-
|
98
|
+
We operate a {public-inbox}[http://public-inbox.org/] which
|
99
|
+
feeds the mailing list. You may subscribe either using
|
100
|
+
{ssoma}[http://ssoma.public-inbox.org/] or by sending a mail
|
101
|
+
to mailto:ruby-io-splice+subscribe@bogomips.org
|
102
|
+
|
103
|
+
ssoma is a mail archiver/fetcher using git. It operates in a similar
|
104
|
+
fashion to tools such as slrnpull, fetchmail, or getmail. ssoma
|
105
|
+
subscription instructions:
|
106
|
+
|
107
|
+
URL=git://bogomips.org/ruby-io-splice
|
108
|
+
LISTNAME=ruby-io-splice
|
109
|
+
|
110
|
+
# to initialize a maildir (this may be a new or existing maildir,
|
111
|
+
# ssoma will not touch existing messages)
|
112
|
+
# If you prefer mbox, use mbox:/path/to/mbox as the last argument
|
113
|
+
# You may also use imap://$MAILSERVER/INBOX for an IMAP account
|
114
|
+
# or imaps:// for an IMAPS account, as well.
|
115
|
+
ssoma add $LISTNAME $URL maildir:/path/to/maildir
|
116
|
+
|
117
|
+
# read with your favorite MUA (only using mutt as an example)
|
118
|
+
mutt -f /path/to/maildir # (or /path/to/mbox)
|
119
|
+
|
120
|
+
# to keep your mbox or maildir up-to-date, periodically run:
|
121
|
+
ssoma sync $LISTNAME
|
122
|
+
|
123
|
+
# your MUA may modify and delete messages from the maildir or mbox,
|
124
|
+
# this does not affect ssoma functionality at all
|
125
|
+
|
126
|
+
# to sync all your ssoma subscriptions
|
127
|
+
ssoma sync
|
128
|
+
|
129
|
+
# You may wish to sync in your cronjob
|
130
|
+
ssoma sync --cron
|
98
131
|
|
99
|
-
*
|
100
|
-
* http://bogomips.org/ruby_io_splice/archives/
|
132
|
+
* http://bogomips.org/ruby-io-splice/
|
data/archive/.gitignore
ADDED
@@ -125,8 +125,8 @@ static void * WITHOUT_GVL(rb_blocking_function_t *func, void *data1,
|
|
125
125
|
|
126
126
|
struct splice_args {
|
127
127
|
int fd_in;
|
128
|
-
off_t *off_in;
|
129
128
|
int fd_out;
|
129
|
+
off_t *off_in;
|
130
130
|
off_t *off_out;
|
131
131
|
size_t len;
|
132
132
|
unsigned flags;
|
@@ -167,7 +167,7 @@ static ssize_t do_splice(int argc, VALUE *argv, unsigned dflags)
|
|
167
167
|
a.fd_in = check_fileno(io_in);
|
168
168
|
a.fd_out = check_fileno(io_out);
|
169
169
|
bytes = (ssize_t)io_run(nogvl_splice, &a);
|
170
|
-
if (bytes
|
170
|
+
if (bytes < 0) {
|
171
171
|
if (errno == EINTR)
|
172
172
|
continue;
|
173
173
|
if (waitall && errno == EAGAIN) {
|
@@ -238,7 +238,7 @@ static VALUE my_splice(int argc, VALUE *argv, VALUE self)
|
|
238
238
|
|
239
239
|
if (n == 0)
|
240
240
|
rb_eof_error();
|
241
|
-
if (n
|
241
|
+
if (n < 0)
|
242
242
|
rb_sys_fail("splice");
|
243
243
|
return SSIZET2NUM(n);
|
244
244
|
}
|
@@ -264,7 +264,7 @@ static VALUE trysplice(int argc, VALUE *argv, VALUE self)
|
|
264
264
|
|
265
265
|
if (n == 0)
|
266
266
|
return Qnil;
|
267
|
-
if (n
|
267
|
+
if (n < 0) {
|
268
268
|
if (errno == EAGAIN)
|
269
269
|
return sym_EAGAIN;
|
270
270
|
rb_sys_fail("splice");
|
@@ -309,7 +309,7 @@ static ssize_t do_tee(int argc, VALUE *argv, unsigned dflags)
|
|
309
309
|
a.fd_in = check_fileno(io_in);
|
310
310
|
a.fd_out = check_fileno(io_out);
|
311
311
|
bytes = (ssize_t)io_run(nogvl_tee, &a);
|
312
|
-
if (bytes
|
312
|
+
if (bytes < 0) {
|
313
313
|
if (errno == EINTR)
|
314
314
|
continue;
|
315
315
|
if (waitall && errno == EAGAIN) {
|
@@ -366,7 +366,7 @@ static VALUE my_tee(int argc, VALUE *argv, VALUE self)
|
|
366
366
|
|
367
367
|
if (n == 0)
|
368
368
|
rb_eof_error();
|
369
|
-
if (n
|
369
|
+
if (n < 0)
|
370
370
|
rb_sys_fail("tee");
|
371
371
|
|
372
372
|
return SSIZET2NUM(n);
|
@@ -391,7 +391,7 @@ static VALUE trytee(int argc, VALUE *argv, VALUE self)
|
|
391
391
|
|
392
392
|
if (n == 0)
|
393
393
|
return Qnil;
|
394
|
-
if (n
|
394
|
+
if (n < 0) {
|
395
395
|
if (errno == EAGAIN)
|
396
396
|
return sym_EAGAIN;
|
397
397
|
rb_sys_fail("tee");
|
@@ -402,9 +402,9 @@ static VALUE trytee(int argc, VALUE *argv, VALUE self)
|
|
402
402
|
|
403
403
|
struct vmsplice_args {
|
404
404
|
int fd;
|
405
|
+
unsigned flags;
|
405
406
|
struct iovec *iov;
|
406
407
|
unsigned long nr_segs;
|
407
|
-
unsigned flags;
|
408
408
|
};
|
409
409
|
|
410
410
|
static void * nogvl_vmsplice(void *ptr)
|
@@ -476,7 +476,7 @@ static void advance_vmsplice_args(struct vmsplice_args *a, long n)
|
|
476
476
|
* This may allow the kernel to avoid data copies in some cases.
|
477
477
|
* but is (probably) of limited usefulness in Ruby. If you have
|
478
478
|
* use cases or ideas for making this more useful for Ruby users,
|
479
|
-
* please tell us at ruby
|
479
|
+
* please tell us at ruby-io-splice@bogomips.org!
|
480
480
|
*
|
481
481
|
* Also consider the "sendfile" RubyGem or IO.copy_stream in Ruby 1.9
|
482
482
|
* if you want to do zero-copy file transfers to pipes or sockets. As
|
@@ -520,7 +520,7 @@ static VALUE my_vmsplice(int argc, VALUE * argv, VALUE self)
|
|
520
520
|
a.fd = check_fileno(io);
|
521
521
|
n = (ssize_t)io_run(nogvl_vmsplice, &a);
|
522
522
|
|
523
|
-
if (n
|
523
|
+
if (n < 0) {
|
524
524
|
if (errno == EAGAIN) {
|
525
525
|
if (a.flags & SPLICE_F_NONBLOCK)
|
526
526
|
rb_sys_fail("vmsplice");
|
data/io_splice.gemspec
CHANGED
@@ -1,26 +1,23 @@
|
|
1
1
|
# -*- encoding: binary -*-
|
2
2
|
ENV["VERSION"] or abort "VERSION= must be specified"
|
3
3
|
manifest = File.readlines('.manifest').map! { |x| x.chomp! }
|
4
|
-
require '
|
5
|
-
extend
|
4
|
+
require 'olddoc'
|
5
|
+
extend Olddoc::Gemspec
|
6
6
|
name, summary, title = readme_metadata
|
7
7
|
|
8
8
|
Gem::Specification.new do |s|
|
9
9
|
s.name = %q{io_splice}
|
10
10
|
s.version = ENV["VERSION"].dup
|
11
11
|
s.authors = ["Ruby io_splice hackers"]
|
12
|
-
s.date = Time.now.utc.strftime('%Y-%m-%d')
|
13
12
|
s.description = readme_description
|
14
|
-
s.email = %q{ruby
|
13
|
+
s.email = %q{ruby-io-splice@bogomips.org}
|
15
14
|
s.extensions = %w(ext/io_splice/extconf.rb)
|
16
15
|
s.extra_rdoc_files = extra_rdoc_files(manifest)
|
17
16
|
s.files = manifest
|
18
|
-
s.homepage =
|
17
|
+
s.homepage = Olddoc.config['rdoc_url']
|
19
18
|
s.summary = summary
|
20
|
-
s.rdoc_options = rdoc_options
|
21
|
-
s.rubyforge_project = %q{qrp}
|
22
19
|
s.test_files = Dir['test/test_*.rb']
|
23
|
-
s.add_development_dependency('
|
20
|
+
s.add_development_dependency('olddoc', '~> 1.0')
|
24
21
|
|
25
|
-
|
22
|
+
s.licenses = %w(LGPL) # accessor not compatible with older RubyGems
|
26
23
|
end
|
data/lib/io/splice.rb
CHANGED
data/pkg.mk
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
RUBY = ruby
|
2
2
|
RAKE = rake
|
3
3
|
RSYNC = rsync
|
4
|
-
|
4
|
+
OLDDOC = olddoc
|
5
|
+
RDOC = rdoc
|
5
6
|
|
6
7
|
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
7
8
|
@./GIT-VERSION-GEN
|
@@ -44,44 +45,39 @@ $(ext_dl): $(ext_src) $(ext_pfx_src) $(ext_pfx)/$(ext)/Makefile
|
|
44
45
|
$(MAKE) -C $(@D)
|
45
46
|
lib := $(lib):$(ext_pfx)/$(ext)
|
46
47
|
build: $(ext_dl)
|
48
|
+
else
|
49
|
+
build:
|
47
50
|
endif
|
48
51
|
|
49
|
-
pkg_extra
|
50
|
-
|
51
|
-
$(
|
52
|
+
pkg_extra += GIT-VERSION-FILE NEWS LATEST
|
53
|
+
NEWS: GIT-VERSION-FILE .olddoc.yml
|
54
|
+
$(OLDDOC) prepare
|
55
|
+
LATEST: NEWS
|
52
56
|
|
53
57
|
manifest:
|
54
58
|
$(RM) .manifest
|
55
59
|
$(MAKE) .manifest
|
56
60
|
|
57
|
-
.manifest:
|
61
|
+
.manifest: $(pkg_extra)
|
58
62
|
(git ls-files && for i in $@ $(pkg_extra); do echo $$i; done) | \
|
59
63
|
LC_ALL=C sort > $@+
|
60
64
|
cmp $@+ $@ || mv $@+ $@
|
61
65
|
$(RM) $@+
|
62
66
|
|
63
|
-
doc:: .document .
|
64
|
-
find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
|
67
|
+
doc:: .document .olddoc.yml $(pkg_extra) $(PLACEHOLDERS)
|
68
|
+
-find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
|
65
69
|
-find ext -type f -name '*.rbc' -exec rm -f '{}' ';'
|
66
70
|
$(RM) -r doc
|
67
|
-
$(
|
71
|
+
$(RDOC) -f oldweb
|
72
|
+
$(OLDDOC) merge
|
68
73
|
install -m644 COPYING doc/COPYING
|
69
|
-
install -m644
|
74
|
+
install -m644 NEWS doc/NEWS
|
75
|
+
install -m644 NEWS.atom.xml doc/NEWS.atom.xml
|
76
|
+
install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
|
70
77
|
|
71
78
|
ifneq ($(VERSION),)
|
72
79
|
pkggem := pkg/$(rfpackage)-$(VERSION).gem
|
73
80
|
pkgtgz := pkg/$(rfpackage)-$(VERSION).tgz
|
74
|
-
release_notes := release_notes-$(VERSION)
|
75
|
-
release_changes := release_changes-$(VERSION)
|
76
|
-
|
77
|
-
release-notes: $(release_notes)
|
78
|
-
release-changes: $(release_changes)
|
79
|
-
$(release_changes):
|
80
|
-
$(WRONGDOC) release_changes > $@+
|
81
|
-
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
|
82
|
-
$(release_notes):
|
83
|
-
$(WRONGDOC) release_notes > $@+
|
84
|
-
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
|
85
81
|
|
86
82
|
# ensures we're actually on the tagged $(VERSION), only used for release
|
87
83
|
verify:
|
@@ -117,23 +113,9 @@ $(pkgtgz): manifest fix-perms
|
|
117
113
|
|
118
114
|
package: $(pkgtgz) $(pkggem)
|
119
115
|
|
120
|
-
|
121
|
-
# make tgz release on RubyForge
|
122
|
-
@echo rubyforge add_release -f \
|
123
|
-
-n $(release_notes) -a $(release_changes) \
|
124
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
|
125
|
-
@echo gem push $(pkggem)
|
126
|
-
@echo rubyforge add_file \
|
127
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkggem)
|
128
|
-
release:: verify package $(release_notes) $(release_changes)
|
129
|
-
# make tgz release on RubyForge
|
130
|
-
rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
|
131
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
|
116
|
+
release:: verify package
|
132
117
|
# push gem to RubyGems.org
|
133
118
|
gem push $(pkggem)
|
134
|
-
# in case of gem downloads from RubyForge releases page
|
135
|
-
rubyforge add_file \
|
136
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkggem)
|
137
119
|
else
|
138
120
|
gem install-gem: GIT-VERSION-FILE
|
139
121
|
$(MAKE) $@ VERSION=$(GIT_VERSION)
|
@@ -144,15 +126,13 @@ test_units := $(wildcard test/test_*.rb)
|
|
144
126
|
test: test-unit
|
145
127
|
test-unit: $(test_units)
|
146
128
|
$(test_units): build
|
147
|
-
$(RUBY) -I $(lib) $@
|
129
|
+
$(RUBY) -I $(lib) $@ $(RUBY_TEST_OPTS)
|
148
130
|
|
149
131
|
# this requires GNU coreutils variants
|
150
132
|
ifneq ($(RSYNC_DEST),)
|
151
133
|
publish_doc:
|
152
134
|
-git set-file-times
|
153
135
|
$(MAKE) doc
|
154
|
-
find doc/images -type f | \
|
155
|
-
TZ=UTC xargs touch -d '1970-01-01 00:00:06' doc/rdoc.css
|
156
136
|
$(MAKE) doc_gz
|
157
137
|
$(RSYNC) -av doc/ $(RSYNC_DEST)/
|
158
138
|
git ls-files | xargs touch
|
@@ -160,9 +140,18 @@ endif
|
|
160
140
|
|
161
141
|
# Create gzip variants of the same timestamp as the original so nginx
|
162
142
|
# "gzip_static on" can serve the gzipped versions directly.
|
163
|
-
doc_gz: docs = $(shell find doc -type f ! -regex '
|
143
|
+
doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.gz$$')
|
164
144
|
doc_gz:
|
165
145
|
for i in $(docs); do \
|
166
146
|
gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
|
147
|
+
check-warnings:
|
148
|
+
@(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
|
149
|
+
do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
|
150
|
+
|
151
|
+
ifneq ($(PLACEHOLDERS),)
|
152
|
+
$(PLACEHOLDERS):
|
153
|
+
echo olddoc_placeholder > $@
|
154
|
+
endif
|
167
155
|
|
168
156
|
.PHONY: all .FORCE-GIT-VERSION-FILE doc test $(test_units) manifest
|
157
|
+
.PHONY: check-warnings
|
metadata
CHANGED
@@ -1,69 +1,51 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
name:
|
3
|
-
aW9fc3BsaWNl
|
2
|
+
name: io_splice
|
4
3
|
version: !ruby/object:Gem::Version
|
5
|
-
version: 4.
|
6
|
-
prerelease:
|
4
|
+
version: 4.4.0
|
7
5
|
platform: ruby
|
8
6
|
authors:
|
9
|
-
-
|
10
|
-
UnVieSBpb19zcGxpY2UgaGFja2Vycw==
|
7
|
+
- Ruby io_splice hackers
|
11
8
|
autorequire:
|
12
9
|
bindir: bin
|
13
10
|
cert_chain: []
|
14
|
-
date:
|
11
|
+
date: 2015-01-11 00:00:00.000000000 Z
|
15
12
|
dependencies:
|
16
13
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
d3Jvbmdkb2M=
|
14
|
+
name: olddoc
|
19
15
|
requirement: !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
16
|
requirements:
|
22
|
-
- -
|
23
|
-
fj4=
|
17
|
+
- - "~>"
|
24
18
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
26
|
-
MS41
|
19
|
+
version: '1.0'
|
27
20
|
type: :development
|
28
21
|
prerelease: false
|
29
22
|
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
23
|
requirements:
|
32
|
-
- -
|
33
|
-
fj4=
|
24
|
+
- - "~>"
|
34
25
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
36
|
-
|
37
|
-
|
38
|
-
file
|
39
|
-
|
26
|
+
version: '1.0'
|
27
|
+
description: |-
|
28
|
+
The splice family of Linux system calls can transfer data between file
|
40
29
|
descriptors without the need to copy data into userspace. Instead of a
|
41
|
-
|
42
30
|
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
|
43
|
-
|
44
|
-
|
45
|
-
email: !binary |-
|
46
|
-
cnVieS5pby5zcGxpY2VAbGlicmVsaXN0Lm9yZw==
|
31
|
+
buffer.
|
32
|
+
email: ruby-io-splice@bogomips.org
|
47
33
|
executables: []
|
48
34
|
extensions:
|
49
|
-
-
|
50
|
-
ZXh0L2lvX3NwbGljZS9leHRjb25mLnJi
|
35
|
+
- ext/io_splice/extconf.rb
|
51
36
|
extra_rdoc_files:
|
52
37
|
- README
|
53
38
|
- LICENSE
|
54
39
|
- NEWS
|
55
|
-
- ChangeLog
|
56
40
|
- lib/io/splice.rb
|
57
41
|
- lib/io/splice/mri_18.rb
|
58
42
|
- ext/io_splice/io_splice_ext.c
|
59
|
-
- LATEST
|
60
43
|
files:
|
61
|
-
- .document
|
62
|
-
- .gitignore
|
63
|
-
- .manifest
|
64
|
-
- .
|
44
|
+
- ".document"
|
45
|
+
- ".gitignore"
|
46
|
+
- ".manifest"
|
47
|
+
- ".olddoc.yml"
|
65
48
|
- COPYING
|
66
|
-
- ChangeLog
|
67
49
|
- GIT-VERSION-FILE
|
68
50
|
- GIT-VERSION-GEN
|
69
51
|
- GNUmakefile
|
@@ -71,7 +53,8 @@ files:
|
|
71
53
|
- LICENSE
|
72
54
|
- NEWS
|
73
55
|
- README
|
74
|
-
-
|
56
|
+
- archive/.gitignore
|
57
|
+
- archive/slrnpull.conf
|
75
58
|
- examples/splice-cp.rb
|
76
59
|
- examples/splice-tee.rb
|
77
60
|
- ext/io_splice/extconf.rb
|
@@ -86,38 +69,30 @@ files:
|
|
86
69
|
- test/test_io_splice_eintr.rb
|
87
70
|
- test/test_io_splice_in_full.rb
|
88
71
|
homepage: http://bogomips.org/ruby_io_splice/
|
89
|
-
licenses:
|
72
|
+
licenses:
|
73
|
+
- LGPL
|
74
|
+
metadata: {}
|
90
75
|
post_install_message:
|
91
|
-
rdoc_options:
|
92
|
-
- -t
|
93
|
-
- io_splice - zero-copy pipe I/O for Linux and Ruby
|
94
|
-
- -W
|
95
|
-
- http://bogomips.org/ruby_io_splice.git/tree/%s
|
76
|
+
rdoc_options: []
|
96
77
|
require_paths:
|
97
78
|
- lib
|
98
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
80
|
requirements:
|
101
|
-
- -
|
81
|
+
- - ">="
|
102
82
|
- !ruby/object:Gem::Version
|
103
83
|
version: '0'
|
104
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
85
|
requirements:
|
107
|
-
- -
|
86
|
+
- - ">="
|
108
87
|
- !ruby/object:Gem::Version
|
109
88
|
version: '0'
|
110
89
|
requirements: []
|
111
|
-
rubyforge_project:
|
112
|
-
|
113
|
-
rubygems_version: 1.8.23
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.4.5
|
114
92
|
signing_key:
|
115
|
-
specification_version:
|
93
|
+
specification_version: 4
|
116
94
|
summary: zero-copy pipe I/O for Linux and Ruby
|
117
95
|
test_files:
|
118
|
-
-
|
119
|
-
|
120
|
-
-
|
121
|
-
dGVzdC90ZXN0X2lvX3NwbGljZS5yYg==
|
122
|
-
- !binary |-
|
123
|
-
dGVzdC90ZXN0X2lvX3NwbGljZV9laW50ci5yYg==
|
96
|
+
- test/test_io_splice_in_full.rb
|
97
|
+
- test/test_io_splice.rb
|
98
|
+
- test/test_io_splice_eintr.rb
|
data/Rakefile
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# -*- encoding: binary -*-
|
2
|
-
require 'wrongdoc'
|
3
|
-
cgit_url = Wrongdoc.config[:cgit_url]
|
4
|
-
git_url = Wrongdoc.config[:git_url]
|
5
|
-
|
6
|
-
desc "post news article to rubyforge"
|
7
|
-
task :publish_news do
|
8
|
-
require 'rubyforge'
|
9
|
-
spec = Gem::Specification.load('io_splice.gemspec')
|
10
|
-
tmp = Tempfile.new('rf-news')
|
11
|
-
_, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
|
12
|
-
tmp.puts subject
|
13
|
-
tmp.puts
|
14
|
-
tmp.puts spec.description.strip
|
15
|
-
tmp.puts ""
|
16
|
-
tmp.puts "* #{spec.homepage}"
|
17
|
-
tmp.puts "* #{spec.email}"
|
18
|
-
tmp.puts "* #{git_url}"
|
19
|
-
tmp.print "\nChanges:\n\n"
|
20
|
-
tmp.puts body
|
21
|
-
tmp.flush
|
22
|
-
system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
|
23
|
-
msg = File.readlines(tmp.path)
|
24
|
-
subject = msg.shift
|
25
|
-
blank = msg.shift
|
26
|
-
blank == "\n" or abort "no newline after subject!"
|
27
|
-
subject.strip!
|
28
|
-
body = msg.join("").strip!
|
29
|
-
|
30
|
-
rf = RubyForge.new.configure
|
31
|
-
rf.login
|
32
|
-
rf.post_news('qrp', subject, body)
|
33
|
-
end
|