In perl.git, the branch smoke-me/tonyc/post-5.24 has been created

<http://perl5.git.perl.org/perl.git/commitdiff/7d7310252826cac426f75cca1e8780bbdbb1bcd8?hp=0000000000000000000000000000000000000000>

        at  7d7310252826cac426f75cca1e8780bbdbb1bcd8 (commit)

- Log -----------------------------------------------------------------
commit 7d7310252826cac426f75cca1e8780bbdbb1bcd8
Author: Tony Cook <[email protected]>
Date:   Wed Apr 20 16:30:05 2016 +1000

    (perl #127923) note priority between the white and blacklist

M       dist/Locale-Maketext/lib/Locale/Maketext.pod

commit 7666a3db2882281360faf15df656c8541e00dd50
Author: Tony Cook <[email protected]>
Date:   Wed Apr 20 16:27:09 2016 +1000

    (perl #127923) pass porting tests
    
    - update MANIFEST, AUTHORS
    - bump $Locale::Maketext::VERSION

M       AUTHORS
M       MANIFEST
M       dist/Locale-Maketext/lib/Locale/Maketext.pm

commit d6c607ad177dd905f1697c359750627fe004a8c0
Author: John Lightsey <[email protected]>
Date:   Thu Mar 17 16:06:09 2016 +0000

    Add blacklist and whitelist support to Locale::Maketext.
    
    Format string attacks against Locale::Maketext have been discovered in
    several popular web applications and addresed by pre-filtering maketext
    strings before they are fed into the maketext() method. It is now
    possible to restrict the allowed bracked notation methods directly in
    Maketext.
    
    This commit also introduces a default blacklist that prevents using the
    object and class methods in the Locale::Maketext namespace that were not
    intended as bracked notation methods.

M       dist/Locale-Maketext/lib/Locale/Maketext.pm
M       dist/Locale-Maketext/lib/Locale/Maketext.pod
A       dist/Locale-Maketext/t/92_blacklist.t
A       dist/Locale-Maketext/t/93_whitelist.t

commit a775d3a7ed143f536951ea00caaae17ef814b44e
Author: Jim Cromie <[email protected]>
Date:   Wed Jan 20 16:11:34 2016 -0700

    fix make test failures in -Accflags=-DPERL_TRACE_OPS
    
    builds with -DPERL_TRACE_OPS currently fail make test, on ~124 files,
    for both normal & -DDEBUGGING, and plain & threaded configs.  These
    tests fail because they check STDERR content, and reject the extra
    output issued by perl_destruct() in these builds.  It turns out that
    "Trace of all OPs executed:" by itself is enough to cause the failures.
    
    The easiest fix is to silence -DPERL_TRACE_OPS printing by default,
    and enable it if $ENV{PERL_TRACE_OPS} > 0.  Due to various aspects of
    the design, this is also the best fix.
    
     - OP-counting is only done in runops_debug(). runops_standard()
       avoids all counting overhead, so the only 'cost' then is the extra
       space in the interpreter structure.
    
     - use of runops_debug() vs runops_standard() varies at build, with 
-DDEBUGGING,
       and can be changed at runtime, with -MDevel::Peek -e 
'BEGIN{runops_debug(0 or 1)}'
    
     - when runops_standard is used, perl_destruct() reports ALL-0s
       OP-exec-counts.  This is wrong, silence is better.
    
     - when runops_* is toggled, OP-counts will only reflect part of the work 
done.
    
    Given the flexibilty of use, perl_destruct() cannot really know the
    counts are good, and shouldnt just spew them to STDERR.  With this
    patch, the user asks for the output at runtime.
    
     - with patch, the build is not noisy, more usable, no stderr to deal with.
       miniperl is also silent, reducing `make` output too.
    
     - via simple XS, data can be read, cleared, at any compilation phase.
       with this, data to stderr is just a convienience, not "the way" to get 
data.
       Ive got Devel::TraceOps on-deck.
    
    I also took the liberty of suppressing "<optype>: 0" prints entirely.
    
     - no real info provided (0 count is inferrable by silence)
     - 0 is usually wrong, unless other OP-counts (from same interp) are non-0
     - `make test` on a non-debug threaded build emits 5 million of them
    
    And now './perl -e 'print "foo\n"' becomes readably small:
    foo
    Trace of all OPs executed:
      pushmark: 1
      gvsv: 1
      nextstate: 1
      enter: 1
      leave: 1
      print: 1
    
    NOTES:
    
    Since the PERL_TRACE_OPs counting overhead is runtime selectable, it
    seemed useful to measure and report it:
    
     function run_trace_overhead() {
        for i in seq 1 2; do
            perf stat -r5 -- ./perl -Ilib -MDevel::Peek -e 
'BEGIN{runops_debug(0)}' -e 'for (1..9_999_999){$i++}'
            perf stat -r5 -- ./perl -Ilib -MDevel::Peek -e 
'BEGIN{runops_debug(1)}' -e 'for (1..9_999_999){$i++}'
        done 2>&1 | grep -E 'Performance|instructions'
     }
    
    bench.pl couldnt do this, not without different --perlargs per contestant.
    
    [jimc@popeye perl]$ run_trace_overhead
     Performance counter stats for './perl -MDevel::Peek -e 
BEGIN{runops_debug(0)} -e for (1..9_999_999){$i++}' (5 runs):
         3,460,280,502      instructions              #    1.57  insns per 
cycle          (25.01%)
     Performance counter stats for './perl -MDevel::Peek -e 
BEGIN{runops_debug(1)} -e for (1..9_999_999){$i++}' (5 runs):
         3,857,253,945      instructions              #    2.00  insns per 
cycle          (25.07%)
     Performance counter stats for './perl -MDevel::Peek -e 
BEGIN{runops_debug(0)} -e for (1..9_999_999){$i++}' (5 runs):
         3,437,504,999      instructions              #    1.57  insns per 
cycle          (25.07%)
     Performance counter stats for './perl -MDevel::Peek -e 
BEGIN{runops_debug(1)} -e for (1..9_999_999){$i++}' (5 runs):
         3,859,640,318      instructions              #    2.00  insns per 
cycle          (25.09%)
    
    IE: when swapping runops_debug for runops_standard, the instruction
    count predictably goes up: by 3.8/3.4 = 1.12 in these results.
    Subject to many caveats, this is a reasonable estimate of the
    worst-case cost overhead of OP-counting.
    
    NB: the insns per cycle above are garbage, on this older 32bit box.
    but the instruction counts look plausible (I didnt look at the
    assembly code), and the per-cycle numbers are sane on a 64bit cpu
    (with a newer PMU).

M       perl.c

commit dea8078e3347b33ceb97a59bf4d451034128a881
Author: Niko Tyni <[email protected]>
Date:   Sun Jan 10 22:35:53 2016 +0200

    Fix the Configure escape with usecrosscompile but no targethost
    
    Commit 97076f2 added a graceful exit to Configure when targethost is
    not defined but usecrosscompile is. However, this is not reached because
    there is a similar check a bit earlier that makes Configure bail out.
    
    Make the earlier check warn instead of croaking.
    
    The use case for this combination is supplying an external config.sh
    suitable for the target platform, avoiding the need for configuration
    probes.

M       Configure

commit 7a2dce144ee6094f34e246d9c108327733993c9d
Author: Shlomi Fish <[email protected]>
Date:   Sun Apr 3 01:43:37 2016 +0300

    Correct spelling errors: lib/unicore/mktables .
    
    All tests appear to pass. I hereby disclaim any explicit or implicit
    ownership of my changes and place them under the
    public-domain/CC0/X11L/same-terms-as-Perl/any-other-license-of-your-choice
    multi-license.
    
    Thanks to Vim's ":help spell" for helping a lot.

M       charclass_invlists.h
M       lib/unicore/mktables
M       regcharclass.h
-----------------------------------------------------------------------

--
Perl5 Master Repository

Reply via email to