This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bump IO to 1.44
[perl5.git] / dist / IO / ChangeLog
1 IO 1.44
2   * IO::Handle::error() now checks both the input and output stream
3     for error.  This is an issue for sockets and character devices.  GH #6799
4   * IO::Handle::clearerr() now clears the error on both input and
5     output streams.
6
7 IO 1.43
8   * only cache the protocol for sockets when one is supplied,
9     otherwise protocol could return an incorrect protocol.  This means
10     that on platforms that don't support SO_PROTOCOL (or don't support
11     it for some socket types) protocol() can now return undef.
12
13
14 IO 1.42 - Jan 20 2020 - Todd Rinaldo
15   * Point IO support to perl/perl5 not dual-life/IO
16
17 IO 1.41 - Jan 20 2020 - Todd Rinaldo
18   * Switch pre-release testing to github actions.
19   * Update MANIFEST with new test.
20
21 IO 1.41_50 -- Dec 16 2019 - Ricardo Signes
22   * [ TRIAL RELEASE ]
23   * Loading IO is now threadsafe, avoiding the core bug reported as GH #14816.
24     Implemented by converting getline() and getlines() to XS code.
25
26 IO 1.41 -- Dec 12 2019 - Ricardo Signes
27   * [ TRIAL RELEASE ]
28   * import the latest from blead, so some changes may be in intermediate
29     versions found only in releases of perl5
30   * (perl #133936) make send() a bit saner
31   * (perl #133936) document differences between IO::Socket::* and builtin
32   * (perl #133936) ensure TO is honoured for UDP $sock->send()
33   * Remove vestiges of mpeix support (removed in 5.17.x)
34   * Documentation formatting fixes
35   * Improve isolation of tests as they run
36
37 IO 1.38 -- Apr 19 2018 - Todd Rinaldo
38   * Remove pre 5.8 logic from code base.
39   * Bump all IO modules to 1.38 and set required Perl to 5.8.1
40   * Fix for perl #125723
41   * IO test: adjust require for non CORE perl
42   * IO::Handle - fix precedence issue
43   * Document IO::Select error detection
44   * Rely on C89 <time.h>
45   * (perl #130856) deal with unpack_sockaddr_un() croaking
46   * Switch most open() calls to three-argument form.
47   * (perl #129788) IO::Poll: fix memory leak
48   * (perl #128095) check pack_sockaddr_un()'s return value
49   * dist/: remove . from @INC when loading optional modules
50   * Fix IO::Handle documentation mangled by a manually applied patch
51   * Make IO::Poll->poll call _poll even with an empty fd array
52   * Fix assertion when calling IO::Poll::_poll() with an empty fd array
53   * Some BSD implementations might have <sys/poll.h> instead of <poll.h>.
54
55 IO 1.36 -- Jun 26 2015 (Not released to CPAN)
56   * dist/IO/t/io_utf8argv.t: Generalize for non-ASCII platforms.
57   * VMS does have fsync, so configure accordingly.
58   * Skip obsolete skip in io_xs.t.
59   * Label conditionally unused.
60   * Use <sys/poll.h> if available before going select().
61   * Fix assertion when calling IO::Poll::_poll() with an empty fd array
62   * Make IO::Poll->poll call _poll even with an empty fd array
63
64 IO 1.35 -- Dec 7 2014 (Not released to CPAN)
65   * Change OP_SIBLING to OpSIBLING
66   * Improve connected() doc
67   * IRIX: fsync documented to fail on read-only filehandles.
68   * Convert all use of Test.pm to Test::More
69
70 IO 1.34 -- Sep 10 2014 (Not released to CPAN)
71   * Add dual life support for use of op_sibling in IO.xs
72
73 IO 1.33 -- Jun 10 2014 (Not released to CPAN)
74   * wrap op_sibling field access in OP_SIBLING* macros
75   *  Make like() and unlike() in t/test.pl refuse non-qr// arguments
76   * Further simplify the sockatmark(). (And do not assign the fd in PREINIT.)
77
78 IO 1.32 -- May 29 2014 (Not released to CPAN)
79   * fcntl receiving -1 from fileno, fcntl failing.
80   * Also very few spots of negative numgroups for getgroups(), and fgetc() return, but almost all checking is for fcntl.
81   * merged fix for perl #121743 and perl #121745: hopefully picked up all the fixes-to-fixes from the ticket.
82   * Fix for Coverity perl5 CIDs 28990..29003,29005..29011,29013,45354,45363,49926
83   * Argument cannot be negative (NEGATIVE_RETURNS) fd is passed to a parameter that cannot be negative.
84   * CIDs 29004, 29012: Argument cannot be negative (NEGATIVE_RETURNS) num_groups is passed to a parameter that cannot be negative and because of CIDs 29005 and 29006 also CID 28924.
85   * In the first set of issues a fd is retrieved from PerlIO_fileno, and that is then used in places like fstat(), fchown(), dup(), etc., without checking whether the fd is valid (>=0).
86   * In the second set of issues a potentially negative number is potentially passed to getgroups().
87   * The CIDs 29005 and 29006 were a bit messy: fixing them needed also resolving CID 28924 where the return value of fstat() was ignored, and for completeness adding two croak calls (with perldiag updates): a bit of a waste since it's suidperl code. 
88
89 IO 1.31 -- Mar 4 2014 (Not released to CPAN)
90   * dist/IO: Allow to be dual-lived - This dual-lived module has not been able to be compiled on releases earlier than 5.10.1.
91   * IO::Socket::INET: Handle getprotobyn{ame,umber} not being available
92   * dist/IO/t/io_pipe.t: Work around android only having an inbuilt echo
93   * Add examples for IO::Socket::UNIX.
94   * Remove an old note about autoflush from the POD.
95   * ioctl on perlhost platforms take a char*, not void*
96
97 IO 1.30 --  Nov 13 2013 (Not released to CPAN)
98   * IO.xs: fix compiler warning
99   * [perl #75156] fix the return value and bits for removing a closed fh
100   * [perl #75156] tests for deleting a closed handle from IO::Select
101   * Fix IO::Socket::connect() in the light of $! changes
102
103 IO 1.29 -- Mar 15 2013 (Not released to CPAN)
104   * Use separate macros for byte vs uv Unicode
105   * IO::Socket::INET's documentation for its Listen parameter was somewhat misleading, and the documentation for IO::Socket::Unix even more so.
106   * Address [perl #117999] for now by skipping known bad test on AIX
107   * [perl #117791] Clarify that write does not match the C 'write' semantics
108   *  fix dist/IO/t/cachepropagate-unix.t
109
110 IO 1.28 -- Feb 2 2013 (Not released to CPAN)
111   * dist/IO/IO.xs: Silence compiler warning. This variable is unused, doesn't need to be declared.
112
113 IO 1.27 -- Feb 17 2013 (Not released to CPAN)
114   * [perl #116322]: getc() and ungetc() with unicode failure (ungetc() had no knowledge of UTF-8. )
115
116 IO 1.26 -- May 13 2009 - Jan 16 2013 (Not released to CPAN)
117   * portability to Haiku-OS for the cachepropagate-*.t tests
118   * sync() on a read-only file handle doesn't work on cygwin either
119   * [rt.cpan.org #61577] VMS doesn't support UNIX sockets
120   * add Test::More as a prereq to Makefile.PL
121   * document the limitations of protocol(), sockdomain(), socktype()
122   * [rt.cpan.org #61577] try to populate socket info when not cached
123   * [rt.cpan.org #61577] propagate socket details on accept
124   * [rt.cpan.org #61577] sockdomain and socktype undef on newly accepted sockets
125   * [perl #64772] check both input and output file handles for sync (This allows sync() to be called on directory handles.)
126   * [perl #64772] TODO test for sync on read only handle
127   * Convert some tests to Test::More
128   * Correct bug report email in docs from perl5-porters@perl.org to perlbug@perl.org
129   * Remove ‘use File::Spec’ from IO::File (It is not using it any more.)
130   * [RT #36079] Convert ` to '.
131   * use :raw to avoid interference from PERL_UNICODE when creating test data
132   * Make IO::Handle::getline(s) respect the open pragma (RT 66474)
133   * Fix setting sockets nonblocking in Win32
134   * Use the exception set in select (connect()) to early return when remote end is busy or in non existing port
135   * Keep verbatim pod within 79 cols
136   * Keep verbatim pod in IO.pm within 80 cols
137   * [perl #88486] IO::File does not always export SEEK*
138   * Explicitly force the load of IO::File in IO::Handle (see the discussion in [perl #87940]).
139   * Remove various indirect method calls in IO's docs
140   * IO::Select: allow removal of IO::Handle objects without fileno
141   * Actuall excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It hadn't worked for years before that.
142   * fix various compiler warnings from XS code (void return value)
143   * Only bind to localhost in tests: "in general, tests shouldn't be listening on all interfaces."
144   * Document IO::Socket getsockopt and setsockopt
145   * Convert sv_2mortal(newSVpvn()) to newSVpvn_flags(), for 5.11.0 and later. (
146   * Minor documentation and typo fixes.
147   * Move IO from ext to dist in core perl
148
149 IO 1.25 -- Wed May 13 18:37:33 CDT 2009
150   * Fix test warnings in io_dir
151   * skip tests known to cause a segfault 5.10.0
152
153 IO 1.24 -- Mon May 11 14:15:51 CDT 2009
154
155   * Make Makefile.PL usable by core and CPAN
156   * Reorganize files to be under lib/ directory structure now matches core perl
157   * Update with following changes made to core perl distribution
158   * Silence Win32 compiler warning in IO.xs
159   * Make non-blocking mode work on Windows in IO::Socket::INET
160   * fix some missing parts of IO::Handle pod
161   * Implement IO::Handle::say the same way as the builtin say().
162   * Undo io_linenum.t part of #34148. It was io_multihomed.t that I meant (my mistake), and that is now covered by #34155.
163   * watchdog() some IO tests
164   * Some more missing isGV_with_GP()s
165   * IO::Dir destructor
166   * IO::Socket::INET unnecessarily resolves "udp"
167   * IO::Handle->say should ignore $\ (bug #49266)
168   * consting IO.xs
169   * Net::SMTP can't send large messages with bleadperl
170   * Fix for IO::Socket send method
171   * Fixes for the test suite on OS/2
172   * Silence VC++ compiler warnings
173   * IO::Socket's IO.xs fails to compile
174   * IO::Socket::connect returns wrong errno on timeout
175   * Coverity correctly reports that gv might (just) be NULL. So don't dereference it if it is.
176   * Simplify tests for fork() capabilities
177   * Fix syntax error in io_pipe test
178   * Making IO::Socket pass test on Win32
179   * ext/IO/t/io_unix.t
180
181 IO 1.23 -- Sat Mar 25 19:28:28 CST 2006
182
183  * Adjust the regression tests to use t/test.pl when $ENV{PERL_CORE} is defined
184  * Reduce number of calls to getpeername
185  * Call qualify on format name passed to format_write. Bug reported by Johan Vromans
186  * Reduce calls to getprotobyname/number. Patch from Gisle Aas
187  * Remove references to file TEST used in core so appropriate tests are skipped
188    during an install from CPAN
189  * Add method say to IO::Handle
190  * Performance improvement for IO::File::open
191  * Don't warn about a directory being closed in the DESTROY
192
193 IO 1.22 -- Mon Sep  5 10:29:35 CDT 2005
194
195  * Update with changes made in perl core distribution
196
197 Change 173 on 1998/07/14 by <gbarr@pobox.com> (Graham Barr)
198
199         IO::Socket
200         - Added method connected
201         
202         IO.xs
203         - Added check that file * is not null
204         
205         t/io_udp.t
206         - Added check for connected
207         - Made change to catch recv not returning the address, and added a fix to
208           ensure test does not hang
209         
210         t/io_sock.t
211         - Added check for connected.
212
213 Change 137 on 1998/05/21 by <gbarr@pobox.com> (Graham Barr)
214
215         IO::Socket::INET
216         - Added checks to all peer* and host* methods for undef
217
218 Change 134 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr)
219
220         t/io_sock.t
221         - fix race condition on Solaris & SunOS
222         
223         IO::Handle
224         - Applied patch from Gisle Aas <gisle@aas.no> for
225             documentation update
226         - Applied patch from Kuma <tgy@chocobo.org>
227             changed input_line_number to be on a per-handle basis.
228         
229         IO::File
230         - Applied patch from Gisle Aas <gisle@aas.no> for
231             documentation update
232         
233         IO::Seekable
234         - Applied patch from Gisle Aas <gisle@aas.no> for
235             documentation update
236             added sysseek
237         
238         IO, IO::Socket::INET
239         - documentation update
240         
241         IO.xs
242         - Applied patch from Gisle Aas <gisle@aas.no> for
243            blocking
244
245 Change 133 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr)
246
247         t/io_sock.t
248         - Added checks for blocking()
249
250 Sun Apr 12 1998 <gbarr@pobox.com> (Graham Barr)
251
252         IO.xs
253         - enclosed newCONSTSUB in #ifdef as _64 now defines it.
254
255 Thu Mar 19 1998 <gbarr@pobox.com> (Graham Barr)
256
257         All
258         - Changed copyright/distribution policy back to be the same as perl
259
260 Sun Feb 15 1998 <gbarr@pobox.com> (Graham Barr)
261
262         IO::Socket
263         - Fix to ->accept, accept() returns false on error not undef.
264
265 *** Release 1.19
266
267 Thu Feb  5 1998 <gbarr@pobox.com> (Graham Barr)
268
269         All
270         - change copyright notice
271         
272         IO::Socket::INET
273         - changed configure to accept PeerHost and LocalHost as well as the
274           PeerAddr and LocalAddr arguments.
275
276 Mon Feb  2 1998 <gbarr@pobox.com> (Graham Barr)
277
278         IO::Handle
279         - Added printflush so that flush.pl can be depreciated
280
281         IO::Socket
282         - Remove C<use Config> statement as it was not needed
283
284 Tue Jan 27 1998 <gbarr@pobox.com> (Graham Barr)
285
286         IO::Socket::INET
287         - removed carp if $^W
288
289 *** Patch 1.1804
290
291 Sat Jan 17 1998 <gbarr@pobox.com> (Graham Barr)
292
293         t/io_sock.t
294         - Replaced C<Listen => 0> with C<LocalAddr => 'localhost'>
295         
296         IO/Socket/INET.pm
297         - Modified the MultiHomed code. Now each address for a given host has
298           a timeout of C<Timeout>.
299         - added _get_addr method for doing hostname lookups. Now Net::DNS can be
300           use by sub-classing IO::Socket::INET, Thanks Gisle Aas
301         
302         t/io_multihomed.t
303         - new test added. Thanks Gisle Aas.
304
305 *** Patch 1.1803
306
307 Mon Nov 17 1997 <gbarr@pobox.com> (Graham Barr)
308
309         poll.c
310         - Added #ifdef I_* tests
311         
312         IO::Socket
313         - Changed initialization of @domain2pkg to fix problem of Domain option
314           not working
315         - Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no>
316         
317         IO::Socket::INET
318         - Change default proto to getprotobyname instead of 'tcp' constant string
319         - Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no>
320         
321         t/io_sock.t
322         - Change to test fix for Domain problem fixed in IO::Socket and be
323           more comprehensive, Thanks to Gisle Aas <gisle@aas.no>
324         
325         t/io_unix.t
326         - New test, Thanks to Gisle Aas <gisle@aas.no>
327
328 *** Patch 1.1802
329
330 Wed Nov 12 1997 <gbarr@pobox.com> (Graham Barr)
331
332         t/io_poll.t
333         - test 4 made an assumption that was not portable, fixed.
334
335 *** Patch 1.1801
336
337 Wed Oct 22 1997 <gbarr@pobox.com> (Graham Barr)
338
339         IO.xs
340         - change #ifdef's to allow compilation with 5.002
341         
342         IO::Socket
343         - Fix to ensure that socket is not returned as non-blocking
344           unless the user asks for it
345
346         t/io_udp.t
347         - Fix to stop endless loop
348
349 *** Release 1.18
350
351 Mon Oct 13 1997 <gbarr@pobox.com> (Graham Barr)
352
353         IO.xs, IO::Handle
354         - 1.17 broke compatibility with 5.003, small tweaks to restore
355           compatibility
356         
357         t/io_const.t
358         - Added new test to ensure backwards compatibility with constants
359           is not broken
360
361 Wed Oct  8 1997 <gbarr@pobox.com> (Graham Barr)
362
363         IO.xs
364         - Added #define's to cope with argument changes to start_subparse
365           from 5.003_22, _23 and _24
366         
367         IO::Select
368         - Renamed has_error to be has_exception which is more correct,
369           has_error is a wrapper around has_exception with a warning if
370           $^W is set.
371         
372         Makefile.PL
373         - Remove 'linkext' option to WriteMakefile so that static linking
374           should work properly, cannot remember why I added it.
375
376 Sun Oct  5 1997 <gbarr@pobox.com> (Graham Barr)
377
378         IO::Pipe
379         - GLOB assignment does not copy the fileno while under -T
380           added checks for undefined fileno, and added fdopen
381         - reader and write can now be called as static methods
382
383         Makefile.PL
384         - Attempt to locate <poll.h> and define I_POLL if found
385
386 *** Release 1.17
387
388 Fri Sep 26 1997 <gbarr@pobox.com> (Graham Barr)
389
390         IO.xs
391         - Fix bug in _poll for ANSI C compilers
392         
393         IO::Socket
394         - Split IO::Socket::INET and IO::Socket::UNIX into separate files
395         
396         IO::File
397         - Patch to open() for when file is in current directory.
398
399 *** Release 1.16
400
401 Mon 15 Sep 1997 <gbarr@pobox.com> Graham Barr
402
403         o New modules
404           - IO::Dir
405           - IO::Poll
406
407         o IO::Socket
408           - Changed new to call autoflush on the new socket
409           - IO::Socket::INET->new now accepts a single argument
410           - IO::Socket::INET default to protocol 'tcp'
411         
412         o IO::File
413           - Added doc for new_tmpfile
414         
415         o IO::Handle
416           - Removed use of AutoLoader for constants, constants are
417             now defined as constant XS subs
418           - Added fsync, but will not be available for use
419             unless HAS_FSYNC is defined, perls configure does not define
420             this yet.
421           - Moved bootstrap of IO.xs to IO.pm. IO::Handle no longer
422             contains an AUTOLOAD sub in it's ISA hier
423
424         o IO::Seekable
425           - Remove clearerr, as it is defined in IO.xs
426
427         o IO.xs
428           - Patched IO.xs with patch from Chip for setvbuf warning
429           - Added XS sub "constant" for backwards compatibility
430
431         o Misc
432           - Fixed IO::Socket::configure, it was not passing $arg to domain
433             specific package
434           - Changed all $fh variables in IO::Handle to $io and all $fh
435             variables in IO::Socket to $sock as Chip suggested
436           - Fixed usage messages to be consistent
437
438 *** Release 1.15
439
440 Sun 19 Jan 1997 <bodg@tiuk.ti.com> Graham Barr
441
442         o Updated PODs for IO::Handle and IO::File
443         o Modified IO.xs so that DESTROY gets called on IO::File
444           objects that were created with IO::File->new_tmpfile
445         o Modified the domain2pkg code in IO::Socket so that it
446           does not use blessed refs
447         o Created a new package IO::Pipe::End so that pipe specific
448           stuff can be moved out of IO::Handle.
449         o Added Ilya's OS/2 changes to Pipe.pm and io_pipe.t
450
451         o These changes happened sometime before the release of 1.15
452           - added shutdown to IO::Socket
453           - modified connect to not use alarm
454           - modified accept and connect to use IO::Select
455
456 *** Release 1.14
457
458 Tue 24 Dec 1996 <bodg@tiuk.ti.com> Graham Barr
459
460         o Updated to patches in perl core dist.
461         o Added C<use strict> to all modules
462         o Modified t/io_sock.t, hopefully the race condition has gone
463         o Added close statements to reader/writer in IO::Pipe
464         o IO::Handle::syswrite was calling sysread, fixed :-)
465
466 *** Release 1.12
467
468 Thu 19 Sep 1996 <bodg@tiuk.ti.com> Graham Barr
469
470         o Modified IO.xs so that it will compile with pre perlio version
471           of perl (ie pre perl5.003_02)
472         o Modified IO::Socket::send so not to pass 4 arguments to send
473           if the socket is connected
474
475 *** Release 1.10
476
477 Mon 11 Sep 1996 <bodg@tiuk.ti.com> Graham Barr
478
479         o Fixed a bug in IO::Socket which caused DESTROY to be called
480           on a partly initialised connection
481         o Changed IO.xs to use Perlio
482         o Modified usage message to report correct package
483         o Added IO::File::new changes from Chip, to allow PERM to be passed
484         o Added sysread and syswrite methods to IO::Handle
485         o Updated documentation
486         o Fixed a bug in IO::Select that caused a hang if the last handle
487           was removed.
488         o Added count method to IO::Select
489         o Renamed and modified tests so that they can be copied into the
490           perl distribution
491         o Added fcntl and ioctl methods to IO::Handle
492
493 Thu 25 Jul 1996 <bodg@tiuk.ti.com> Graham Barr
494
495         o It is now not necessary to call the domain sub-classes of
496           IO::Socket. when connect is called it notes the domain.
497           Domain specific methods, which are normally non-critical, are
498           called via this note-ing.
499         o Added methods to IO::Socket to retrieve the domain, type and
500           protocol of a given socket
501
502 Tue 23 Jul 1996 <bodg@tiuk.ti.com> Graham Barr
503
504         o IO::Socket::connect changed how we do timeouts, as it did not work
505
506         o IO::Handle::new_from_fd removed method call to _ref_fd, which was
507           a leftover from FileHandle
508
509 Fri 28 Jun 1996 <bodg@tiuk.ti.com> Graham Barr
510
511         o Modified IO::Socket::UNIX::configure to default to using a socket
512           type of SOCK_STREAM if no type is specified.