diff options
author | David Mitchell <davem@iabyn.com> | 2018-02-19 22:20:40 +0000 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2018-02-19 22:20:40 +0000 |
commit | f7675015b1fdb2eee619d34c20a279db07dcf844 (patch) | |
tree | 4be98d26838e5f349e32dcb885052f6400547372 /hints/sunos_4_0.sh | |
parent | 6d37ab4efc1fb099593fb29406193ae79c3be543 (diff) | |
parent | 8327fe931a244c33965f30d2ba4bbe7248016951 (diff) | |
download | perl-f7675015b1fdb2eee619d34c20a279db07dcf844.tar.gz |
[MERGE] fixups for OP_MULTICONCAT
This branch fixes three main issues caused by the OP_MULTICONCAT
optimisation:
* When dealing with magic/tie/overloading, there were many edge cases;
the way these are handled has been completely rewritten, fixing
bugs related to exactly when and how args are sringified and/or tested
for undefinedness;
* relatedly, on a stringified concat such as $x .= "$y", or
$a = "$b$c$d", the stringification is honoured under exactly the same
(buggy) set of conditions that pertained before multiconcat was
introduced; this is noticable in overloading whether the result calls the
stringify method and thus returns a plain string, or whether it skips that
and returns an overloaded object, e.g. for $a = "$b$c$d", does $a end up
as a ref or a string. Before the branch it was always a ref, now its
sometimes a string.
* concats within a runtime pattern code block could crash, e.g.
/$a(?{ $b . "c" })/
Diffstat (limited to 'hints/sunos_4_0.sh')
0 files changed, 0 insertions, 0 deletions