CINXE.COM
ChangeLog - metacpan.org
<!DOCTYPE html> <html lang="en-US"> <head> <title>ChangeLog - metacpan.org</title> <link rel="preload" as="fetch" href="/account/login_status" crossorigin="anonymous" /> <link href="/assets/style-XFEQ536G.css" rel="stylesheet" type="text/css"> <script src="/assets/main-WXBSEDQJ.js" type="module"></script> <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of IO - MetaCPAN" href="/dist/IO/releases.rss" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"> <link rel="shortcut icon" href="/static/icons/favicon.ico"> <link rel="apple-touch-icon" sizes="152x152" href="/static/icons/apple-touch-icon.png"> <link rel="search" href="/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN"> <script async src="https://perl-ads.perlhacks.com/perl-ads.js"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-E82Q2V8LVD"></script> </head> <body> <nav class="navbar navbar-default" role="navigation"> <div class="header-logo-large hidden-xs"> <a href="/" tabindex="0"> <svg class="logo" aria-label="MetaCPAN"> <use class="logo" href="/static/images/metacpan-logo.svg#logo" /> </svg> </a> </div> <div class="header-logo-icon visible-xs"> <a href="/"> <svg class="logo" aria-label="MetaCPAN"> <use class="logo" href="/static/images/metacpan-logo.svg#dots" /> </svg> </a> </div> <ul class="nav navbar-nav menu-items hidden-xs hidden-sm"> <li><a href="/about">About</a></li> <li><a href="/about/sponsors">Sponsor</a></li> <li><a href="https://grep.metacpan.org/">grep::cpan</a></li> <li><a href="/recent">Recent</a></li> <li><a href="/about/faq">FAQ</a></li> <li><a href="/tools">Tools</a></li> <li><a href="https://fastapi.metacpan.org/">API</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <button type="button" class="searchbar-btn visible-xs visible-sm"> <i class="fa fa-search button-fa-icon"></i> </button> <form action="/search" class="searchbar-form visible-md visible-lg search-form form-horizontal"> <input type="hidden" name="size" id="metacpan_search-size" value="20"> <div class="form-group"> <div class="search-group"> <i class="fa fa-search"></i> <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value=""> </div> </div> </form> <li class="icon-slidepanel visible-xs visible-sm"> <button data-toggle="slidepanel" data-target=".slidepanel"> <span class="button-fa-icon"> <i class="fa fa-bars slidepanel-open"></i> <i class="fa fa-times slidepanel-close"></i> </span> </button> </li> <li class="dropdown login-dropdown show-logged-in"> <button type="button" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i> <i class="fas fa-chevron-down"></i> </button> <ul class="dropdown-menu"> <li><a href="/account/identities">Identities</a></li> <li><a href="/account/profile">Profile</a></li> <li><a href="/account/favorite/list">Favorites</a></li> <li> <a href="#" type="button" class="logout-button"> Logout </a> </li> </ul> </li> <li class="dropdown login-dropdown show-logged-out"> <button type="button" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-user button-fa-icon avatar-placeholder" aria-hidden="true"></i> <i class="fas fa-chevron-down"></i> </button> <ul class="dropdown-menu"> <li> <a href="/login/github"> <i class="fab fa-github fa-fw"></i> GitHub </a> </li> <li> <a href="/login/twitter"> <i class="fab fa-twitter fa-fw"></i> Twitter </a> </li> <li> <a href="/login/google"> <i class="fab fa-google fa-fw"></i> Google </a> </li> </ul> </li> <li class="dropdown login-dropdown hide-logged-in hide-logged-out"> <button> <i class="fa fa-user button-fa-icon" aria-hidden="true"></i> </button> </li> </ul> </nav> <div class="page-content "> <div id="perl-ad-target" class="top-notify-banner perl-ad-target"> </div> <nav class="sidebar"> <div class="slidepanel"> <ul class="nav-list "> <li class="nav-header">Tools</li> <li> <a data-keyboard-shortcut="g d" href="/release/TODDR/IO-1.55">Release Info</a> </li> <li> <a data-keyboard-shortcut="g a" href="/author/TODDR">Author</a> </li> <li> </li> <li><a href="https://fastapi.metacpan.org/source/TODDR/IO-1.55/ChangeLog">Raw code</a></li> <li><a href="/release/TODDR/IO-1.55/source/ChangeLog">Permalink</a></li> <li> <a href="/release/TODDR/IO-1.55/raw/ChangeLog?download=1">Download</a> </li> <li><button class="btn-link pod-toggle pod-hidden"><span class="hide-pod">Hide</span><span class="show-pod">Show</span> Pod</button></li> <li class="nav-header">Info</li> <li>428 lines of code</li> <li>0 lines of pod</li> <li>19.97K bytes</li> </ul> </div> </nav> <div class="content-navigation"> <div class="breadcrumbs"> <a data-keyboard-shortcut="g s" href="/release/TODDR/IO-1.55/source">TODDR / IO-1.55</a> / ChangeLog </div> </div> <main class="content"> <pre id="metacpan_source" class="line-numbers pod-toggle pod-hidden" data-pod-lines=""><code class="language-plain">IO 1.55 * XS changes for getline/getlines to support reference counted stacks * moved the binmode method from IO::File to IO::Handle, since all types of IO handle support layers https://github.com/Perl/perl5/issues/17457 * IO::Select documentation updates IO 1.54 * fix the blocking() method on Windows https://github.com/Perl/perl5/issues/17455 IO 1.52 * Replace "define<tab>" with "define<space>" in poll.h IO 1.51 * #20201 bump dist/IO to v1.51, due to PR 19663 * [doc] Update IO::Handle synopsis. Add `my` to examples for better practice. * Update IO::File synopsis. Add `my` to examples for better practice. * Update IO::Dir synopsis. Add `my` to examples for better practice. * IO::Socket::UNIX: Add proper hyperlink in pod * IO::Socket::INET: Use proper hyperlink in pod * IO::Pipe: Use proper hyperlink in pod * IO::Handle: Use proper hyperlink in pod * Fix dist/IO/poll.h for mingw-w64 runtimes 9.0 and later IO 1.50 * Bump to 1.50 after cpantesters run. IO 1.49_01 * Update IO.xs to conform to ppport.h 3.68 recommendations IO 1.49 * Send bug reports to https://github.com/perl/perl5/issues * dist/IO/IO.xs: Rmv defns that ppport.h supplies IO 1.48 * Fix for undefined warning in GH #18238 IO 1.47 * Implement sync() for win32 * Add missing quotes to IO::Socket::INET example IO 1.46 * style: Detabify indentation of the C code maintained by the core. * Update search.cpan.org URLs IO 1.45 * Put IO::Socket constructor error messages in $IO::Socket::errstr as well as $@, to encourage better practices IO 1.44 * IO::Handle::error() now checks both the input and output stream for error. This is an issue for sockets and character devices. GH #6799 * IO::Handle::clearerr() now clears the error on both input and output streams. IO 1.43 * only cache the protocol for sockets when one is supplied, otherwise protocol could return an incorrect protocol. This means that on platforms that don't support SO_PROTOCOL (or don't support it for some socket types) protocol() can now return undef. IO 1.42 - Jan 20 2020 - Todd Rinaldo * Point IO support to perl/perl5 not dual-life/IO IO 1.41 - Jan 20 2020 - Todd Rinaldo * Switch pre-release testing to github actions. * Update MANIFEST with new test. IO 1.41_50 -- Dec 16 2019 - Ricardo Signes * [ TRIAL RELEASE ] * Loading IO is now threadsafe, avoiding the core bug reported as GH #14816. Implemented by converting getline() and getlines() to XS code. IO 1.41 -- Dec 12 2019 - Ricardo Signes * [ TRIAL RELEASE ] * import the latest from blead, so some changes may be in intermediate versions found only in releases of perl5 * (perl #133936) make send() a bit saner * (perl #133936) document differences between IO::Socket::* and builtin * (perl #133936) ensure TO is honoured for UDP $sock->send() * Remove vestiges of mpeix support (removed in 5.17.x) * Documentation formatting fixes * Improve isolation of tests as they run IO 1.38 -- Apr 19 2018 - Todd Rinaldo * Remove pre 5.8 logic from code base. * Bump all IO modules to 1.38 and set required Perl to 5.8.1 * Fix for perl #125723 * IO test: adjust require for non CORE perl * IO::Handle - fix precedence issue * Document IO::Select error detection * Rely on C89 <time.h> * (perl #130856) deal with unpack_sockaddr_un() croaking * Switch most open() calls to three-argument form. * (perl #129788) IO::Poll: fix memory leak * (perl #128095) check pack_sockaddr_un()'s return value * dist/: remove . from @INC when loading optional modules * Fix IO::Handle documentation mangled by a manually applied patch * Make IO::Poll->poll call _poll even with an empty fd array * Fix assertion when calling IO::Poll::_poll() with an empty fd array * Some BSD implementations might have <sys/poll.h> instead of <poll.h>. IO 1.36 -- Jun 26 2015 (Not released to CPAN) * dist/IO/t/io_utf8argv.t: Generalize for non-ASCII platforms. * VMS does have fsync, so configure accordingly. * Skip obsolete skip in io_xs.t. * Label conditionally unused. * Use <sys/poll.h> if available before going select(). * Fix assertion when calling IO::Poll::_poll() with an empty fd array * Make IO::Poll->poll call _poll even with an empty fd array IO 1.35 -- Dec 7 2014 (Not released to CPAN) * Change OP_SIBLING to OpSIBLING * Improve connected() doc * IRIX: fsync documented to fail on read-only filehandles. * Convert all use of Test.pm to Test::More IO 1.34 -- Sep 10 2014 (Not released to CPAN) * Add dual life support for use of op_sibling in IO.xs IO 1.33 -- Jun 10 2014 (Not released to CPAN) * wrap op_sibling field access in OP_SIBLING* macros * Make like() and unlike() in t/test.pl refuse non-qr// arguments * Further simplify the sockatmark(). (And do not assign the fd in PREINIT.) IO 1.32 -- May 29 2014 (Not released to CPAN) * fcntl receiving -1 from fileno, fcntl failing. * Also very few spots of negative numgroups for getgroups(), and fgetc() return, but almost all checking is for fcntl. * merged fix for perl #121743 and perl #121745: hopefully picked up all the fixes-to-fixes from the ticket. * Fix for Coverity perl5 CIDs 28990..29003,29005..29011,29013,45354,45363,49926 * Argument cannot be negative (NEGATIVE_RETURNS) fd is passed to a parameter that cannot be negative. * 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. * 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). * In the second set of issues a potentially negative number is potentially passed to getgroups(). * 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. IO 1.31 -- Mar 4 2014 (Not released to CPAN) * 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. * IO::Socket::INET: Handle getprotobyn{ame,umber} not being available * dist/IO/t/io_pipe.t: Work around android only having an inbuilt echo * Add examples for IO::Socket::UNIX. * Remove an old note about autoflush from the POD. * ioctl on perlhost platforms take a char*, not void* IO 1.30 -- Nov 13 2013 (Not released to CPAN) * IO.xs: fix compiler warning * [perl #75156] fix the return value and bits for removing a closed fh * [perl #75156] tests for deleting a closed handle from IO::Select * Fix IO::Socket::connect() in the light of $! changes IO 1.29 -- Mar 15 2013 (Not released to CPAN) * Use separate macros for byte vs uv Unicode * IO::Socket::INET's documentation for its Listen parameter was somewhat misleading, and the documentation for IO::Socket::Unix even more so. * Address [perl #117999] for now by skipping known bad test on AIX * [perl #117791] Clarify that write does not match the C 'write' semantics * fix dist/IO/t/cachepropagate-unix.t IO 1.28 -- Feb 2 2013 (Not released to CPAN) * dist/IO/IO.xs: Silence compiler warning. This variable is unused, doesn't need to be declared. IO 1.27 -- Feb 17 2013 (Not released to CPAN) * [perl #116322]: getc() and ungetc() with unicode failure (ungetc() had no knowledge of UTF-8. ) IO 1.26 -- May 13 2009 - Jan 16 2013 (Not released to CPAN) * portability to Haiku-OS for the cachepropagate-*.t tests * sync() on a read-only file handle doesn't work on cygwin either * [rt.cpan.org #61577] VMS doesn't support UNIX sockets * add Test::More as a prereq to Makefile.PL * document the limitations of protocol(), sockdomain(), socktype() * [rt.cpan.org #61577] try to populate socket info when not cached * [rt.cpan.org #61577] propagate socket details on accept * [rt.cpan.org #61577] sockdomain and socktype undef on newly accepted sockets * [perl #64772] check both input and output file handles for sync (This allows sync() to be called on directory handles.) * [perl #64772] TODO test for sync on read only handle * Convert some tests to Test::More * Correct bug report email in docs from perl5-porters@perl.org to perlbug@perl.org * Remove ‘use File::Spec’ from IO::File (It is not using it any more.) * [RT #36079] Convert ` to '. * use :raw to avoid interference from PERL_UNICODE when creating test data * Make IO::Handle::getline(s) respect the open pragma (RT 66474) * Fix setting sockets nonblocking in Win32 * Use the exception set in select (connect()) to early return when remote end is busy or in non existing port * Keep verbatim pod within 79 cols * Keep verbatim pod in IO.pm within 80 cols * [perl #88486] IO::File does not always export SEEK* * Explicitly force the load of IO::File in IO::Handle (see the discussion in [perl #87940]). * Remove various indirect method calls in IO's docs * IO::Select: allow removal of IO::Handle objects without fileno * Actuall excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It hadn't worked for years before that. * fix various compiler warnings from XS code (void return value) * Only bind to localhost in tests: "in general, tests shouldn't be listening on all interfaces." * Document IO::Socket getsockopt and setsockopt * Convert sv_2mortal(newSVpvn()) to newSVpvn_flags(), for 5.11.0 and later. ( * Minor documentation and typo fixes. * Move IO from ext to dist in core perl IO 1.25 -- Wed May 13 18:37:33 CDT 2009 * Fix test warnings in io_dir * skip tests known to cause a segfault 5.10.0 IO 1.24 -- Mon May 11 14:15:51 CDT 2009 * Make Makefile.PL usable by core and CPAN * Reorganize files to be under lib/ directory structure now matches core perl * Update with following changes made to core perl distribution * Silence Win32 compiler warning in IO.xs * Make non-blocking mode work on Windows in IO::Socket::INET * fix some missing parts of IO::Handle pod * Implement IO::Handle::say the same way as the builtin say(). * Undo io_linenum.t part of #34148. It was io_multihomed.t that I meant (my mistake), and that is now covered by #34155. * watchdog() some IO tests * Some more missing isGV_with_GP()s * IO::Dir destructor * IO::Socket::INET unnecessarily resolves "udp" * IO::Handle->say should ignore $\ (bug #49266) * consting IO.xs * Net::SMTP can't send large messages with bleadperl * Fix for IO::Socket send method * Fixes for the test suite on OS/2 * Silence VC++ compiler warnings * IO::Socket's IO.xs fails to compile * IO::Socket::connect returns wrong errno on timeout * Coverity correctly reports that gv might (just) be NULL. So don't dereference it if it is. * Simplify tests for fork() capabilities * Fix syntax error in io_pipe test * Making IO::Socket pass test on Win32 * ext/IO/t/io_unix.t IO 1.23 -- Sat Mar 25 19:28:28 CST 2006 * Adjust the regression tests to use t/test.pl when $ENV{PERL_CORE} is defined * Reduce number of calls to getpeername * Call qualify on format name passed to format_write. Bug reported by Johan Vromans * Reduce calls to getprotobyname/number. Patch from Gisle Aas * Remove references to file TEST used in core so appropriate tests are skipped during an install from CPAN * Add method say to IO::Handle * Performance improvement for IO::File::open * Don't warn about a directory being closed in the DESTROY IO 1.22 -- Mon Sep 5 10:29:35 CDT 2005 * Update with changes made in perl core distribution Change 173 on 1998/07/14 by <gbarr@pobox.com> (Graham Barr) IO::Socket - Added method connected IO.xs - Added check that file * is not null t/io_udp.t - Added check for connected - Made change to catch recv not returning the address, and added a fix to ensure test does not hang t/io_sock.t - Added check for connected. Change 137 on 1998/05/21 by <gbarr@pobox.com> (Graham Barr) IO::Socket::INET - Added checks to all peer* and host* methods for undef Change 134 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr) t/io_sock.t - fix race condition on Solaris & SunOS IO::Handle - Applied patch from Gisle Aas <gisle@aas.no> for documentation update - Applied patch from Kuma <tgy@chocobo.org> changed input_line_number to be on a per-handle basis. IO::File - Applied patch from Gisle Aas <gisle@aas.no> for documentation update IO::Seekable - Applied patch from Gisle Aas <gisle@aas.no> for documentation update added sysseek IO, IO::Socket::INET - documentation update IO.xs - Applied patch from Gisle Aas <gisle@aas.no> for blocking Change 133 on 1998/05/09 by <gbarr@pobox.com> (Graham Barr) t/io_sock.t - Added checks for blocking() Sun Apr 12 1998 <gbarr@pobox.com> (Graham Barr) IO.xs - enclosed newCONSTSUB in #ifdef as _64 now defines it. Thu Mar 19 1998 <gbarr@pobox.com> (Graham Barr) All - Changed copyright/distribution policy back to be the same as perl Sun Feb 15 1998 <gbarr@pobox.com> (Graham Barr) IO::Socket - Fix to ->accept, accept() returns false on error not undef. *** Release 1.19 Thu Feb 5 1998 <gbarr@pobox.com> (Graham Barr) All - change copyright notice IO::Socket::INET - changed configure to accept PeerHost and LocalHost as well as the PeerAddr and LocalAddr arguments. Mon Feb 2 1998 <gbarr@pobox.com> (Graham Barr) IO::Handle - Added printflush so that flush.pl can be depreciated IO::Socket - Remove C<use Config> statement as it was not needed Tue Jan 27 1998 <gbarr@pobox.com> (Graham Barr) IO::Socket::INET - removed carp if $^W *** Patch 1.1804 Sat Jan 17 1998 <gbarr@pobox.com> (Graham Barr) t/io_sock.t - Replaced C<Listen => 0> with C<LocalAddr => 'localhost'> IO/Socket/INET.pm - Modified the MultiHomed code. Now each address for a given host has a timeout of C<Timeout>. - added _get_addr method for doing hostname lookups. Now Net::DNS can be use by sub-classing IO::Socket::INET, Thanks Gisle Aas t/io_multihomed.t - new test added. Thanks Gisle Aas. *** Patch 1.1803 Mon Nov 17 1997 <gbarr@pobox.com> (Graham Barr) poll.c - Added #ifdef I_* tests IO::Socket - Changed initialization of @domain2pkg to fix problem of Domain option not working - Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no> IO::Socket::INET - Change default proto to getprotobyname instead of 'tcp' constant string - Added patch for multi-homed hosts, Thanks to Gisle Aas <gisle@aas.no> t/io_sock.t - Change to test fix for Domain problem fixed in IO::Socket and be more comprehensive, Thanks to Gisle Aas <gisle@aas.no> t/io_unix.t - New test, Thanks to Gisle Aas <gisle@aas.no> *** Patch 1.1802 Wed Nov 12 1997 <gbarr@pobox.com> (Graham Barr) t/io_poll.t - test 4 made an assumption that was not portable, fixed. *** Patch 1.1801 Wed Oct 22 1997 <gbarr@pobox.com> (Graham Barr) IO.xs - change #ifdef's to allow compilation with 5.002 IO::Socket - Fix to ensure that socket is not returned as non-blocking unless the user asks for it t/io_udp.t - Fix to stop endless loop *** Release 1.18 Mon Oct 13 1997 <gbarr@pobox.com> (Graham Barr) IO.xs, IO::Handle - 1.17 broke compatibility with 5.003, small tweaks to restore compatibility t/io_const.t - Added new test to ensure backwards compatibility with constants is not broken Wed Oct 8 1997 <gbarr@pobox.com> (Graham Barr) IO.xs - Added #define's to cope with argument changes to start_subparse from 5.003_22, _23 and _24 IO::Select - Renamed has_error to be has_exception which is more correct, has_error is a wrapper around has_exception with a warning if $^W is set. Makefile.PL - Remove 'linkext' option to WriteMakefile so that static linking should work properly, cannot remember why I added it. Sun Oct 5 1997 <gbarr@pobox.com> (Graham Barr) IO::Pipe - GLOB assignment does not copy the fileno while under -T added checks for undefined fileno, and added fdopen - reader and write can now be called as static methods Makefile.PL - Attempt to locate <poll.h> and define I_POLL if found *** Release 1.17 Fri Sep 26 1997 <gbarr@pobox.com> (Graham Barr) IO.xs - Fix bug in _poll for ANSI C compilers IO::Socket - Split IO::Socket::INET and IO::Socket::UNIX into separate files IO::File - Patch to open() for when file is in current directory. *** Release 1.16 Mon 15 Sep 1997 <gbarr@pobox.com> Graham Barr o New modules - IO::Dir - IO::Poll o IO::Socket - Changed new to call autoflush on the new socket - IO::Socket::INET->new now accepts a single argument - IO::Socket::INET default to protocol 'tcp' o IO::File - Added doc for new_tmpfile o IO::Handle - Removed use of AutoLoader for constants, constants are now defined as constant XS subs - Added fsync, but will not be available for use unless HAS_FSYNC is defined, perls configure does not define this yet. - Moved bootstrap of IO.xs to IO.pm. IO::Handle no longer contains an AUTOLOAD sub in it's ISA hier o IO::Seekable - Remove clearerr, as it is defined in IO.xs o IO.xs - Patched IO.xs with patch from Chip for setvbuf warning - Added XS sub "constant" for backwards compatibility o Misc - Fixed IO::Socket::configure, it was not passing $arg to domain specific package - Changed all $fh variables in IO::Handle to $io and all $fh variables in IO::Socket to $sock as Chip suggested - Fixed usage messages to be consistent *** Release 1.15 Sun 19 Jan 1997 <bodg@tiuk.ti.com> Graham Barr o Updated PODs for IO::Handle and IO::File o Modified IO.xs so that DESTROY gets called on IO::File objects that were created with IO::File->new_tmpfile o Modified the domain2pkg code in IO::Socket so that it does not use blessed refs o Created a new package IO::Pipe::End so that pipe specific stuff can be moved out of IO::Handle. o Added Ilya's OS/2 changes to Pipe.pm and io_pipe.t o These changes happened sometime before the release of 1.15 - added shutdown to IO::Socket - modified connect to not use alarm - modified accept and connect to use IO::Select *** Release 1.14 Tue 24 Dec 1996 <bodg@tiuk.ti.com> Graham Barr o Updated to patches in perl core dist. o Added C<use strict> to all modules o Modified t/io_sock.t, hopefully the race condition has gone o Added close statements to reader/writer in IO::Pipe o IO::Handle::syswrite was calling sysread, fixed :-) *** Release 1.12 Thu 19 Sep 1996 <bodg@tiuk.ti.com> Graham Barr o Modified IO.xs so that it will compile with pre perlio version of perl (ie pre perl5.003_02) o Modified IO::Socket::send so not to pass 4 arguments to send if the socket is connected *** Release 1.10 Mon 11 Sep 1996 <bodg@tiuk.ti.com> Graham Barr o Fixed a bug in IO::Socket which caused DESTROY to be called on a partly initialised connection o Changed IO.xs to use Perlio o Modified usage message to report correct package o Added IO::File::new changes from Chip, to allow PERM to be passed o Added sysread and syswrite methods to IO::Handle o Updated documentation o Fixed a bug in IO::Select that caused a hang if the last handle was removed. o Added count method to IO::Select o Renamed and modified tests so that they can be copied into the perl distribution o Added fcntl and ioctl methods to IO::Handle Thu 25 Jul 1996 <bodg@tiuk.ti.com> Graham Barr o It is now not necessary to call the domain sub-classes of IO::Socket. when connect is called it notes the domain. Domain specific methods, which are normally non-critical, are called via this note-ing. o Added methods to IO::Socket to retrieve the domain, type and protocol of a given socket Tue 23 Jul 1996 <bodg@tiuk.ti.com> Graham Barr o IO::Socket::connect changed how we do timeouts, as it did not work o IO::Handle::new_from_fd removed method call to _ref_fd, which was a leftover from FileHandle Fri 28 Jun 1996 <bodg@tiuk.ti.com> Graham Barr o Modified IO::Socket::UNIX::configure to default to using a socket type of SOCK_STREAM if no type is specified. </code></pre> </main> <div class="content-pagination"> </div> </div> <footer class="footer"> <div class="footer-container"> <div class="footer-social"> <div class="footer-link footer-logo"> <a href="/"> <img src="/static/images/metacpan-logo.svg" alt="MetaCPAN" /> </a> </div> <a class="footer-social-link" href="https://github.com/metacpan"> <i class="fab fa-github-square"></i> </a> <a class="footer-social-link" href="https://fosstodon.org/@metacpan"> <i class="fab fa-mastodon"></i> </a> </div> <div class="footer-links"> <div class="footer-link"> <a href="/about">About</a> </div> <div class="footer-link"> <a href="/about/sponsors">Sponsor</a> </div> <div class="footer-link"> <a href="https://grep.metacpan.org">grep::cpan</a> </div> <div class="footer-link"> <a href="/recent">Recent</a> </div> <div class="footer-link"> <a href="/about/faq">FAQ</a> </div> <div class="footer-link"> <a href="/tools">Tools</a> </div> <div class="footer-link"> <a href="https://fastapi.metacpan.org/">API</a> </div> <div class="footer-link"> <a href="https://www.perl.org/">Perl.org</a> </div> </div> <div class="footer-sponsors"> <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener"> <img class="footer-sponsor-bytemark" src="/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener"> <img class="footer-sponsor-liquidweb" src="/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener"> <img class="footer-sponsor-deriv" src="/static/images/sponsors/deriv.svg" alt="Deriv logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener"> <img class="footer-sponsor-geocode" src="/static/images/sponsors/geocodelogo.svg" alt="Geocode logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener"> <img class="footer-sponsor-fastly" src="/static/images/sponsors/fastly_logo.svg" alt="Fastly logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener"> <img class="footer-sponsor-opencage" src="/static/images/sponsors/open-cage.svg" alt="OpenCage logo"> </a> <!-- Added 2024-07-22 --> <a class="footer-sponsor-link" target="_blank" href="https://www.elastic.co/" rel="noopener"> <img class="footer-sponsor-elastic" src="/static/images/sponsors/elastic.svg" alt="Elastic logo"> </a> <!-- Added 2024-07-22 --> <a class="footer-sponsor-link" target="_blank" href="https://route4me.com/" rel="noopener"> <img class="footer-sponsor-route4me" src="/static/images/sponsors/route4me.png" alt="Route4Me logo"> </a> </div> </div> </footer> <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">Keyboard Shortcuts</h4> </div> <div class="modal-body row"> <div class="col-md-6"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>Global</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>s</kbd> </td> <td>Focus search bar</td> </tr> <tr> <td class="keys"> <kbd>?</kbd> </td> <td>Bring up this help dialog</td> </tr> </tbody> </table> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>GitHub</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>g</kbd> <kbd>p</kbd> </td> <td>Go to pull requests</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>i</kbd> </td> <td>go to github issues (only if github is preferred repository)</td> </tr> </tbody> </table> </div> <div class="col-md-6"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>POD</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>g</kbd> <kbd>a</kbd> </td> <td>Go to author</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>c</kbd> </td> <td>Go to changes</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>i</kbd> </td> <td>Go to issues</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>d</kbd> </td> <td>Go to dist</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>r</kbd> </td> <td>Go to repository/SCM</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>s</kbd> </td> <td>Go to source</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>b</kbd> </td> <td>Go to file browse</td> </tr> </tbody> </table> </div> <div class="col-md-12"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>Search terms</th> </tr> </thead> <tbody> <tr> <td><em>module:</em> (e.g. <a href="/search?q=module%3APlugin">module:Plugin</a>)</td> </tr> <tr> <td><em>distribution:</em> (e.g. <a href="/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td> </tr> <tr> <td><em>author:</em> (e.g. <a href="/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td> </tr> <tr> <td><em>version:</em> (e.g. <a href="/search?q=version%3A1.00">version:1.00</a>)</td> </tr> </tbody> </table> </div> </div> <div class="modal-footer"></div> </div> </div> </div> </body> </html>