Revision history for File-Raw-Archive

0.02    2026-07-04
        - Archive.xs: PERL_VERSION_GE compat shim for Perls older than
          5.33.3 (macro was missing; caused compile failure on 5.28 and
          below, confirmed by CPAN Testers BINGOS report).
        - Archive.xs: GvCV_set macro fallback for pre-5.14 builds where
          the symbol is not exported.
        - Archive.xs: caller_cx usage guarded behind PERL_VERSION_GE(5,14,0);
          Perl 5.10 and 5.8 fall back to HvNAME(CopSTASH(PL_curcop)).
        - Tested on Perl 5.8, 5.10, 5.14, 5.20, 5.36 via Docker.

0.01    2026-05-05
        - First public release. Archive container reader/writer with a
          plugin API; built-in tar plugin reads ustar (POSIX 1988),
          GNU @LongLink, and PAX extended-header tarballs (every
          real-world tar dialect in active use). Writes ustar / GNU /
          PAX / auto via the `format` option.
        - Sub-second mtime round-trip via PAX `mtime=<sec>.<ns>`.
        - PAX `SCHILY.xattr.*` xattr round-trip; xattrs applied during
          extract on Linux/macOS/FreeBSD via the platform's setxattr.
        - PAX `'g'` global header emission via `global_meta` write
          option; readers inherit global keys until overridden.
        - gzip composition: `compression => 'gzip' | 'auto'` streams
          through libz on the way in/out, keeping RSS bounded.
        - Filtered iteration via `entry_filter` predicate.
        - Parallel extract worker pool: `extract_all($p, $dest,
          parallel => N)` spawns N forked writer workers, each with
          its own pipe carrying length-prefixed Storable jobs.
          Round-robin dispatch with natural backpressure. Errors
          aggregated and croaked as a single message at finish.
          Windows falls back to sequential with a one-time warning.
        - Path-traversal-safe `extract_all` (refuses `..` segments
          and absolute paths unless `unsafe_paths => 1`).
        - Publishes archive_plugin.h via ExtUtils::Depends so sister
          dists (File::Raw::Archive::Zip, ::Cpio, ::Ar) can register
          additional formats.
