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