In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/7f581e76d55d16c0f0b5f02b898e703e1bc5c8ff?hp=383542ae1cd5bd3ea345ac36fdd19216afcf9e87>
- Log ----------------------------------------------------------------- commit 7f581e76d55d16c0f0b5f02b898e703e1bc5c8ff Author: Father Chrysostomos <[email protected]> Date: Sat Nov 8 09:39:25 2014 -0800 Remove OA_DANGEROUS from subst(cont) OA_DANGEROUS indicates that temporary copies may need to be made in list assignment, to handle things like: ($a, $b) = ($b, $a); In other words, an op type is flagged with OA_DANGEROUS if its return values could occur elsewhere on the stack. pp_subst and pp_substcont only push new mortal scalars or read-only values on to the stack. Hence they are not OA_DANGEROUS. M opcode.h M regen/opcodes commit 9d99d451894e04e33976488d9ac9bb6ccb9018d9 Author: Father Chrysostomos <[email protected]> Date: Sat Nov 8 07:07:15 2014 -0800 Remove OA_DANGEROUS from match OA_DANGEROUS indicates that temporary copies may need to be made in list assignment, to handle things like: ($a, $b) = ($b, $a); In other words, an op type is flagged with OA_DANGEROUS if its return values could occur elsewhere on the stack. pp_match pushes new mortals on to the stack in list context (or a read-only boolean; read-only values donât matter), so they canât occur elsewhere. Hence it is not OA_DANGEROUS. M opcode.h M regen/opcodes ----------------------------------------------------------------------- Summary of changes: opcode.h | 6 +++--- regen/opcodes | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opcode.h b/opcode.h index 350eed1..854c8d2 100644 --- a/opcode.h +++ b/opcode.h @@ -1771,10 +1771,10 @@ EXTCONST U32 PL_opargs[] = { 0x00001104, /* regcmaybe */ 0x00001104, /* regcreset */ 0x00001304, /* regcomp */ - 0x00000540, /* match */ + 0x00000500, /* match */ 0x00000504, /* qr */ - 0x00001544, /* subst */ - 0x00000344, /* substcont */ + 0x00001504, /* subst */ + 0x00000304, /* substcont */ 0x00001804, /* trans */ 0x00001804, /* transr */ 0x00000004, /* sassign */ diff --git a/regen/opcodes b/regen/opcodes index be3bffe..f2110cc 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -84,10 +84,10 @@ rcatline append I/O operator ck_null t$ regcmaybe regexp internal guard ck_fun s1 S regcreset regexp internal reset ck_fun s1 S regcomp regexp compilation ck_null s| S -match pattern match (m//) ck_match d/ +match pattern match (m//) ck_match / qr pattern quote (qr//) ck_match s/ -subst substitution (s///) ck_match dis/ S -substcont substitution iterator ck_null dis| +subst substitution (s///) ck_match is/ S +substcont substitution iterator ck_null is| trans transliteration (tr///) ck_match is" S # y///r transr transliteration (tr///) ck_match is" S -- Perl5 Master Repository
