version 0.010; 2023-03-24
* bugfix: interact nicely with lexical subroutines on Perl 5.17.4
and above
* bugfix: avoid overrunning Perl's value stack on threading Perl builds
* bugfix: where cancellation of a lexical item is requested via
unimportation, and a specific referent to cancel is given, don't
cancel if the specific referent was previously set up but has been
shadowed by a core lexical item
* bugfix: require bugfixed version of Lexical::SealRequireHints
(for more comprehensive coverage, for not breaking version-implied
features, and for require argument context)
* thread safety: use thread-safe wrap_op_checker() API to control
op checking
* thread safety: avoid using thread-unaware static storage to cache
thread-specific Perl values
* port to Perl 5.21.7 which made PADNAME a distinct type
* update test suite to not rely on . in @INC, which is no longer
necessarily there from Perl 5.25.7
* port to Perl 5.33.1, which defines a PERL_VERSION_GE() macro that
clashes with the one this module previously had
* in a couple of tests, work around a bug in Perl 5.37.4 (which was
fixed in Perl 5.37.5) which caused false test failures
* in documentation and error messages, make explicit distinction
between Lexical::Var lexical variables/subroutines and core lexical
variables/subroutines
* use some pad API features more cleanly
* be more conservative about the fake referent used when constructing
references to lexically-established scalars
* in a test, avoid a context problem when combining is_deeply and eval
* future-proof pad handling for the possibility of PL_comppad being
the target pad
* put whitespace around C string literals being pasted, for C++11
compatibility
* make ->unimport methods return an empty list
* test that suppression of a lexical subroutine brings the package
subroutine back into effect not just for calling, but also for the
syntactic and semantic effects of prototypes
* test with key/value array slices and key/value hash slices available
from Perl 5.19.4
* test that pad operations work correctly around lexical imports from
the builtin modle available from Perl 5.35.7
* test that pad operations work correctly around fields and $self in
the new core class system available from Perl 5.37.9
* test superficially the ability to operate with threads
* test that all modules have matching version numbers
* don't apply the fake referent workaround for buggy core checking of
rv2Xv ops on Perl 5.21.4 and above, where the bug has been fixed
* in test suite, suppress shadowing warnings by category, rather than
discarding all warnings
* no longer include a Makefile.PL in the distribution
* in documentation, use four-column indentation for all verbatim
material
* in META.{yml,json}, point to public bug tracker
* delete undocumented partially-developed functions
* in XS declare as const some data that never changes
* update the manipulation of read-only flags to account for the
SVf_PROTECT introduced in Perl 5.21.5, although the only code that
manipulates those flags isn't actually used on Perl versions new
enough to have the new flag
* use new names for pad API items such as PadnameOURSTASH()
* in XS, rename some poorly-named variables and functions
* in XS, refactor Perl version comparisons
* in XS, better argument parenthesisation in some macros
* avoid some compiler warnings that arise on Perl 5.6
* rename internal gen_*_op() function into a better style
* consistently use THX_ prefix on internal function names
version 0.009; 2013-08-25
* update for perl 5.19.3's tracking of the last named item in a pad
version 0.008; 2013-08-17
* update for perl 5.17.4's new pad API
* update for perl 5.17.5's new arrangement for PL_compcv with BEGIN
* in documentation, refer to the new module Scalar::Construct
version 0.007; 2012-02-04
* bugfix: preserve referential identity of named constant scalars on
threading Perl builds
* bugfix: require bugfixed version of Lexical::SealRequireHints (for
compatibility with early-loaded warnings.pm) and invoke it earlier
to make sure it takes effect in time
* in documentation, note the problems that threading Perls have with
objects originating from source literals
* in documentation, note that the problem with eval/require/do inside
a BEGIN block is fixed in Perl 5.15.5
* in documentation, note that constant scalars participate in constant
folding
* fix an outdated documentation note about bareword subroutine calls
* in documentation, tweak description of intended users
* additional tests regarding const ops, constant folding, and object
identity preservation
* additional tests for the Lexical::Sub interface
* in Build.PL, declare incompatibility with pre-0.19
B::Hooks::OP::Check, which doesn't play nicely around op check hooking
* reorganise some of the test suite
* convert .cvsignore to .gitignore
* sort MANIFEST
version 0.006; 2011-07-27
* bugfix: require bugfixed version of Lexical::SealRequireHints (for
working around [perl #73174])
* in documentation, note problem with indirect object syntax and
lexical subroutines
* include META.json in distribution
* add MYMETA.json to .cvsignore
version 0.005; 2011-02-27
* port to Perl 5.13.10, where the value of PAD_MAX has changed
* in XS, use gv_stashpvs() wherever appropriate
* in XS, use PERL_NO_GET_CONTEXT for efficiency
* in XS, declare "PROTOTYPES: DISABLE" to prevent automatic generation
of unintended prototypes
* jump through hoops to avoid compiler warnings
* use full stricture in test suite
* in test suite, make all numeric comparisons against $] stringify it
first, to avoid architecture-dependent problems with floating point
rounding giving it an unexpected numeric value
* in Build.PL, complete declaration of configure-time requirements
version 0.004; 2010-04-11
* bugfix: require bugfixed version of Lexical::SealRequireHints (for
passing package through to required code in pure-Perl version of
Lexical::SealRequireHints)
* in XS, use macros to avoid explicit passing of aTHX, in the manner
of the core
* add Lexical::Import to "see also" list
* add MYMETA.yml to .cvsignore
version 0.003; 2010-01-11
* fully support bareword subroutine references on Perl 5.11.2 and later
* in XS, avoid using "class" as a variable name, for compatibility
with C++ compilers
* correct data type for the PAD_MAX constant
* in Build.PL, explicitly declare configure-time requirements
version 0.002; 2009-10-26
* port to Perl 5.11.0, supporting the addition of first-class regexp
objects (which are actually a type of scalar) and the removal of
the distinct RV type
* where the compilation %^H and PL_compcv are unavailable due to string
eval or similar, detect this earlier and regardless of the type of
item being set up (previously it was not detected for subroutines
or globs)
* when a lexical scalar has readonly value, generate a const op instead
of the usual rv2sv
* document the problem of %^H and PL_compcv being unavailable due to
string eval
* preserve op flags when building new rv2Xv ops; this doesn't seem to
matter in any currently achievable situation, but will be required
for bareword subroutine references in the future
* in XS, properly parenthesise some macro definitions
* test writability of lexical variables
* in t/error.t, check for unexpected warnings
* add experimental code, all disabled, to support bareword subroutine
references on a suitably modified Perl core
version 0.001; 2009-09-30
* bugfix: make array and hash indexing work
* bugfix: avoid core checks that would reject use of a glob as a
scalar value
* bugfix: avoid modifying the reference stored in the hint hash (which
happened through reusing it in const ops)
* bugfix: repair a reference leak in unimportation
* bugfix: change a memNE() to strnNE(), to avoid reading off the end
of a string
* bugfix: require bugfixed version of Lexical::SealRequireHints (for
fixes around usability of its pure-Perl implementation)
* port to pre-5.10 Perls
* more tests: Lexical::Sub, array and hash variables, glob variables,
acceptability of value types for references to lexical variables,
erroneous invocation of import and unimport
* in XS, add some casts to avoid compiler warnings
* check for required Perl version at runtime
version 0.000; 2009-09-23
* initial released version