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