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