File: NEWS

package info (click to toggle)
ruby-kgio 2.11.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 504 kB
  • sloc: ruby: 2,779; ansic: 2,017; sh: 32; makefile: 5
file content (419 lines) | stat: -rw-r--r-- 15,535 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
=== kgio 2.11.2 - fix Ruby 2.5 compatibility for accept_class / 2018-01-30 21:11 UTC

  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

=== kgio 2.11.1 - fix Ruby 2.5.0dev compatibility / 2017-12-15 19:40 UTC

  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

=== kgio 2.11.0 - reverting 2.10.0 breakage / 2016-12-16 22:56 UTC

  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

=== kgio 2.10.0 - slimming down... / 2015-09-06 08:12 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.

  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

=== kgio 2.9.3 - minor cleanups and fixes / 2015-01-12 08:46 UTC

  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

=== kgio 2.9.2 - avoid deprecated/removed function / 2014-02-15 09:27 UTC

  This release is for compatibility with future releases of mainline ruby,
  as rb_thread_blocking_region is removed in r44955 of ruby trunk
  This also avoids deprecation warnings fo rb_thread_blocking_region
  2.0 and 2.1.

=== kgio 2.9.1 - various Ruby 1.8.7 fixes / 2014-02-05 17:50 UTC

  Thanks to Christopher Rigor for this release.

  Eric Wong (2):
        only define and test kgio_syssend on 1.9+
        various 1.8.7 fixes

=== kgio 2.9.0 - cleanups, bug fixes, minor improvements / 2014-02-04 03:09 UTC

  This adds a new kgio_syssend method for Ruby 1.9+ which behaves
  like BasicSocket#send, but will not raise exceptions on EAGAIN.

  Eric Wong (12):
        test_poll: remove race prone test_poll_EINTR_changed test
        tryopen: remove RARRAY_PTR usage in init
        read_write: remove the rest of RARRAY_PTR usage
        my_writev: stylistic fixes
        Rakefile: kill raa_update task
        avoid downsizing casts
        connect: constify RSTRING-related things
        set RSTRING_MODIFIED where appropriate for Rubinius
        split read_write.c into {read,write,writev}.c
        add kgio_syssend method to wrap send(2)
        write: correct check for various blocking regions
        tryopen: additional debug information for bad Errno values

  Hleb Valoshka (1):
        Don't use deprecated api

=== kgio 2.8.1 - minor improvements and test fixes / 2013-09-11 00:22 UTC

  Improved error reporting for kgio_accept/kgio_tryaccept.
  Minor size reduction throughout.  There are also several
  test case fixes for race conditions.

  Thanks to Hleb Valoshka and the Debian project for all the
  help with this release!

  Eric Wong (7):
        check syscall returns against < 0 instead of == -1
        accept: more informative exception on unknown family
        test_tryopen: skip EACCES test when euid == 0
        test/lib_read_write: account for larger-than-normal pipes
        test_poll: avoid potentially thread-unsafe test
        test_poll: preserve original trap(:USR1) handler
        test_poll: be less dependent on signal handler ordering

  Hleb Valoshka (4):
        Change prefix of temporary sockets to prevent races
        Don't dump 20M in case of failure
        Create own directory for every unix socket in unit tests
        Close tempfile and unlink it immediately.

=== kgio 2.8.0 - TCP Fast Open, writev/trywritev / 2013-01-18 10:52 UTC

  TCP Fast Open in Linux 3.7 and later is now supported
  in the client via Kgio::Socket#kgio_fastopen.

  This release also adds the kgio_writev and
  kgio_trywritev methods, thanks to funny-falcon

=== kgio 2.7.4 - small fixes and cleanups / 2012-03-24 01:15 UTC

  Fix build for platforms lacking both TCP_CORK _and_ TCP_NOPUSH
  There are many test case fixes and cleanups, too.

=== kgio 2.7.3 - compatibility fixes / 2012-03-15 07:11 UTC

  Fixed build and autopush support under Debian GNU/kFreeBSD.
  Test case fixes for timing-sensitive tests.

=== kgio 2.7.2 - for older, and older Rubies / 2012-01-08 03:42 UTC

  Fix a missing #include for Ruby 1.8.5 users.  No need to
  upgrade to this (nor 2.7.1) if you're on a modern version
  of Ruby.

=== kgio 2.7.1 - compatibility with older Rubies / 2012-01-08 01:59 UTC

  This release fixes some compatibility issues with people
  stuck on older versions of Ruby/RubyGems.

  * define RARRAY_PTR/RARRAY_LEN macros for Ruby 1.8.6
  * test/test_autopush: skip strace tests if not available
  * gemspec: disable development dependencies for old systems

=== kgio 2.7.0 - minor updates / 2011-12-13 06:16 UTC

  When running under Ruby trunk/2.0.0dev, all IO objects created
  by kgio will be close-on-exec by default to match the (future)
  2.0.0 behavior.  accept()ed sockets in kgio have always been
  close-on-exec by default..

  Singleton Kgio.accept_* methods are deprecated as the
  kgio_accept/kgio_tryaccept methods all take an additional
  flags argument.

  There are various, test, documentation, and error message
  improvements.

=== kgio 2.6.0 - minor feature update and cleanups / 2011-07-15 02:01 UTC

  We now export SOCK_NONBLOCK, SOCK_CLOEXEC constants in the Kgio
  namespace to make kgio_tryaccept/kgio_accept easier-to-use.
  There are also some minor internal cleanups.

=== kgio 2.5.0 - a minor feature update / 2011-06-20 19:30 UTC

  * Kgio::File.tryopen method added.  It is like File.open
    but won't raise exceptions.  The Kgio::File class includes
    Kgio::PipeMethods, so FIFOs opened through this get the
    kgio_* API.

  * The kgio_wait_*able methods in Kgio::DefaultWaiters
    now accept an optional timeout argument.

=== kgio 2.4.2 - OpenSolaris build fix / 2011-06-14 18:41 UTC

  * adds -lnsl and -lsocket checks for OpenSolaris

=== kgio 2.4.1 - Kgio.poll avoids EINTR, really / 2011-05-21 02:54 UTC

  This release fixes a race condition that could allow
  Errno::EINTR to be raised even though the 2.4.0 release
  was supposed to stop that.

  Nobody uses Kgio.poll, really, so this shouldn't be an issue
  for real code, yet.

=== kgio 2.4.0 - portability fixes and more / 2011-05-05 22:58 UTC

  == All supported platforms (*nix + MRI 1.8+, Rubinius)

  * OpenBSD (and possibly other *BSD) fixes, thanks to Jeremy Evans.

  * kgio_accept and kgio_tryaccept now take an optional second argument
    for flags (like the accept4() flags argument).

  == Ruby 1.9-only things

  * Kgio.poll no longer raises Errno::EINTR to match IO.select.

  == Ruby 1.9 trunk things

  * close() on an active FD in a different thread is better
    handled/detected.

  * copy-on-write for strings is properly triggered

=== kgio 2.3.3 - minor fixes / 2011-03-15 12:09 UTC

  We no longer over-allocate memory for Kgio.poll (1.9.x-only).
  Under Ruby 1.9.3dev, we also use rb_thread_io_blocking_region
  to properly deal with cross-thread IO#close.

=== kgio 2.3.2 - OpenBSD build fix / 2011-02-15 16:56 UTC

  Thanks to Jeremy Evans, this release fixes the build under OpenBSD.

=== kgio 2.3.1 - compatibility fix / 2011-02-14 00:51 UTC

  * connect.c: disable AI_NUMERICSERV

    It's not needed since we already verify the service is a
    numeric port.  AI_NUMERICSERV is not available in older glibc
    (<2.3.4) and probably other old systems.

=== kgio 2.3.0 - MSG_PEEK and poll(2) support / 2011-02-09 10:26 UTC

  recv() with MSG_PEEK for sockets is added with the try*
  interface.  SocketMethods#kgio_trypeek and
  SocketMethods#kgio_peek or Kgio.trypeek for non-Kgio-enabled
  sockets.

  For Ruby 1.9 only: poll(2) is exposed via the Kgio.poll
  singleton method and should provide an alternative for IO.select
  users.

  Both of these new features should work well on modern Unix-like
  operating systems.

=== kgio 2.2.0 - kinder, gentler I/O for the Internets / 2011-02-04 03:07 UTC

  * sockets accept()ed by a TCP_NOPUSH/TCP_CORK listener
    automatically flush on kgio_*read calls if there is pending
    data.  "Kgio.autopush = false" disables this globally,
    and Kgio::Socket also get "kgio_autopush=" to enable/disable
    on a per-object individual basis.

  * ECONNRESET exceptions get empty backtraces for kgio_*read.
    There's nothing a programmer can do about these, so there's
    no point in going through the expensive backtrace generation
    process.

  * Kgio.try* singleton methods added for working with non-Kgio
    enhanced objects.  No more needing to use Object#extend
    and blowing away your method cache to make existing I/O
    objects kinder and gentler.

  * IPv6 support should be complete, systems without a native
    getaddrinfo(3) are now unsupported (and will remain so
    unless somebody complains).

  There should be no other backwards-incompatible changes other
  than requiring getaddrinfo(3) and friends for IPv6 support.

=== kgio 2.1.1 - one small Rubinius fix / 2010-12-26 02:08 UTC

  We now avoid errno side-effects in kgio_wait_*able methods.
  This affects Rubinius, but may affect other Ruby platforms
  (particularly those that use stdio) as well.

=== kgio 2.1.0 - accept improvements and fixes / 2010-12-26 01:07 UTC

  kgio_accept and kgio_tryaccept now take an optional argument
  to override the default Kgio::Socket class that is returned.

  These methods also fall back to using regular accept() if
  kgio was built on a system with accept4() and later run on
  a system without accept4().

=== kgio 2.0.0 - major internal API changes / 2010-11-19 01:18 UTC

  (no code changes from 2.0.0pre1)

  This release should make Kgio easier and more consistent
  to use across a variety of libraries/applications.

  The global Kgio.wait_*able(=) accessor methods are gone in favor
  of having default kgio_wait_readable and kgio_wait_writable
  methods added to all Kgio-using classes.  Sub-classes may (and
  are encouraged to) redefine these if needed.

  Eric Wong (7):
      expand Kgio::*#kgio_read! documentation
      prefer symbolic names for waiting read/writability
      EOFError message matches Ruby's
      README: Gemcutter => RubyGems.org
      update documentation with mailing list info
      add default kgio_wait_*able methods
      switch entirely to kgio_wait_*able methods

=== kgio 2.0.0pre1 - major internal API changes / 2010-11-18 23:16 UTC

  This release should make Kgio easier and more consistent
  to use across a variety of libraries/applications.

  The global Kgio.wait_*able(=) accessor methods are gone in favor
  of having default kgio_wait_readable and kgio_wait_writable
  methods added to all Kgio-using classes.  Sub-classes may (and
  are encouraged to) redefine these if needed.

  Eric Wong (7):
        expand Kgio::*#kgio_read! documentation
        prefer symbolic names for waiting read/writability
        EOFError message matches Ruby's
        README: Gemcutter => RubyGems.org
        update documentation with mailing list info
        add default kgio_wait_*able methods
        switch entirely to kgio_wait_*able methods

=== kgio 1.3.1 - fix zero-length reads / 2010-10-08 22:20 UTC

  kgio_read and kgio_tryread will now return an empty string when
  a length of zero is specified instead of nil (which would signal
  an EOF).  This emulates the behavior of IO#read, IO#readpartial,
  IO#sysread, IO#read_nonblock in core Ruby for consistency.

=== kgio 1.3.0 - bug and usability fixes / 2010-10-08 03:03 UTC

  * make Kgio::WaitWritable and Kgio::WaitReadable symbols
  * trywrite: fix stupid off-by-one error causing corrupt writes
    on retries

=== kgio 1.2.1 - doc and *BSD workarounds / 2010-10-07 07:20 UTC

  This fixes our accept4() wrapper which did not work as expected
  on some *BSD-based systems due to fcntl(fd, F_GETFL) returning
  false information.  Linux 2.6+ users are unnaffected, including
  those without accept4().

  Also some RDoc fixes.

=== kgio 1.2.0 - cleanups and minor improvements / 2010-10-05 23:14 UTC

  The C extension is now split into several files for
  ease-of-maintenance.

  Slightly more common, client-triggerable exceptions (EOFError,
  Errno::EPIPE, Errno::ECONNRESET) are now less expensive as they
  are generated without backtraces.

=== kgio 1.1.0 - flexible accept methods / 2010-09-29 01:17 UTC

  * alternate classes may now be returned by accept/tryaccept
    by setting Kgio.accept_class=

=== kgio 1.0.1 - compatibility fixes / 2010-09-28 03:00 UTC

  * add compatibility for ancient Rubies (1.8.6)
  * linux: fix accept4() support for newer Linux

=== kgio 1.0.0 - initial release / 2010-09-28 00:29 UTC

  A kinder, gentler I/O library for Ruby