This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[Merge] pad_reset
authorFather Chrysostomos <sprout@cpan.org>
Thu, 28 Aug 2014 20:04:32 +0000 (13:04 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 28 Aug 2014 20:04:32 +0000 (13:04 -0700)
commitcff06bc4e9340e61387bd9505055ed3a19aa25ef
tree50571ae5a1be869a0d3a3dd6b5eddb918a81d22c
parent65d013723243af0b1a8b24e6e404b9e22379e70a
parentc695838a26a397c4e36fa84b2e640aeac35a9aa5
[Merge] pad_reset

This branch gets builds with pad_reset enabled working and changes the

For those who do not know what pad_reset does, pad_reset allows oper-
ators from different statements to share targets, saving memory.  When
it was originally added, it never fully worked properly, so it was
disabled, since it caused bugs.

For those who do not know what operator targets are:  Many operators
use the same scalar every time they return a value, to avoid having to
create a new one each time.  This is known as the target.

To keep t/re/uniprops.t running in a reasonable amount of time (unfor-
tunate coincidences slowed it down signficantly), I had to add two
optimisations.  See the commits entitled:

    Split PL_padix into two variables
    pad.c: Use PadnamelistMAXNAMED in another place

These optimisations apply even when pad_reset is disabled.

Benchmarking doesn’t show any speedup with pad_reset
enabled, so I left it disabled for now.  See
<20140828045810.19174.qmail@lists-nntp.develooper.com> for benchmark-
ing details.

(I am hoping that I can figure out why it’s slower and enable it some
future date.)