This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add testing framework for boolean context
authorDavid Mitchell <davem@iabyn.com>
Wed, 4 Jan 2017 19:07:46 +0000 (19:07 +0000)
committerDavid Mitchell <davem@iabyn.com>
Fri, 6 Jan 2017 16:28:27 +0000 (16:28 +0000)
commit7adc03cc2c3385edc73d0522a46a24e1eeda3a27
treee72b1c5206e2aa097782a0eb5e9ea8312a27d7f8
parent7bb1f299d1f77bc5ec7502eca5cdb98a9bdc9550
add testing framework for boolean context

Some ops (currently just padhv and rv2hv) are optimised when found to be
in boolean context - by setting a private flag on the op indicating
definite or maybe boolean context. At run time, the op can just return
true / false rather than a real value, which may be cheaper.

This commit adds a bunch of tests in nested loops to optree.t to check
that the right private flags are set for the various permutations of

    if (%h || $x) { ...}

etc.

It's written in such a way that its easy to add new ops to it.

At the moment many permutations are actually commented out, as these
(fairly comprehensive) tests show up a number of deficiencies in the
current implementation. These should be fixed in the next commit.
t/perf/benchmarks
t/perf/optree.t