Permalink
Browse files

revert smartmatch to 5.27.6 behaviour

The pumpking has determined that the CPAN breakage caused by changing
smartmatch [perl #132594] is too great for the smartmatch changes to
stay in for 5.28.

This reverts most of the merge in commit
da4e040.  All core behaviour and
documentation is reverted.  The removal of use of smartmatch from a couple
of tests (that aren't testing smartmatch) remains.  Customisation of
a couple of CPAN modules to make them portable across smartmatch types
remains.  A small bugfix in scope.c also remains.
  • Loading branch information...
Zefram
Zefram committed Dec 29, 2017
1 parent 14e4cec commit 7896dde7482a2851e73f0ac2c32d1c71f6e97dca
Showing with 5,146 additions and 3,388 deletions.
  1. +0 −3 MANIFEST
  2. +16 −8 cop.h
  3. +2 −2 dump.c
  4. +18 −6 embed.fnc
  5. +15 −5 embed.h
  6. +1 −1 ext/B/B.pm
  7. +2 −2 ext/B/t/f_map.t
  8. +10 −10 ext/B/t/optree_samples.t
  9. +4 −4 ext/Opcode/Opcode.pm
  10. +1 −1 ext/Pod-Functions/Functions_pm.PL
  11. +1 −1 ext/Pod-Functions/t/Functions.t
  12. +2 −3 gv.c
  13. +30 −17 inline.h
  14. +96 −85 keywords.c
  15. +234 −233 keywords.h
  16. +3 −3 lib/B/Deparse-core.t
  17. +35 −30 lib/B/Deparse.pm
  18. +24 −30 lib/B/Deparse.t
  19. +8 −2 lib/B/Op_private.pm
  20. +2 −2 lib/feature.pm
  21. +28 −3 lib/overload.pm
  22. +2 −10 lib/overload.t
  23. +253 −49 op.c
  24. +3 −0 op.h
  25. +148 −132 opcode.h
  26. +180 −178 opnames.h
  27. +8 −3 perl.h
  28. +416 −422 perly.act
  29. +47 −46 perly.h
  30. +824 −816 perly.tab
  31. +7 −17 perly.y
  32. +45 −35 pod/perldiag.pod
  33. +2 −6 pod/perlexperiment.pod
  34. +36 −20 pod/perlfunc.pod
  35. +2 −2 pod/perlintro.pod
  36. +281 −17 pod/perlop.pod
  37. +1 −0 pod/perlrun.pod
  38. +414 −115 pod/perlsyn.pod
  39. +2 −3 pod/perltrap.pod
  40. +643 −46 pp_ctl.c
  41. +4 −2 pp_proto.h
  42. +49 −15 proto.h
  43. +2 −2 regen/feature.pl
  44. +6 −4 regen/keywords.pl
  45. +1 −0 regen/op_private
  46. +6 −4 regen/opcodes
  47. +0 −1 scope.c
  48. +5 −2 sv.c
  49. +9 −3 t/lib/croak/pp_ctl
  50. +84 −20 t/lib/feature/switch
  51. +7 −0 t/lib/warnings/9uninit
  52. +1 −1 t/lib/warnings/op
  53. +3 −2 t/lib/warnings/utf8
  54. +16 −4 t/op/coreamp.t
  55. +1 −1 t/op/coresubs.t
  56. +4 −3 t/op/cproto.t
  57. +0 −238 t/op/given.t
  58. +571 −90 t/op/smartmatch.t
  59. +2 −2 t/op/state.t
  60. +492 −273 t/op/switch.t
  61. +13 −4 t/op/taint.t
  62. +5 −1 t/op/tie_fetch_count.t
  63. +0 −88 t/op/whereis.t
  64. +0 −217 t/op/whereso.t
  65. +7 −2 t/run/switches.t
  66. +12 −7 toke.c
  67. +0 −34 universal.c
View
@@ -5672,7 +5672,6 @@ t/op/fork.t See if fork works
t/op/fresh_perl_utf8.t UTF8 tests for pads and gvs
t/op/getpid.t See if $$ and getppid work with threads
t/op/getppid.t See if getppid works
t/op/given.t See if given works
t/op/glob.t See if <*> works
t/op/gmagic.t See if GMAGIC works
t/op/goto.t See if goto works
@@ -5814,8 +5813,6 @@ t/op/ver.t See if v-strings and the %v format flag work
t/op/waitpid.t See if waitpid works
t/op/wantarray.t See if wantarray works
t/op/warn.t See if warn works
t/op/whereis.t See if whereis works
t/op/whereso.t See if whereso works
t/op/while.t See if while loops work
t/op/write.t See if write works (formats work)
t/op/yadayada.t See if ... works
View
24 cop.h
@@ -721,9 +721,10 @@ struct block_loop {
/* whereso context */
struct block_whereso {
/* given/when context */
struct block_givwhen {
OP *leave_op;
SV *defsv_save; /* the original $_ */
};
@@ -747,7 +748,7 @@ struct block {
struct block_format blku_format;
struct block_eval blku_eval;
struct block_loop blku_loop;
struct block_whereso blku_whereso;
struct block_givwhen blku_givwhen;
} blk_u;
};
#define blk_oldsp cx_u.cx_blk.blku_oldsp
@@ -763,7 +764,7 @@ struct block {
#define blk_format cx_u.cx_blk.blk_u.blku_format
#define blk_eval cx_u.cx_blk.blk_u.blku_eval
#define blk_loop cx_u.cx_blk.blk_u.blku_loop
#define blk_whereso cx_u.cx_blk.blk_u.blku_whereso
#define blk_givwhen cx_u.cx_blk.blk_u.blku_givwhen
#define CX_DEBUG(cx, action) \
DEBUG_l( \
@@ -856,11 +857,16 @@ struct context {
and a static array of context names in pp_ctl.c */
#define CXTYPEMASK 0xf
#define CXt_NULL 0 /* currently only used for sort BLOCK */
#define CXt_WHERESO 1
#define CXt_WHEN 1
#define CXt_BLOCK 2
/* be careful of the ordering of these six. Macros like CxTYPE_is_LOOP,
/* When micro-optimising :-) keep GIVEN next to the LOOPs, as these 5 share a
jump table in pp_ctl.c
The first 4 don't have a 'case' in at least one switch statement in pp_ctl.c
*/
#define CXt_GIVEN 3
/* be careful of the ordering of these five. Macros like CxTYPE_is_LOOP,
* CxFOREACH compare ranges */
#define CXt_LOOP_GIVEN 3 /* given (...) { ...; } */
#define CXt_LOOP_ARY 4 /* for (@ary) { ...; } */
#define CXt_LOOP_LAZYSV 5 /* for ('a'..'z') { ...; } */
#define CXt_LOOP_LAZYIV 6 /* for (1..9) { ...; } */
@@ -886,6 +892,8 @@ struct context {
/* private flags for CXt_LOOP */
/* this is only set in conjunction with CXp_FOR_GV */
#define CXp_FOR_DEF 0x10 /* foreach using $_ */
/* these 3 are mutually exclusive */
#define CXp_FOR_LVREF 0x20 /* foreach using \$var */
#define CXp_FOR_GV 0x40 /* foreach using package var */
@@ -897,7 +905,7 @@ struct context {
#define CXp_ONCE 0x10 /* What was sbu_once in struct subst */
#define CxTYPE(c) ((c)->cx_type & CXTYPEMASK)
#define CxTYPE_is_LOOP(c) ( CxTYPE(cx) >= CXt_LOOP_GIVEN \
#define CxTYPE_is_LOOP(c) ( CxTYPE(cx) >= CXt_LOOP_ARY \
&& CxTYPE(cx) <= CXt_LOOP_PLAIN)
#define CxMULTICALL(c) ((c)->cx_type & CXp_MULTICALL)
#define CxREALEVAL(c) (((c)->cx_type & (CXTYPEMASK|CXp_REAL)) \
View
4 dump.c
@@ -1200,7 +1200,6 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar, PerlIO *file, const OP *o)
case OP_ENTERITER:
case OP_ENTERLOOP:
case OP_ENTERGIVEN:
S_opdump_indent(aTHX_ o, level, bar, file, "REDO");
S_opdump_link(aTHX_ cLOOPo->op_redoop, file);
S_opdump_indent(aTHX_ o, level, bar, file, "NEXT");
@@ -1222,7 +1221,8 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar, PerlIO *file, const OP *o)
case OP_DORASSIGN:
case OP_ANDASSIGN:
case OP_ARGDEFELEM:
case OP_ENTERWHERESO:
case OP_ENTERGIVEN:
case OP_ENTERWHEN:
case OP_ENTERTRY:
case OP_ONCE:
S_opdump_indent(aTHX_ o, level, bar, file, "OTHER");
View
@@ -1129,7 +1129,7 @@ Apd |CV* |newCONSTSUB_flags|NULLOK HV* stash \
|U32 flags|NULLOK SV* sv
Ap |void |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block
ApdR |OP* |newFOROP |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
ApdR |OP* |newGIVENOP |NN OP* topic|NN OP* block|PADOFFSET defsv_off
ApdR |OP* |newGIVENOP |NN OP* cond|NN OP* block|PADOFFSET defsv_off
ApdR |OP* |newLOGOP |I32 optype|I32 flags|NN OP *first|NN OP *other
pM |LOGOP* |alloc_LOGOP |I32 type|NULLOK OP *first|NULLOK OP *other
ApdR |OP* |newLOOPEX |I32 type|NN OP* label
@@ -1198,7 +1198,7 @@ ApdR |SV* |newSV_type |const svtype type
ApdR |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first
ApdR |OP* |newUNOP_AUX |I32 type|I32 flags|NULLOK OP* first \
|NULLOK UNOP_AUX_item *aux
ApdR |OP* |newWHERESOOP |NN OP* cond|NN OP* block
ApdR |OP* |newWHENOP |NULLOK OP* cond|NN OP* block
ApdR |OP* |newWHILEOP |I32 flags|I32 debuggable|NULLOK LOOP* loop \
|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
|I32 has_my
@@ -2172,6 +2172,11 @@ s |void |no_bareword_allowed|NN OP *o
sR |OP* |no_fh_allowed|NN OP *o
sR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
s |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
s |bool |looks_like_bool|NN const OP* o
s |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \
|I32 enter_opcode|I32 leave_opcode \
|PADOFFSET entertarg
s |OP* |ref_array_or_hash|NULLOK OP* cond
s |bool |process_special_blocks |I32 floor \
|NN const char *const fullname\
|NN GV *const gv|NN CV *const cv
@@ -2259,10 +2264,11 @@ sR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \
s |MAGIC *|doparseform |NN SV *sv
snR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
sR |I32 |dopoptoeval |I32 startingblock
sR |I32 |dopoptogivenfor|I32 startingblock
sR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags
sR |I32 |dopoptoloop |I32 startingblock
sR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock
sR |I32 |dopoptowhereso |I32 startingblock
sR |I32 |dopoptowhen |I32 startingblock
s |void |save_lines |NULLOK AV *array|NN SV *sv
s |bool |doeval_compile |U8 gimme \
|NULLOK CV* outside|U32 seq|NULLOK HV* hh
@@ -2272,6 +2278,11 @@ sR |PerlIO *|doopen_pm |NN SV *name
#endif
iRn |bool |path_is_searchable|NN const char *name
sR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen
sR |PMOP* |make_matcher |NN REGEXP* re
sR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
s |void |destroy_matcher|NN PMOP* matcher
s |OP* |do_smartmatch |NULLOK HV* seen_this \
|NULLOK HV* seen_other|const bool copied
#endif
#if defined(PERL_IN_PP_HOT_C)
@@ -3190,10 +3201,11 @@ AiM |void |cx_popeval |NN PERL_CONTEXT *cx
AiM |void |cx_pushloop_plain|NN PERL_CONTEXT *cx
AiM |void |cx_pushloop_for |NN PERL_CONTEXT *cx \
|NN void *itervarp|NULLOK SV *itersave
AiM |void |cx_pushloop_given |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
AiM |void |cx_poploop |NN PERL_CONTEXT *cx
AiM |void |cx_pushwhereso |NN PERL_CONTEXT *cx
AiM |void |cx_popwhereso |NN PERL_CONTEXT *cx
AiM |void |cx_pushwhen |NN PERL_CONTEXT *cx
AiM |void |cx_popwhen |NN PERL_CONTEXT *cx
AiM |void |cx_pushgiven |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
AiM |void |cx_popgiven |NN PERL_CONTEXT *cx
#endif
#ifdef USE_DTRACE
View
20 embed.h
@@ -422,7 +422,7 @@
#define newSVuv(a) Perl_newSVuv(aTHX_ a)
#define newUNOP(a,b,c) Perl_newUNOP(aTHX_ a,b,c)
#define newUNOP_AUX(a,b,c,d) Perl_newUNOP_AUX(aTHX_ a,b,c,d)
#define newWHERESOOP(a,b) Perl_newWHERESOOP(aTHX_ a,b)
#define newWHENOP(a,b) Perl_newWHENOP(aTHX_ a,b)
#define newWHILEOP(a,b,c,d,e,f,g) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
#define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c)
#define newXS_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
@@ -785,19 +785,20 @@
#define cx_popblock(a) S_cx_popblock(aTHX_ a)
#define cx_popeval(a) S_cx_popeval(aTHX_ a)
#define cx_popformat(a) S_cx_popformat(aTHX_ a)
#define cx_popgiven(a) S_cx_popgiven(aTHX_ a)
#define cx_poploop(a) S_cx_poploop(aTHX_ a)
#define cx_popsub(a) S_cx_popsub(aTHX_ a)
#define cx_popsub_args(a) S_cx_popsub_args(aTHX_ a)
#define cx_popsub_common(a) S_cx_popsub_common(aTHX_ a)
#define cx_popwhereso(a) S_cx_popwhereso(aTHX_ a)
#define cx_popwhen(a) S_cx_popwhen(aTHX_ a)
#define cx_pushblock(a,b,c,d) S_cx_pushblock(aTHX_ a,b,c,d)
#define cx_pusheval(a,b,c) S_cx_pusheval(aTHX_ a,b,c)
#define cx_pushformat(a,b,c,d) S_cx_pushformat(aTHX_ a,b,c,d)
#define cx_pushgiven(a,b) S_cx_pushgiven(aTHX_ a,b)
#define cx_pushloop_for(a,b,c) S_cx_pushloop_for(aTHX_ a,b,c)
#define cx_pushloop_given(a,b) S_cx_pushloop_given(aTHX_ a,b)
#define cx_pushloop_plain(a) S_cx_pushloop_plain(aTHX_ a)
#define cx_pushsub(a,b,c,d) S_cx_pushsub(aTHX_ a,b,c,d)
#define cx_pushwhereso(a) S_cx_pushwhereso(aTHX_ a)
#define cx_pushwhen(a) S_cx_pushwhen(aTHX_ a)
#define cx_topblock(a) S_cx_topblock(aTHX_ a)
#endif
#if defined(DEBUGGING)
@@ -1199,6 +1200,7 @@
#define ck_sassign(a) Perl_ck_sassign(aTHX_ a)
#define ck_select(a) Perl_ck_select(aTHX_ a)
#define ck_shift(a) Perl_ck_shift(aTHX_ a)
#define ck_smartmatch(a) Perl_ck_smartmatch(aTHX_ a)
#define ck_sort(a) Perl_ck_sort(aTHX_ a)
#define ck_spair(a) Perl_ck_spair(aTHX_ a)
#define ck_split(a) Perl_ck_split(aTHX_ a)
@@ -1669,9 +1671,11 @@
#define inplace_aassign(a) S_inplace_aassign(aTHX_ a)
#define is_handle_constructor S_is_handle_constructor
#define listkids(a) S_listkids(aTHX_ a)
#define looks_like_bool(a) S_looks_like_bool(aTHX_ a)
#define modkids(a,b) S_modkids(aTHX_ a,b)
#define move_proto_attr(a,b,c,d) S_move_proto_attr(aTHX_ a,b,c,d)
#define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
#define newGIVWHENOP(a,b,c,d,e) S_newGIVWHENOP(aTHX_ a,b,c,d,e)
#define newMETHOP_internal(a,b,c,d) S_newMETHOP_internal(aTHX_ a,b,c,d)
#define new_logop(a,b,c,d) S_new_logop(aTHX_ a,b,c,d)
#define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a)
@@ -1681,6 +1685,7 @@
#define optimize_op(a) S_optimize_op(aTHX_ a)
#define pmtrans(a,b,c) S_pmtrans(aTHX_ a,b,c)
#define process_special_blocks(a,b,c,d) S_process_special_blocks(aTHX_ a,b,c,d)
#define ref_array_or_hash(a) S_ref_array_or_hash(aTHX_ a)
#define refkids(a,b) S_refkids(aTHX_ a,b)
#define scalar_mod_type S_scalar_mod_type
#define scalarboolean(a) S_scalarboolean(aTHX_ a)
@@ -1730,15 +1735,20 @@
# endif
# if defined(PERL_IN_PP_CTL_C)
#define check_type_and_open(a) S_check_type_and_open(aTHX_ a)
#define destroy_matcher(a) S_destroy_matcher(aTHX_ a)
#define do_smartmatch(a,b,c) S_do_smartmatch(aTHX_ a,b,c)
#define docatch(a) S_docatch(aTHX_ a)
#define doeval_compile(a,b,c,d) S_doeval_compile(aTHX_ a,b,c,d)
#define dofindlabel(a,b,c,d,e,f) S_dofindlabel(aTHX_ a,b,c,d,e,f)
#define doparseform(a) S_doparseform(aTHX_ a)
#define dopoptoeval(a) S_dopoptoeval(aTHX_ a)
#define dopoptogivenfor(a) S_dopoptogivenfor(aTHX_ a)
#define dopoptolabel(a,b,c) S_dopoptolabel(aTHX_ a,b,c)
#define dopoptoloop(a) S_dopoptoloop(aTHX_ a)
#define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b)
#define dopoptowhereso(a) S_dopoptowhereso(aTHX_ a)
#define dopoptowhen(a) S_dopoptowhen(aTHX_ a)
#define make_matcher(a) S_make_matcher(aTHX_ a)
#define matcher_matches_sv(a,b) S_matcher_matches_sv(aTHX_ a,b)
#define num_overflow S_num_overflow
#define path_is_searchable S_path_is_searchable
#define run_user_filter(a,b,c) S_run_user_filter(aTHX_ a,b,c)
View
@@ -20,7 +20,7 @@ sub import {
# walkoptree comes from B.xs
BEGIN {
$B::VERSION = '1.73';
$B::VERSION = '1.74';
@B::EXPORT_OK = ();
# Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
View
@@ -165,7 +165,7 @@ checkOptree(note => q{},
# c <1> rv2av[t6] sKRM/1
# d <#> gv[*_] s
# e <1> rv2gv sKRM/1
# f <{> enteriter(next->q last->t redo->g) KS
# f <{> enteriter(next->q last->t redo->g) KS/DEF
# r <0> iter s
# s <|> and(other->g) K/1
# g <;> nextstate(main 475 (eval 10):1) v:{
@@ -198,7 +198,7 @@ EOT_EOT
# c <1> rv2av[t3] sKRM/1
# d <$> gv(*_) s
# e <1> rv2gv sKRM/1
# f <{> enteriter(next->q last->t redo->g) KS
# f <{> enteriter(next->q last->t redo->g) KS/DEF
# r <0> iter s
# s <|> and(other->g) K/1
# g <;> nextstate(main 559 (eval 15):1) v:{
View
@@ -240,7 +240,7 @@ checkOptree ( name => '-exec sub { foreach (1..10) {print "foo $_"} }',
# 3 <$> const[IV 1] s
# 4 <$> const[IV 10] s
# 5 <#> gv[*_] s
# 6 <{> enteriter(next->c last->f redo->7) KS
# 6 <{> enteriter(next->c last->f redo->7) KS/DEF
# d <0> iter s
# e <|> and(other->7) K/1
# 7 <;> nextstate(main 1659 optree_samples.t:234) v:>,<,%
@@ -258,7 +258,7 @@ EOT_EOT
# 3 <$> const(IV 1) s
# 4 <$> const(IV 10) s
# 5 <$> gv(*_) s
# 6 <{> enteriter(next->c last->f redo->7) KS
# 6 <{> enteriter(next->c last->f redo->7) KS/DEF
# d <0> iter s
# e <|> and(other->7) K/1
# 7 <;> nextstate(main 443 optree_samples.t:182) v:>,<,%
@@ -281,7 +281,7 @@ checkOptree ( name => '-basic sub { print "foo $_" foreach (1..10) }',
# - <@> lineseq KP ->f
# 1 <;> nextstate(main 445 optree.t:167) v:>,<,% ->2
# e <2> leaveloop K/2 ->f
# 6 <{> enteriter(next->b last->e redo->7) KS ->c
# 6 <{> enteriter(next->b last->e redo->7) KS/DEF ->c
# - <0> ex-pushmark s ->2
# - <1> ex-list lK ->5
# 2 <0> pushmark s ->3
@@ -305,7 +305,7 @@ EOT_EOT
# - <@> lineseq KP ->f
# 1 <;> nextstate(main 446 optree_samples.t:192) v:>,<,% ->2
# e <2> leaveloop K/2 ->f
# 6 <{> enteriter(next->b last->e redo->7) KS ->c
# 6 <{> enteriter(next->b last->e redo->7) KS/DEF ->c
# - <0> ex-pushmark s ->2
# - <1> ex-list lK ->5
# 2 <0> pushmark s ->3
@@ -337,7 +337,7 @@ checkOptree ( name => '-exec -e foreach (1..10) {print qq{foo $_}}',
# 4 <$> const[IV 1] s
# 5 <$> const[IV 10] s
# 6 <#> gv[*_] s
# 7 <{> enteriter(next->d last->g redo->8) vKS
# 7 <{> enteriter(next->d last->g redo->8) vKS/DEF
# e <0> iter s
# f <|> and(other->8) vK/1
# 8 <;> nextstate(main 1 -e:1) v:>,<,%
@@ -356,7 +356,7 @@ EOT_EOT
# 4 <$> const(IV 1) s
# 5 <$> const(IV 10) s
# 6 <$> gv(*_) s
# 7 <{> enteriter(next->d last->g redo->8) vKS
# 7 <{> enteriter(next->d last->g redo->8) vKS/DEF
# e <0> iter s
# f <|> and(other->8) vK/1
# 8 <;> nextstate(main 1 -e:1) v:>,<,%
@@ -380,7 +380,7 @@ checkOptree ( name => '-exec sub { print "foo $_" foreach (1..10) }',
# 3 <$> const[IV 1] s
# 4 <$> const[IV 10] s
# 5 <#> gv[*_] s
# 6 <{> enteriter(next->b last->e redo->7) KS
# 6 <{> enteriter(next->b last->e redo->7) KS/DEF
# c <0> iter s
# d <|> and(other->7) K/1
# 7 <0> pushmark s
@@ -397,7 +397,7 @@ EOT_EOT
# 3 <$> const(IV 1) s
# 4 <$> const(IV 10) s
# 5 <$> gv(*_) s
# 6 <{> enteriter(next->b last->e redo->7) KS
# 6 <{> enteriter(next->b last->e redo->7) KS/DEF
# c <0> iter s
# d <|> and(other->7) K/1
# 7 <0> pushmark s
@@ -517,7 +517,7 @@ checkOptree ( name => '%h=(); for $_(@a){$h{getkey($_)} = $_}',
# a <1> rv2av[t6] sKRM/1
# b <#> gv[*_] s
# c <1> rv2gv sKRM/1
# d <{> enteriter(next->o last->r redo->e) KS
# d <{> enteriter(next->o last->r redo->e) KS/DEF
# p <0> iter s
# q <|> and(other->e) K/1
# e <;> nextstate(main 505 (eval 24):1) v:{
@@ -547,7 +547,7 @@ EOT_EOT
# a <1> rv2av[t3] sKRM/1
# b <$> gv(*_) s
# c <1> rv2gv sKRM/1
# d <{> enteriter(next->o last->r redo->e) KS
# d <{> enteriter(next->o last->r redo->e) KS/DEF
# p <0> iter s
# q <|> and(other->e) K/1
# e <;> nextstate(main 505 (eval 24):1) v:{
View
@@ -6,7 +6,7 @@ use strict;
our($VERSION, @ISA, @EXPORT_OK);
$VERSION = "1.42";
$VERSION = "1.43";
use Carp;
use Exporter ();
@@ -426,9 +426,9 @@ These are a hotchpotch of opcodes still waiting to be considered
entertry leavetry -- can be used to 'hide' fatal errors
entergiven
enterwhereso leavewhereso
continue
entergiven leavegiven
enterwhen leavewhen
break continue
smartmatch
custom -- where should this go
Oops, something went wrong.

0 comments on commit 7896dde

Please sign in to comment.