Revision history for Perl extension Command-Run

1.02 2026-07-05T01:19:46Z

    - Fix PerlIO encoding layer accumulation on STDIN/STDOUT in
      nofork mode.  Layer changes are now undone before restoring
      the handles, so long-running processes no longer degrade.
      With the fix, nofork with :encoding is 50x faster than
      before (316/s -> 15,997/s) and raw mode is optional rather
      than necessary.
    - Raw mode no longer leaks the :utf8 flag to the caller's
      standard filehandles.

1.01 2026-06-03T08:12:11Z

    - Tmpfile: add raw mode (new(raw => 1)) for byte-transparent
      temporary files, opening the handle with :raw instead of
      :encoding(utf8) so byte streams (qx// output, pre-encoded UTF-8)
      are stored and read back unchanged without double encoding

1.00 2026-04-27T01:50:48Z

    - Tmpfile: probe fd-path with the actual allocated fd to detect
      FreeBSD without fdescfs (where /dev/fd/0,1,2 exist but /dev/fd/N
      for N>2 do not); prefer /proc/self/fd over /dev/fd; path() now
      returns undef when no usable fd-path is available

0.9903 2026-02-21T10:10:36Z

    - Add nofork option for fork-free code reference execution
    - Add raw option to avoid PerlIO :encoding(utf8) overhead and leak
    - Optimize nofork tmpfile reuse (truncate+seek instead of recreate)
    - Protect caller's $_ with local $_ in nofork execution
    - Add STDOUT binmode in nofork mode (symmetry with STDIN)
    - Add comprehensive NOFORK AND RAW MODE documentation

0.9902 2026-01-16T11:24:17Z

    - Remove new(@command) style; use command => [...] or ->command() instead

0.9901 2026-01-15T10:32:46Z

    - Add with() method for fluent parameter setting
    - Add stdout/stderr capture via scalar references
    - run() parameters are now temporary (don't modify object state)
    - Remove setstdin from public API (use with(stdin => ...) instead)
    - Add PARAMETERS section to documentation

0.99 2026-01-15T05:49:39Z

    - Initial release
    - Execute external commands or Perl code references
    - Capture stdout with flexible stderr handling
      (pass-through, redirect to stdout, or separate capture)
    - Output accessible via /dev/fd/N path for external commands
    - Method chaining support
    - Derived from App::cdif::Command

