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
CommitLineData
d1c218bb
TC
1IO 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
7IO 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
51118aed
TR
14IO 1.42 - Jan 20 2020 - Todd Rinaldo
15 * Point IO support to perl/perl5 not dual-life/IO
16
17IO 1.41 - Jan 20 2020 - Todd Rinaldo
18 * Switch pre-release testing to github actions.
19 * Update MANIFEST with new test.
20
312da715
RS
21IO 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
e2f95f3c
RS
26IO 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
4273b0cc
TR
37IO 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
55IO 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
64IO 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
70IO 1.34 -- Sep 10 2014 (Not released to CPAN)
71 * Add dual life support for use of op_sibling in IO.xs
72
73IO 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
78IO 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
89IO 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
97IO 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
103IO 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
110IO 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
113IO 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
116IO 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
7475ca45
GB
149IO 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
eb1c4873
GB
153IO 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
c4a6f826 175 * Coverity correctly reports that gv might (just) be NULL. So don't dereference it if it is.
eb1c4873
GB
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
90b9a713
GB
181IO 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
35a60386
RGS
193IO 1.22 -- Mon Sep 5 10:29:35 CDT 2005
194
195 * Update with changes made in perl core distribution
854822f1 196
cf7fe8a2
GS
197Change 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
213Change 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
218Change 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
245Change 133 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr)
246
247 t/io_sock.t
248 - Added checks for blocking()
249
250Sun Apr 12 1998 <gbarr@pobox.com> (Graham Barr)
251
252 IO.xs
253 - enclosed newCONSTSUB in #ifdef as _64 now defines it.
254
255Thu Mar 19 1998 <gbarr@pobox.com> (Graham Barr)
256
257 All
258 - Changed copyright/distribution policy back to be the same as perl
259
260Sun 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
267Thu 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
276Mon 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
284Tue Jan 27 1998 <gbarr@pobox.com> (Graham Barr)
285
286 IO::Socket::INET
287 - removed carp if $^W
288
289*** Patch 1.1804
290
291Sat 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
307Mon 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
330Wed 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
337Wed 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
351Mon Oct 13 1997 <gbarr@pobox.com> (Graham Barr)
352
353 IO.xs, IO::Handle
c4a6f826
PAR
354 - 1.17 broke compatibility with 5.003, small tweaks to restore
355 compatibility
cf7fe8a2
GS
356
357 t/io_const.t
c4a6f826 358 - Added new test to ensure backwards compatibility with constants
cf7fe8a2
GS
359 is not broken
360
361Wed 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
376Sun 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
388Fri 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
401Mon 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
c4a6f826 418 - Added fsync, but will not be available for use
cf7fe8a2
GS
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
c4a6f826 429 - Added XS sub "constant" for backwards compatibility
cf7fe8a2
GS
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
c4a6f826 436 - Fixed usage messages to be consistent
cf7fe8a2
GS
437
438*** Release 1.15
439
440Sun 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
c4a6f826 446 does not use blessed refs
cf7fe8a2
GS
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
c4a6f826 451 o These changes happened sometime before the release of 1.15
cf7fe8a2
GS
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
458Tue 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
468Thu 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
477Mon 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
493Thu 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
502Tue 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
509Fri 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.