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