Revision history for Perl extension Parallel::DataPipe.
0.14  Mon Apr 27 2026
    - Optimized _get_data and _put_data using 4-argument sysread() and
      syswrite() with offsets. This avoids unnecessary string copying and
      repeated concatenations.
    - Added buffer pre-allocation in _get_data to improve memory efficiency
      and performance for large payloads.

0.13  Tue Apr 26 2026
    - Fixed silent data corruption in _get_data when sysread() transfers fewer
      bytes than requested (permitted by POSIX). The payload loop now accumulates
      bytes via concatenation and advances $offset by the actual byte count.
      Both _get_data and _put_data add `use bytes` so that length() counts raw
      bytes when handling Sereal/Storable payloads.
    - Fixed _get_data and _put_data to die immediately when sysread() or
      syswrite() returns 0 or a short count on the 4-byte frame header or EOF
      marker, preventing silent framing corruption and infinite loops.
    - Fixed DESTROY to guard against undef mypid (partially-constructed objects
      no longer produce an "uninitialized value" warning).
    - Fixed t/large-payload-integrity.t to replace the // operator with a
      defined() ternary for compatibility with the declared Perl 5.8 floor.
    - Added regression tests: t/large-payload-integrity.t (partial sysread via
      IO::Handle override) and t/framing-edge-cases.t (partial header syswrite,
      zero-byte payload sysread, DESTROY warning on bare object).
0.11  Fri Jun 21
    - Fixed bug when destructor was invoked from children (shoud be only from main thread)
      With this fix it works ok on perl 5.8.9, put 5.8.0 as a requirement
    - run() implemented as pipeline {opt};
     so input_iterator is no longer supported. use <input> instead.
0.10  Thu Jun 20
    - Increased min version of Perl to 5.14.2
0.09  Thu Jun 20
    Merging changes from pull request by Shlomi Fish. Thank you, Shlomi.
    - Add t/pod.t and fix broken POD. (-- Shlomi Fish)
    - Add t/style-trailing-space.t to check for trailing space.

0.08  Thu May 23
    - pipeline() documentation was slightly improved

0.07  Mon May  22
    - pipeline - algorithm of n parallel unix-like pipes implemented, see pipeline() doc

0.06  Mon May  20
    - The interface and behaviour of Parallel::DataPipe::run has been changed.
      For details, see:
      https://github.com/okharch/Parallel-DataPipe/commit/d99a9cb2078e32dfb37d80e24c335f0006184639

0.05  Sun May  19
    - Minor fix for PIPE_MAX_CHUNK_SIZE: be pessimistic unless the platform
      has good news for us.
      16KB for Linux & Cygwin, 1KB for others. This allowed the tests to
      pass on OpenBSD.

0.04  Sat May  18
    - At last! multiplatform implementation. Tests are passing for MSWin32,
      Freebsd, Cygwin, Linux

0.03  Tue May  14 2013
    - Fix for #85289: tests hang on Windows. Added a test to test if
      pipes work as intented [okharch]

0.02  Mon May  13 2013
	- Override SIG{TERM} for child to exit silently from data processors
	- Get rid of single-thread logic
    - Fixup for input_iterator’s returned value, so it can return an
      empty string ('') and 0 for processing. Only undef is considered
      as EOF .
	- $_ is also passed as parameter (@_ or $_[0]) to the process_data closure

0.01  Wed May  8 07:44:03 2013
	- Original version; created by h2xs 1.23 with options
		-AX Parallel::DataPipe
