Revision history for Perl extension Safe::Hole.
0.17 Mar 24 2026
[Improvements]
- Remove dead Exporter code (unused @ISA, @EXPORT, @EXPORT_OK) from
Hole.pm (PR #17)
- Narrow `no strict` to `no strict 'vars'` in AUTOLOAD wrapper for
tighter safety (PR #17)
- Regenerate README and README.md from current POD to include typo
fixes from PR #13 (PR #15)
[Maintenance]
- Add AI_POLICY.md documenting how AI tools are used in this project
- Update .gitignore for ExtUtils::MakeMaker build artifacts after
the Module::Build conversion in PR #10 (PR #16)
- Remove stale "To do" placeholder in t/01-hole.t — object wrapping
tests already exist in t/02-wrap-objects.t (PR #17)
0.16 Mar 22 2026
[Bug Fixes]
- Fix POD typos: "dinamically" → "dynamically", "occured" → "occurred",
"constrtucted" → "constructed", "refered" → "referred to",
"assuption" → "assumption" (PR #13)
[Improvements]
- Switch from DynaLoader to XSLoader for faster, simpler XS loading
(PR #14)
- Modernize Hole.pm preamble: use 'use 5.014' instead of
'require 5.005', add 'use warnings', replace 'use vars' with 'our'
declarations (PR #13)
[Maintenance]
- Reformat changelog for consistent style and fix historical typos
0.15 Mar 20 2026
[Bug Fixes]
- Preserve $@ across Safe::Hole::call eval to prevent error swallowing
when an undefined subroutine is called with a wrapped object argument
(GH #1, PR #2)
- Fix "Use of uninitialized value $typechar" warnings when wrap() is
called without $cpt/$name arguments (PR #2)
[Improvements]
- Setup CI with GitHub Actions testsuite covering Linux, macOS, and
Windows across multiple Perl versions (GH #4, PR #5)
- Fix CI dependency installation by adding cpanfile and using cpm to
install Module::Build (GH #6, PR #7)
- Convert build system from Module::Build (Build.PL) to
ExtUtils::MakeMaker (Makefile.PL) (GH #8, PR #10)
- Fix XS compilation warnings on macOS: add parentheses around
assignment-as-condition and replace deprecated GIMME with GIMME_V
(GH #9, PR #11)
[Maintenance]
- Switch to Devel::PPPort for portability
- Bump minimum Perl version to 5.14
- Stop tracking META files in the repository
- Add comprehensive object wrapping tests (PR #3)
- Add regression tests for undefined subroutine error reporting
(GH #1, PR #12)
0.14 April 13 2018
- Update issue tracker to github
- Tidy all the things
- README.md for github
0.13 May 5 2010
- Remove Makefile.PL. M::B compatibility just doesn't work as expected
and breaks on smokers
0.12 May 4 2010
- Hide Safe::Hole::User from CPAN by moving the package name onto a
different line
0.11 May 4 2010
- Re-structure module to more modern layout. Convert to M::B
- Re-factor tests to Test::More
- Pod fixes now we're testing them
- Clean up authors and generate proper META.yml
- Fix 5.10 deprecation of defined %hash. Just use %hash to the same
effect.
0.10 Fri Jan 16 2004
- Don't local(*INC} unless $self->{INC}
- This version by Brian McCauley <nobull@cpan.org>
0.09 Thu Jan 15 2004
- Catch and re-throw exceptions (not doing so seems to cause segfault
sometimes)
- Restore opmask, %INC and @INC (default backward-compatible mode
inhibits this)
- test.pl now has some real tests
- Safe::Hole::User namespace so that Carp can do the right thing
- This version by Brian McCauley <nobull@cpan.org>
0.08 Wed Jan 17 2001
- License under the GPL
0.07 Wed Oct 4 2000
- AUTOLOAD does not delegate DESTROY
0.06 Mon Jul 10 2000
- Wrapped package name includes hole'd package name
0.05 Mon Jul 10 2000
- 1 security bug (wrapped object contains hole object as public hash
value) fixed
- AUTOLOAD of wrapped package is defined only once
0.04 Thu Jun 8 2000
- Add 'require 5.005;'
- 1 bug fixed in new()
0.03 Mon Nov 15 1999
- Change global stash.
0.02 Mon Nov 1 1999
- wrap() method added.
0.01 Thu Oct 21 1999
- Original version; created by h2xs 1.18