This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Eliminate PL_sawalias, GPf_ALIASED_SV
authorDavid Mitchell <davem@iabyn.com>
Tue, 11 Aug 2015 15:21:07 +0000 (16:21 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 17 Aug 2015 10:16:23 +0000 (11:16 +0100)
commit71afaecef1b2593c92e9603a00232b189f376700
treebba6044a7f3f2ad5114eced0a7edb0806dbc8c89
parent90ce4d0578578878b213fa81e151eead287da29e
Eliminate PL_sawalias, GPf_ALIASED_SV

These two commits:

    v5.21.3-759-gff2a62e "Skip no-common-vars optimisation for aliases"
    v5.21.4-210-gc997e36 "Make list assignment respect foreach aliasing"

added a run-time mechanism to detect aliased package variables,
by either "*pkg = ...," or "for $pkg (...)", and used that information
to enable the OPpASSIGN_COMMON mechanism at runtime for detecting common
elements in a list assign, e.g.

    for $alias ($a, ...) {
        ($a,$b) = (1,$alias);
    }

The previous commit but one changed the OPpASSIGN_COMMON mechanism such
that it no longer uses PL_sawalias. So this var and the mechanism for
setting it can now be removed.

This commit removes:

    * the PL_sawalias variable
    * the GPf_ALIASED_SV GP flag
    * the SAVEt_GP_ALIASED_SV and save_aliased_sv() save type.
13 files changed:
dump.c
embed.fnc
embed.h
embedvar.h
ext/B/t/b.t
gv.h
intrpvar.h
pp_ctl.c
pp_hot.c
proto.h
scope.c
scope.h
sv.c