Revision history for File-Raw-Archive 0.04 2026-08-31 - Builds on Windows: sys/wait.h and the fork(2) parallel extractor are POSIX-only, and mkdir/lstat/symlink/fchmod are spelled differently or absent there. - NO_XSLOCKS, so Strawberry's PERL_IMPLICIT_SYS cannot rewrite this dist's allocator against its own C cores. - Archives and extracted files are opened in binary mode. - An entry named with backslashes or a drive letter is refused as an unsafe path. 0.03 2026-08-24 - Fix the module failing to load on perls older than 5.22 with "Undefined symbol: OpHAS_SIBLING". - Extraction no longer fails when the destination filesystem cannot hold extended attributes. - Windows/MSVC: export the archive plugin registry from Archive.dll. - Require File::Raw 0.15 for the matching export fix. 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=.`. - 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.