Date | Commit message (Collapse) |
|
Ruby 1.8 is long gone, and rb_io_t internals are going private
so we can't assign fptr->pathv and such, so rely on ivars for
that. TCP autopush never seemed worth it, but the ivar fallback
remains in case anybody wants to use it.
|
|
The generic version works for all Rubies
|
|
I have no idea if 1.8 has worked in a while, but maybe it has.
`rb_io_get_io' has been public API since Ruby 1.9.2, so we can
use it everywhere. `rb_io_check_closed' has existed since the
initial cvs2svn imports of Ruby, so it's safe to depend on for
Ruby v1.9.3..v3.0.
|
|
Our mail provider has POP3 support, nowadays, and we need to
more strongly discourage the use of kgio.
|
|
Ref: https://bugs.ruby-lang.org/issues/19057#note-17
Ruby 3.3 no longer fully expose rb_io_t which cause
kgio to think it's being compiled on an older Ruby.
The prefered API to use from Ruby 3.1 onwards is rb_io_descriptor.
Sent-by: Samuel Williams <samuel.williams@oriontransfer.co.nz>
|
|
This release fixes compatibility with GC.compact on Ruby 3.x.
Thanks to Ngan Pham for the patch and Aaron Patterson for the
feedback:
https://yhbt.net/kgio-public/CAAvYYt5Z5f2rMuXO5DMpR1-6uRvu_gXKDvqcyoZ+oNcLiTH39g@mail.gmail.com/T/
kgio remains obsolete and deprecated, and it's primary dependent
will be updated to not depend on it in the future.
|
|
index.html and README.html are identical, so get rid of
it. created.rid has no business being public, anyways.
Our homepage is just a directory listing, nowadays,
to improve discoverability of non-HTML docs.
|
|
Constants defined in Ruby need to be explicitly marked
when made static inside a C extension.
Link: https://yhbt.net/kgio-public/CAAvYYt5Z5f2rMuXO5DMpR1-6uRvu_gXKDvqcyoZ+oNcLiTH39g@mail.gmail.com/T/
Commit-message-by: Eric Wong <e@80x24.org>
|
|
Tor is dropping v2 .onion in favor of more secure (but less
readable) v3 .onion URLs. Zooko's triangle once again :/
(no, we won't support planet-destroying proof-of-work schemes)
|
|
"git request-pull" is not a well-known command, so add a
mention about it to avoid misleading people into thinking
we use a centralized service.
While we're in the area, put an extra link to the HTTPS
archives, since SMTP-based subscriptions are not
centralization-resistant.
Thanks to Ngan Pham for the feedback.
Link: https://yhbt.net/kgio-public/CAAvYYt6ruhhZcA4OmF=NQZ+-j0RJ0vT5f33tUCrREezo5mUCVQ@mail.gmail.com/
|
|
We shouldn't have to deal with ICANN-controlled TLDs at all
|
|
Some doc and warning fixes for newer Rubies.
We're no longer on bogomips.org since it's due
for expiry and I can't pay extortionists for a .org, so
s/bogomips.org/yhbt.net/ for now, and be prepared to move again
when extortionists move onto the .net TLD.
pkg.mk: use --local to "gem install"
pkg.mk: use dark216 theme for Earth Day 2019
test: fix warnings with RUBYOPT=-w
tests: fix unused variable warnings from newer Rubies
test_connect_fd_leak: do not close socket if non-existent
test_syssend: avoid warning on cleanup
build: remove olddoc from the gemspec
doc: remove private email and outdated gmane archives
doc: move from bogomips.org/kgio to yhbt.net/kgio
|
|
.org is being sold to extortionists and I couldn't afford
to pay the bill to renew bogomips.org either way. So kick
it to yhbt.net and be prepared to change when extortionists
move onto the .net TLD...
|
|
I'm not encouraging private bug reports anymore since it's the
sender's job to protect privacy. I have no way to protect
users' privacy, anyways.
Also, the gmane archive is far out-of-date since the move
to bogomips.org, and we're moving again...
|
|
It's an unnecessary dependency for rebuilding the gem.
|
|
We don't want to clutter up logs with warnings for cross-thread
IO#close
|
|
|
|
Newer Rubies warn about more things...
|
|
|
|
(forgot to commit for a few months)
|
|
My Internet connection still sucks :<
|
|
This release fixes a bug affecting the Rainbows! web server
which uses Kgio.accept_class:
https://bogomips.org/rainbows-public/CANp6QoJXRbPLqmOPpG7XmZBc+oYqLWCcq1ipvOyNEQPXDEwx9Q@mail.gmail.com/
* accept: avoid passing unnecessary arg to rb_funcall
|
|
Followup-to commit aa1da2e47c69302f9bdb2ab4990e81d87bbcaf1f
("wait: avoid passing unnecessary args to rb_funcall")
|
|
This release fixes compatibility with Ruby 2.5.0 preview and
release candidates (and thus should be ready for 2.5.0 final)
on some platforms. At least clang 5.0.0 on OpenBSD is affected.
Thanks to Jeremy Evans for the fix.
There's also minor documentation updates since 2.11.0
|
|
The extra arg is unnecessary and causes errors on some systems
(at least clang 5.0.0 on OpenBSD) under Ruby 2.5.0dev.
Note: this may be a regression in Ruby 2.5.0dev itself and might
need to be fixed upstream, as other gems may also break.
cf. https://bogomips.org/kgio-public/20171215053434.GT7579@jeremyevans.local/t/
Acked-by: Eric Wong <e@80x24.org>
[ew: commit message]
|
|
Oops, this is RDoc.
|
|
The extra space put the end inside a <pre> tag for RDoc :<
|
|
Use HTTPS URLs when possible, add links to NNTP archives,
and note we're a deprecated project.
|
|
Mainly this release reverts back to kgio 2.9.3 behavior by
supporting "autopush" functionality in the C extension.
Removing this feature in 2.10.0 was a monumental mistake(*) on
my part which caused a performance regression for ONE known user
of kgio on the deprecated (but supported) Rainbows! server.
This release does not affect known users outside of Rainbows!,
but we may have unknown users, too.
The attempt at a pure Ruby version of autopush had flaws and
regressions in real-world testing, so that was abandoned.
So yeah, kgio will be supported indefinitely even in the face
of internal changes to MRI, but I strongly discourage its use
for new projects.
Users who only support Ruby 2.3 (and later) are encouraged to
use `exception: false` with all *_nonblock methods.
4 changes since 2.10.0:
resurrect Kgio.autopush support in pure Ruby [REVERTED]
reinstate the original (and dangerous) autopush in C
TODO: update with Ruby 2.3 status
test: increase test data sizes to fill socket buffers
(*) - as was making this a separate project, at all
|
|
Some Debian build machines use insanely large socket
buffers, so increase our test buffers to large values to
force EAGAIN: https://bugs.debian.org/830353
In my experience, using setsockopt to clamp buffers to small sizes
can lead to unpredictable stalls, too, so it might not be good
to do in a test case, either.
|
|
Since we're on the cusp of Ruby 2.4, I guess 2.3 features
are stable.
|
|
The regression for existing users was unnacceptable and
completely poor judgement on my part. This change brings
us back to potentially not-future-compatible code which
will impose maintenance burdens on us in the face of
future Ruby changes.
But TODAY, it is the most performant option for folks who
need to use autopush.
Revert "resurrect Kgio.autopush support in pure Ruby"
and "remove autopush support and make it a no-op"
This reverts commits 64dc570f4b99f68b5ed792b36e7e8abc3df74927
and 4347980fa66115425fa8b765353c8b1bfe5dec24.
|
|
This avoids breaking compatibility for existing apps, but
is less performant (although safer and more resilient to future
changes in Ruby) than the previous C version.
|
|
The largely-unused autopush functionality is now a no-op.
Existing applications will probably not notice, and are
better off using MSG_MORE anyways if they're on Linux.
Our poll(2) wrapper now uses rb_hash_clear if available,
reducing global method cache dependence.
shortlog of changes since 2.9.3:
README: remove reference to Rainbows!
writev: update comment on preserving errno
poll: avoid rb_funcall for rb_hash_clear
minor doc updates
remove autopush support and make it a no-op
HACKING: update URL for Message-ID lookup
|
|
Prefer to use our own site since it is free of images+JavaScript
and may load faster if somebody is already reading bogomips.org
and has an open connection and hot DNS cache entry.
|
|
Maintaining global state in a library like kgio is ugly, and it
is not optimal from a performance standpoint compared to using
MSG_MORE.
TCP_CORK and TCP_NOPUSH require extra syscalls so it still offers
sub-optimal performance compared to MSG_MORE.
Instead, server developers should use MSG_MORE if their OS supports
it (and should add MSG_MORE to their OS if lacking it).
|
|
Ruby version changes, dropping Rubinius and MRI 1.8 support,
and clarifying a few other things.
"Linux kernel" coding style is probably a more accurate of what
we've always used as the style is probably better known than K&R
nowadays (and we do try to track Linux kernel changes (and
email-oriented development style) closely).
|
|
rb_funcall will always be slower, and currently hits the
global method cache in MRI.
|
|
Studying malloc implementations for a while, it's completely
reasonable for "free" to alter errno when making syscalls
to release/compact memory.
|
|
Rainbows! never took off and is mostly a stagnant project
at this point; so avoid confusing people with it.
|
|
Most notably there's a new RB_GC_GUARD to fix an occasional segfault at
load time for Ruby 1.8 users thanks to Petr Novodvorskiy for reporting
the issue.
There's been a new mailing list for a few months now at:
kgio-public@bogomips.org
No subscription is required, but if you wish to subscribe
(existing librelist subscribers must resubscribe)
kgio-public+subscribe@bogomips.org
There's also a bunch of code cleanups and packaging
cleanups. Our website is faster now thanks to olddoc:
http://bogomips.org/kgio/
shortlog:
test/lib_read_write: fix trywritev blocking test
new mailing list info: kgio-public@bogomips.org
relax license to allow LGPLv2.1 or later
gemspec: modernize for more recent rubygems
doc: switch to olddoc
remove references to rubyforge and ancient Rubies
TODO: updates for the future of kgio
tryopen: add RB_GC_GUARD for Ruby 1.8
LICENSE: prefer URL to FSF address
cleanup packaging harder
fixup -Wshorten-64-to-32 warnings
cleanup: avoid shadowing rb_str_subseq
cleanup: avoid shadowing rb_ary_subseq
pkg.mk: synchronize with my other projects
gemspec: remove invalid rdoc_options
gemspec: use SPDX license abbreviation
|
|
ref: http://spdx.org/licenses/
|
|
No longer needed for olddoc
|
|
We'll get EXTCONF_ARGS support as well as a muscle-memory-friendly
"make check" alias.
|
|
Define a MY_ARY_SUBSEQ macro which checks arg counts correctly and
avoids throwing off people who may potentially want to debug this
code.
|
|
Define a MY_STR_SUBSEQ macro which checks arg counts correctly and
avoids throwing off people who may potentially want to debug this
code.
|
|
These are emitted by clang on a Ubuntu Trusty amd64 system.
clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5)
|
|
We don't need references to RubyForge or old images crap.
|
|
The FSF has and may move again physically, so the URL should be
more future-proof.
|
|
Calling rb_intern(RSTRING_PTR(err)) was unsafe as the `err'
value could be GC-ed inside rb_intern.
This only affected Ruby 1.8 as Errno.constants returns an
array of Symbols under 1.9+
Thanks to Petr Novodvorskiy for reporting the issue.
ref: <CAHGF7iJk9-wK5WbSiAgQaRye7y2RJttLBpykRBpnKkxFi=ASHg@mail.gmail.com>
Cc: Petr Novodvorskiy <nidd@skytap.com>
Cc: Lara Martin <lmartin@skytap.com>
Cc: Nick Astete <nastete@skytap.com>
|