Revision history for System-Command

1.121 2020-06-03 BOOK
    - No functional change: update Changes and contributors

1.120 2020-06-03 BOOK
    - System::Command does not clobber $? and $! any more
      when DESTOYed (GH #27 by MMCCLIMON)

1.119 Mon Apr 2 2018
    - Various test fixes for Win32 and "perl in space" (ETJ)
    - document the 'input_record_separator' option to loop_on()

1.118 Thu Jun 2 2016
    - Avoid calling waitpid() more than necessary in _reap()
    - Close all pipes when loop_on() ends successfully, and avoid a warning
      when the exit value is not available
    - Fix t/20-zombie.t, which was broken in Strawberry Perl (viviparous)

1.117 Sun Jan 17 2016
    - New method loop_on() allows to run callbacks on the output/errput

1.116 Sun Jan 3 2016
    [BUG FIX]
    - Fix for the 'interactive' option (RKINYON)
    - Remove a warning that was showing up under Perl 5.6

1.115 Mon Sep 28 2015
    [BUG FIX]
    - ensure test counts and skip counts remain tied together (MITHALDU)
    - for each option/feature, document in which version it appeared

1.114 Fri Sep 18 2015
    - added proper accessors for the following System::Command::Reaper
      attributes: sdtin, stdout, stderr, exit, signal, core
      (after discussion with TIMB in RT #106330)
    - added 'exit', 'signal', 'core' options to System::Command, to allow
      direct update of variables at reaping time
    - added the 'interactive' option, to make it possible to run interactive
      commands directly with system (after discussion with TIMB in RT #106330)

1.113 Sun Sep 6 2015
    - add proper accessors for the following System::Command::Reaper
      attributes: sdtin, stdout, stderr, exit, signal, core
      (after discussion with TIMB in RT #106330)
    - System::Command::close() now returns the object itself (RT #106867)
    - document the return value of close() can be used to access the
      value of exit, signal and core

1.112 Sat Jul 25 2015
    - the 'trace' option now also outputs some information about process
      termination and status (as requested by TIMB in RT #106046)

1.111 Sat Feb 14 2015
    - throw an error on empty string env variables on Win32 (MITHALDU)
      (RT #99824)
    - minor documentation improvements
    - added the list of contributors to the META file

1.110 Wed Aug 27 2014
    - the 'setpgrp' option can be used to enable/disable the call to
      setpgrp() in the spawned process
    - t/10-command.t now ignores environment variables set by ConEmu

1.109 Wed Jul 2 2014
    [BUG FIX]
    - fix the test failures on Solaris, thanks to Wolfgang Pecho
      (RT #82857). The reaper code was actually buggy (since v1.03!)
      and only accidentally worked on platforms where WNOHANG == 1
      (which was most of them)

1.108 Wed Feb 26 2014
    - the 'trace' option makes it possible to see exactly which commands
      were spawned, with their options (including environment)
    - style fixes

1.107 Sun Oct 20 2013
    - zombies do not exist under Win32, so no need to warn about
      waitpid return value (many thanks to MITHALDU for his
      continued help in testing on this platform)
    - removed duplicated NAME section
    - more zombie quotes in System::Command::Reaper comments

1.106 Sat Oct 12 2013
    - brought back System::Command::Reaper, which properly deals
      with zombies
    - execute the command in its own process group whenever possible
      (thanks to Vincent Pit)
    - test for the zombie processes is not TODO anymore
    - tests for the timely destruction of the reaper are back

1.105 Sat Oct 5 2013
    - add a TODO test for the zombie processes created in certain cases
    - various other test improvements

1.104 Thu Sep 12 2013
    - fixed for Perl versions < 5.8.9
    - minor documentation improvements
    - switch to Dist::Zilla for maintaining the distribution

1.103 Mon Jul 29 2013
    - rewrote the _spawn code to work properly under Plack
    - version 1.100 and 1.102 re-introduced old bugs: they
      have been squished again, and tests fixed to prevent

1.102 Fri Jul 26 2013
    - ported an older fix from Git::Repository, to make System::Command
      work with modules that do bad things to STDIN, STDOUT and STDERR
      (thanks to Todd Rinaldo for his 2010 patch to Git::Repository)
      [work done during the patch -p0 hackathon]

1.101 Thu Jul 11 2013
    - various minor test improvements (thanks to Oleg Gashev and mokko)
    - minor documentation improvements

1.100 Sun Apr 14 2013
    - use a IPC::Run-based implementation on Win32
    - thanks to a lot of testing help from Christian Walde (MITHALDU)
      the test suite passes on Win32
    - while working on this, we established that kill 0, $pid is broken
      under Win32 (reported to the perl5-porters mailing-list via

1.09 Sun Dec  9 2012
    - list all dependencies and the github public repo in the META files
      (RT #81302)
    - use Symbol::gensym to create anonumous GLOBs (github #4)

1.08 Mon Nov 26 2012
    - remove a superfluous eval {} that was hiding open3 exception
      (RT #80171)
    - set a handler for the PIPE signal only if Perl knows about it

1.07 Wed Apr 18 03:00:50 CEST 2012
    - t/20-zombie.t sometimes failed because of a race condition.
      I'm now testing my assumptions, make the test in question a
      little bit useless, and closing RT #74959

1.06 Sun Jan  8 00:36:40 CET 2012
    - add tests that show that I don't understand what I'm doing
      with STDIN/OUT/ERR, and remove the offending code (RT #73614)

1.05 Fri Jul  8 09:16:25 CEST 2011
    - make spawn() work properly with subclasses

1.04 Tue Jun  7 00:47:13 CEST 2011
    - allow removing variables from the environment by setting
      keys with an 'undef' value in the 'env' option
    - tests for the import options
    - added tests that were created for version 1.02 to the MANIFEST

1.03 Thu Mar 17 22:47:38 CET 2011
    - removed all the System::Command::Reaper logic which, while
      being really nice, didn't actually add any value, and made
      things more complex

1.02 Tue Mar 15 20:27:29 CET 2011
    - new method is_terminated() allows to inquire about the child
      process state
    - added a relatively sane behaviour when a SIGCHLD handler exists
    - warns when such a SIGCHLD handler may prevent prevent the
      capture of status information at the death of a child process
    - added a -quiet option to silence the warning
    - ported fixes from Git::Repository to work with modules that do
      bad things to STDIN, STDOUT and STDERR (thanks to Todd Rinaldo)

1.01 Tue Feb  1 00:13:33 CET 2011
    - new shortcut class method: spawn()

1.00 Wed Jan 20 00:50:17 CET 2011
    - Generic version of the Git::Repository::Command process spawner
    - No work has been put on the Win32 version yet.