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