Revision history for Module-Runtime

0.017   2025-04-06
  - fixed internal Pod links

  - various internal formatting changes

  - check for eval failures via return value, not $@

  - update packaging to remove Module::Build and set x_static_install

0.016  2017-10-17
  - port t/taint.t to Perl 5.27.5, where re-requiring an already-loaded
    module doesn't trigger tainting

  - skip t/taint.t if the perl empirically doesn't perform taint checks
    but the script got run anyway (which happens with an unsupported
    configuration of the Perl core which some people are using in the
    absence of a supported no-taint configuration)

  - in t/taint.t, use $^X rather than $ENV{PATH} as the primordial
    tainted value to taint a string being tested

  - in documentation, use four-column indentation for all verbatim
    material

  - in META.{yml,json}, point to public bug tracker

  - in META.json, specify type of public repository

0.015  2017-07-16

  - update test suite to not rely on . in @INC, which is no longer
    necessarily there from Perl 5.25.7

  - in documentation, warn about the security problem with
    use_package_optimistically()

  - declare correct version for Test::More dependency

  - generate "traditional" style of compatibility Makefile.PL, to
    permit building in environments that don't support Build.PL or
    configure_requires

0.014  2014-02-06

  - bugfix: suppress any CORE::GLOBAL::require override, where possible,
    to avoid use_package_optimistically() being misled into treating
    missing modules as broken

  - bugfix: in use_module() and use_package_optimistically(), pass a
    supplied VERSION parameter through for the version check even if it
    is undef

  - tighten use_package_optimistically()'s recognition of can't-locate
    errors (the same way that base.pm has recently been tightened),
    so that, when a module fails to load because a module that it uses
    isn't available, the outer module will be perceived as broken rather
    than missing

  - update documentation notes about the state of Unicode handling for
    module names

  - in META.{yml,json}, point to public git repository

0.013  2012-02-16

  - fix false failure of the test for lack of unintended dependencies
    that occurred on systems using a sitecustomize.pl

0.012  2012-02-12

  - work around Perl core bug [perl #68590] regarding leakage of %^H
    into modules being loaded

  - work around Perl core bug that made a failed module loading appear
    successful when re-requiring the same module

  - duplicate is_string() from Params::Classify, rather than importing it,
    to avoid circular dependency problems (affecting both installation
    and runtime)

  - duplicate minimal exporting behaviour from Exporter, and avoid using
    the "feature", "warnings", "strict", and "parent" pragmata, to allow
    for possible future use of this module by any infrastructure module

  - document core bug workarounds

  - document module name syntax more prominently, and discuss the state
    of Unicode handling

  - tweak documentation of use_package_optimistically()

  - test behaviour with tainted module name

  - test lack of unwanted eval frame around require

  - give test modules more meaningful names

  - convert .cvsignore to .gitignore

0.011  2011-10-24

  - bugfix: in require_module() and use_module(), work around a Perl
    core bug affecting Perl 5.8 and 5.10 that could pass the wrong
    context to the file scope of a required file, which breaks some
    modules; this bug would only rarely afflict the core's require()
    in situations where it would afflict require_module()

0.010  2011-10-07

  - bugfix: in use_package_optimistically(), fix regexp interpolation
    that broke operation if the module was loaded from a path containing
    metacharacters

0.009  2011-10-04

  - new function module_notional_filename()

  - simplify behaviour of use_package_optimistically() to match simplified
    base.pm 2.18

0.008  2011-05-16

  - change usage of Params::Classify functions to take advantage of
    custom ops in Params::Classify 0.012

  - use full stricture in test suite

  - in Build.PL, complete declaration of configure-time requirements

  - explicitly state version required of Params::Classify

  - include META.json in distribution

  - add MYMETA.json and MYMETA.yml to .cvsignore

0.007  2010-03-19

  - add "check_" functions for argument checking

  - supply regexps to check module name and spec syntax

  - in "is_" functions, also cleanly handle non-string arguments

  - in require_module() (also affecting use_module()), call require()
    as a function (with appropriate name translation) instead of using
    string eval, to avoid unnecessary complication of exception handling

  - provide the "is_valid_" functions under shorter "is_" names

  - revise POD markup

  - check for required Perl version at runtime

  - in tests, supply test modules to avoid requiring unrelated math
    modules

  - in Build.PL, explicitly declare configure-time requirements

  - remove bogus "exit 0" from Build.PL

0.006  2009-05-19

  - bugfix: avoid unreliable "\w" in regexps in code

  - document that module name syntax is restricted to ASCII

  - use simpler "parent" pragma in place of "base"

  - in documentation, use the term "truth value" instead of the less
    precise "boolean"

  - use full stricture in Build.PL

0.005  2007-09-17

  - bugfix: override any ambient $SIG{__DIE__} handler when using eval { }

  - use "base" pragma to import Exporter behaviour

  - test POD syntax and coverage, and rename an internal function to
    satisfy the coverage test

  - build with Module::Build instead of ExtUtils::MakeMaker

  - complete dependency list

  - include signature in distribution

  - in documentation, separate "license" section from "copyright" section

0.004  2007-08-12

  - change choice of module to test use_package_optimistically(), because
    some old versions of Math::BigInt don't have a version number which
    was causing a false test failure

0.003  2007-01-27

  - loosen tests to work with perl v5.9's changed diagnostics

0.002  2006-06-15

  - new function use_package_optimistically() to duplicate the "base"
    pragma's quiet module loading

  - insert missing bracket in documentation for use_module()

0.001  2004-10-29

  - new function use_module()

  - document return value of require_module()

  - more stringent tests for the return value of require_module()

  - explicitly declare lack of module dependencies in Makefile.PL

  - include Changes file

0.000  2004-02-15

  - initial released version
