0.000029 2026-09-08 14:21:19-07:00 America/Los_Angeles - Add an 'exclude' parameter that drops a directory, and everything under it, from the coverage data before the report event is sent. - Warn and name the unpaired key when an import parameter list has an odd number of elements, instead of storing it with an undefined value. 0.000028 2026-07-15 09:41:25-07:00 America/Los_Angeles - touch_source_file() and touch_data_file() now respect disable(), matching the documented "when disabled no coverage is recorded" behavior. - Internal failures now warn instead of dying, coverage collection should never introduce new exceptions into the code it observes: a dying custom extract()/filter() (or a file racing deletion) only skips that one entry, a failing report() at test exit warns instead of breaking teardown, a failed END-fallback install warns, and a failing realpath at load time falls back instead of aborting the compile. Interface misuse (bad touch_* arguments, importing twice with params) still dies. - set_from() now warns on and ignores values that are (or contain) CODE or GLOB references instead of dying later inside the exit callback that sends the report. Enabling coverage should never introduce new exceptions into the code being observed. - Replace Storable::dclone in report processing with a purpose built copy of the report structure. Unserializable 'from' values can no longer kill report generation, and Storable is no longer a dependency. - data() now deduplicates 'from' values by content instead of by reference, and sorts them deterministically (references are keyed by their serialized form). - filter() now resolves the file path before comparing it to the root, so symlinked roots/files filter and relativize consistently. It also documents (and always supported) plain string roots. - Cache the ENABLED/FROM/ROOT/TRACE_OPENS globs in XS on non-threaded perls instead of doing symbol table lookups on every single sub call. Greatly reduces hook overhead, especially when coverage is disabled. - Document data(), $TRACE_OPENS/@OPENS, the implicit exclusion of $0 and the plugin's own file, and add a LIMITATIONS list for goto, inlined constants, XS subs, threads, and exotic open() forms. - Fix many POD typos. - Declare Scalar::Util, Data::Dumper, and XSLoader prereqs. - New tests: disable semantics, from-value handling, report event structure, module reload regression, memory leak regression, and filter/root handling. - Re-enable the sysopen hook. The old handler assumed pp_sysopen was mark-based, but its pushmark is nulled at compile time; TOPMARK pointed at an enclosing op's mark, so the handler read arbitrary stack slots. That misattributed filenames and was the source of the "unknown segv on some platforms" that got the hook disabled. The filename is now located by fixed-arity offset from the stack top using MAXARG. - Fix memory leak in add_entry(): one SV was leaked on nearly every sub call once a (file, sub, from) entry already existed. Sub-call heavy tests could grow to multi-GB RSS and appear to hang the harness. - Guard BOOT against running twice. Reloading the module (%INC cleared + re-required, e.g. preload reloading) made the hooks capture themselves as the original handlers, causing infinite recursion and a segfault on the next sub call. - Use newRV_noinc() when storing newly created HVs/AVs, fixing small refcount leaks (one per new file/sub entry, one per traced open). - Read the sub SV from the stack before calling the original entersub handler; XS calls could overwrite that stack slot with a return value, causing garbage to be inspected. - Stop invoking get-magic and &{} overload from inside the entersub hook; pp_entersub already ran them, and re-invoking arbitrary perl code from the op hook risked recursion and stack corruption. - Add [PruneCruft] to dist.ini so build artifacts (blib/, pm_to_blib, MYMETA.*) no longer leak into release tarballs. 0.000027 2021-11-04 14:18:05-07:00 America/Los_Angeles - Add ability to trace opens for debugging 0.000026 2021-11-03 14:22:24-07:00 America/Los_Angeles - Add ability to manually touch coverage data 0.000025 2021-09-21 09:31:42-07:00 America/Los_Angeles - Add ability to enable/disable and reload settings 0.000024 2021-07-27 13:09:10-07:00 America/Los_Angeles - Fix uninitialized var and warnings in XS (#3) 0.000023 2021-07-02 11:06:26-07:00 America/Los_Angeles - Remove job-field, it is not accurate with IPC 0.000022 2021-04-23 11:52:31-07:00 America/Los_Angeles - Final memry improvement (for now) 0.000021 2021-04-21 15:30:06-07:00 America/Los_Angeles (TRIAL RELEASE) - Alternate memory improvement attempt 0.000020 2021-04-21 13:53:01-07:00 America/Los_Angeles (TRIAL RELEASE) - Attempt to improve memory usage 0.000019 2021-04-21 11:26:28-07:00 America/Los_Angeles - Path optimizations due to memory usage concerns 0.000018 2021-04-16 13:54:00-07:00 America/Los_Angeles - Make it possible to set root 0.000017 2021-04-16 12:53:22-07:00 America/Los_Angeles - Correct some documentation issues 0.000016 2021-04-15 15:12:19-07:00 America/Los_Angeles - Add 'from_manager' metadata - Add 'test type' metadata - General improvements to available data 0.000015 2021-04-14 10:46:14-07:00 America/Los_Angeles - Fix weird warning from Encode.pm (Issue #2) 0.000014 2021-04-09 14:31:50-07:00 America/Los_Angeles - Remove unnecessary (or event problematic) sub data 0.000013 2021-04-08 10:22:22-07:00 America/Los_Angeles - No changes, fixing the tarball 0.000012 2021-04-08 09:28:18-07:00 America/Los_Angeles - Slight speed improvement - Fix a segv 0.000011 2021-04-08 08:21:18-07:00 America/Los_Angeles - Remove garbage blib/ dir from dist 0.000010 2021-04-07 20:56:32-07:00 America/Los_Angeles - Add submap collection data - Add openmap collection data - Add set_from, get_from, and clear_from methods 0.000009 2020-07-11 23:42:31-07:00 America/Los_Angeles - Fix another extraction bug 0.000008 2020-07-11 23:24:23-07:00 America/Los_Angeles - Disable sysopen - Better filename extraction logic - test for filename extraction 0.000007 2020-07-01 20:08:35-07:00 America/Los_Angeles - Fix open.t on windows - Add debugging to sysopen.t - add sysopen clone without plugint o make sure plugin is the segv source 0.000006 2020-06-30 22:05:42-07:00 America/Los_Angeles - More XS fixes to avoid segv's 0.000005 2020-06-29 21:18:02-07:00 America/Los_Angeles - Some XS cleanup, remove dups - Split unit tests into multiple to help narrow downa segv on testers 0.000004 2020-06-28 20:25:52-07:00 America/Los_Angeles - Add XS to grab filenames from open/sysopen - Better filename extraction, less missed files. 0.000003 2020-06-25 21:57:37-07:00 America/Los_Angeles - Clean up and optimize XS - Fix XS thread safety issues - Update benchmarks - Add no_event import option - Make sure event is fired from both processes in event of a fork 0.000002 2020-06-24 22:52:36-07:00 America/Los_Angeles - Fix typos 0.000001 2020-06-24 22:32:00-07:00 America/Los_Angeles - Initial Release