./devel/p5-Lexical-SealRequireHints, Perl5 module to prevent leakage of lexical hints

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.012, Package name: p5-Lexical-SealRequireHints-0.012, Maintainer: pkgsrc-users

There is a bug in Perl's handling of the %^H (lexical hints) variable that
causes lexical state in one file to leak into another that is required/used
from it. This bug will probably be fixed in Perl 5.10.2, and is definitely
fixed in Perl 5.11.0, but in any earlier version it is necessary to work
around it. On versions of Perl that require a fix, this module globally
changes the behaviour of require and use so that they no longer exhibit the
bug. This is the most convenient kind of workaround, and is meant to be
invoked by modules that make use of lexical state.

The workaround supplied by this module takes effect the first time its
import method is called. Typically this will be done by means of a use
statement. This should be done before putting anything into %^H that would
have a problem with leakage; usually it suffices to do this when loading
the module that supplies the mechanism to set up the vulnerable lexical
state. Invoking this module multiple times, from multiple lexical-related
modules, is not a problem: the workaround is only applied once, and applies
to everything.


Required to run:
[lang/perl5]

Required to build:
[devel/p5-Module-Build] [pkgtools/cwrappers]

Master sites: (Expand)

Filesize: 27.796 KB

Version history: (Expand)


CVS history: (Expand)


   2023-12-17 06:43:45 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
Log message:
(devel/p5-Lexical-SealRequireHints) Updated 0.011 to 0.012

version 0.012; 2023-03-10

  * bugfix: comprehensive set of preemptive loads of modules for which
    a delayed load might have been compiled while loading this module

  * bugfix: if AutoLoader was loaded during (or before) loading this
    module, flush its compiled code and reload it, to make subsequent
    autoloads of *.al files not leak hints

  * bugfix: if utf8_heavy.pl was loaded during (or before) loading this
    module, flush its compiled code and reload it, to make subsequent
    loads of Unicode data files not leak hints

  * bugfix: perform preemptive loads, of modules for which a delayed
    load might have been compiled while loading this module, regardless
    of whether XS module loading was successful

  * bugfix: also work around hint leakage affecting do-file, which
    suffers exactly the same problem as require

  * correct thread behaviour: make the XS implementation behave the way
    the pure Perl implementation already did, by not applying workaround
    until it has been requested in a particular thread (including being
    requested pre-cloning in a thread from which this thread was cloned)

  * be more conservative about maintaining op tree structure

  * port to Perl 5.33.1, which defines a PERL_VERSION_GE() macro that
    clashes with the one this module previously had

  * delay the preemptive module loads, of modules potentially subject
    to early-compiled delayed loads, until applying the fix

  * update swash test for Perl 5.27.11, which avoids actually loading
    swashes most of the time

  * skip thread tests on some old versions of Perl (around 5.10.0) where
    a core bug makes thread creation violate an internal assertion and
    causes crashes

  * skip thread tests on pre-5.8.9 Perls where a core bug makes thread
    creation corrupt memory

  * skip thread tests on pre-5.8.3 Perls where a core bug makes thread
    completion break the global PL_sv_placeholder

  * in t/override.t, make the test overrides of require() provide the
    correct context to the file scope of each file being loaded

  * test the point at which the workaround goes into effect

  * in documentation, describe the bug affecting "do" on Perls 5.15.{5..7}

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

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

  * use full stricture in the module, now that delayed module loads
    compiled while loading this module are properly handled so there's
    no need to try avoiding them entirely

  * in XS, better argument parenthesisation in a macro

  * avoid some compiler warnings that arise on Perl 5.6

  * fix indentation in the reserve definition of wrap_op_checker()
   2023-07-06 11:43:03 by Thomas Klausner | Files touched by this commit (2483)
Log message:
*: recursive bump for perl 5.38
   2022-06-28 13:38:00 by Thomas Klausner | Files touched by this commit (3952)
Log message:
*: recursive bump for perl 5.36
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-05-24 21:56:06 by Thomas Klausner | Files touched by this commit (3575)
Log message:
*: recursive bump for perl 5.34
   2020-09-08 15:16:47 by Thomas Klausner | Files touched by this commit (116)
Log message:
*: use MASTER_SITE_PERL_CPAN
   2020-08-31 20:13:29 by Thomas Klausner | Files touched by this commit (3631)
Log message:
*: bump PKGREVISION for perl-5.32.