LATEST in kgio-2.10.0 vs LATEST in kgio-2.11.0
- old
+ new
@@ -1,18 +1,29 @@
-=== kgio 2.10.0 - slimming down... / 2015-09-06 08:12 UTC
+=== kgio 2.11.0 - reverting 2.10.0 breakage / 2016-12-16 22:56 UTC
- 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.
+ 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.
- Our poll(2) wrapper now uses rb_hash_clear if available,
- reducing global method cache dependence.
+ This release does not affect known users outside of Rainbows!,
+ but we may have unknown users, too.
- shortlog of changes since 2.9.3:
+ The attempt at a pure Ruby version of autopush had flaws and
+ regressions in real-world testing, so that was abandoned.
- 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
+ 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