 # UTF-8 to Unicode # This file is a dummy. ? # The conversion is done algorithmicly, not by a table look-up.                                                                                                                                                                                                                                                                                                                                                                                                               le sub */)M  I2	  40946 #define CVf_WEAKOUTSIDE	0x0400  /* CvOUTSIDE isn't ref counted */o  I2	  40947 R  I2	  40948 /* This symbol for optimised communication between toke.c and op.c: */H  I2	  40949 #define CVf_BUILTIN_ATTRS	(CVf_METHOD|CVf_LOCKED|CVf_LVALUE)  I2	  40950 :  I2	  40951 #define CvCLONE(cv)		(CvFLAGS(cv) & CVf_CLONE)>  I2	  40952 #define CvCLONE_on(cv)		(CvFLAGS(cv) |= CVf_CLONE)@  I2	  40953 #define CvCLONE_off(cv)		(CvFLAGS(cv) &= ~CVf_CLONE)  I2	  40954 <  I2	  40955 #define CvCLONED(cv)		(CvFLAGS(cv) & CVf_CLONED)@  I2	  40956 #define CvCLONED_on(cv)		(CvFLAGS(cv) |= CVf_CLONED)A  I2	  40957 #define CvCLONED_off(cv)	(CvFLAGS(cv) &= ~CVf_CLONED)o  I2	  40958  a                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 730                                                                  2-MAR-2003 18:15:55  USER_DISK:[USER.MV.PROJEKTE.PERL-18983]CV.H;1I  8  I2	  40959 #define CvANON(cv)		(CvFLAGS(cv) & CVf_ANON)<  I2	  40960 #define CvANON_on(cv)		(CvFLAGS(cv) |= CVf_ANON)>  I2	  40961 #define CvANON_off(cv)		(CvFLAGS(cv) &= ~CVf_ANON)  I2	  40962 )  I2    X  40963 #ifdef PERL_XSUB_OLDSTYLE D  I2    X  40964 #define CvOLDSTYLE(cv)		(CvFLAGS(cv) & CVf_OLDSTYLE)G  I2    X  40965 #define CvOLDSTYLE_on(cv)	(CvFLAGS(cv) |= CVf_OLDSTYLE) I  I2    X  40966 #define CvOLDSTYLE_off(cv)	(CvFLAGS(cv) &= ~CVf_OLDSTYLE)   I2    X  40967 #endif  I2	  40968 <  I2	  40969 #define CvUNIQUE(cv)		(CvFLAGS(cv) & CVf_UNIQUE)@  I2	  40970 #define CvUNIQUE_on(cv)		(CvFLAGS(cv) |= CVf_UNIQUE)A  I2	  40971 #define CvUNIQUE_off(cv)	(CvFLAGS(cv) &= ~CVf_UNIQUE)c  I2	  40972 >  I2	  40973 #define CvNODEBUG(cv)		(CvFLAGS(cv) & CVf_NODEBUG)A  I2	  40974 #define CvNODEBUG_on(cv)	(CvFLAGS(cv) |= CVf_NODEBUG)cC  I2	  40975 #define CvNODEBUG_off(cv)	(CvFLAGS(cv) &= ~CVf_NODEBUG)D  I2	  40976 <  I2	  40977 #define CvMETHOD(cv)		(CvFLAGS(cv) & CVf_METHOD)@  I2	  40978 #define CvMETHOD_on(cv)		(CvFLAGS(cv) |= CVf_METHOD)A  I2	  40979 #define CvMETHOD_off(cv)	(CvFLAGS(cv) &= ~CVf_METHOD)C  I2	  40980 <  I2	  40981 #define CvLOCKED(cv)		(CvFLAGS(cv) & CVf_LOCKED)@  I2	  40982 #define CvLOCKED_on(cv)		(CvFLAGS(cv) |= CVf_LOCKED)A  I2	  40983 #define CvLOCKED_off(cv)	(CvFLAGS(cv) &= ~CVf_LOCKED)e  I2	  40984 <  I2	  40985 #define CvLVALUE(cv)		(CvFLAGS(cv) & CVf_LVALUE)@  I2	  40986 #define CvLVALUE_on(cv)		(CvFLAGS(cv) |= CVf_LVALUE)A  I2	  40987 #define CvLVALUE_off(cv)	(CvFLAGS(cv) &= ~CVf_LVALUE)0  I2	  40988 =  I2	  40989 #define CvEVAL(cv)		(CvUNIQUE(cv) && !SvFAKE(cv))IC  I2	  40990 #define CvEVAL_on(cv)		(CvUNIQUE_on(cv),SvFAKE_off(cv))r4  I2	  40991 #define CvEVAL_off(cv)		CvUNIQUE_off(cv)  I2	  40992 &  I2	  40993 /* BEGIN|CHECK|INIT|END */?  I2	  40994 #define CvSPECIAL(cv)		(CvUNIQUE(cv) && SvFAKE(cv))DD  I2	  40995 #define CvSPECIAL_on(cv)	(CvUNIQUE_on(cv),SvFAKE_on(cv))G  I2	  40996 #define CvSPECIAL_off(cv)	(CvUNIQUE_off(cv),SvFAKE_off(cv))I  I2	  40997 :  I2	  40998 #define CvCONST(cv)		(CvFLAGS(cv) & CVf_CONST)>  I2	  40999 #define CvCONST_on(cv)		(CvFLAGS(cv) |= CVf_CONST)@  I2	  41000 #define CvCONST_off(cv)		(CvFLAGS(cv) &= ~CVf_CONST)  I2	  41001 E  I2	  41002 #define CvWEAKOUTSIDE(cv)	(CvFLAGS(cv) & CVf_WEAKOUTSIDE)AI  I2	  41003 #define CvWEAKOUTSIDE_on(cv)	(CvFLAGS(cv) |= CVf_WEAKOUTSIDE)eK  I2	  41004 #define CvWEAKOUTSIDE_off(cv)	(CvFLAGS(cv) &= ~CVf_WEAKOUTSIDE)d  I2	  41005   I2	  41006   I2	  41007 /*4  I2	  41008 =head1 CV reference counts and CvOUTSIDE  I2	  41009 3  I2	  41010 =for apidoc m|bool|CvWEAKOUTSIDE|CV *cvI  I2	  41011 M  I2	  41012 Each CV has a pointer, C<CvOUTSIDE()>, to its lexically enclosingtI  I2	  41013 CV (if any). Because pointers to anonymous sub prototypes are S  I2	  41014 stored in C<&> pad slots, it is a possible to get a circular reference,aN  I2	  41015 with the parent pointing to the child and vice-versa. To avoid the o                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 731                                                                  2-MAR-2003 18:15:55  USER_DISK:[USER.MV.PROJEKTE.PERL-18983]CV.H;1)  R  I2	  41016 ensuing memory leak, we do not increment the reference count of the CVV  I2	  41017 pointed to by C<CvOUTSIDE> in the I<one specific instance> that the parentM  I2	  41018 has a C<&> pad slot pointing back to us. In this case, we set the V  I2	  41019 C<CvWEAKOUTSIDE> flag in the child. This allows us to determine under whatU  I2	  41020 circumstances we should decrement the refcount of the parent when freeingR  I2	  41021 the child.  I2	  41022 U  I2	  41023 There is a further complication with non-closure anonymous subs (ie thoseIR  I2	  41024 that do not refer to any lexicals outside that sub). In this case, theP  I2	  41025 anonymous prototype is shared rather than being cloned. This has theQ  I2	  41026 consequence that the parent may be freed while there are still actives  I2	  41027 children, eg  I2	  41028 0  I2	  41029     BEGIN { $a = sub { eval '$x' } }  I2	  41030 T  I2	  41031 In this case, the BEGIN is freed immediately after execution since thereF  I2	  41032 are no active references to it: the anon sub prototype hasT  I2	  41033 C<CvWEAKOUTSIDE> set since it's not a closure, and $a points to the sameP  I2	  41034 CV, so it doesn't contribute to BEGIN's refcount either.  When $a isX  I2	  41035 executed, the C<eval '$x'> causes the chain of C<CvOUTSIDE>s to be followed,,  I2	  41036 and the freed BEGIN is accessed.  I2	  41037 M  I2	  41038 To avoid this, whenever a CV and its associated pad is freed, any S  I2	  41039 C<&> entries in the pad are explicitly removed from the pad, and if the	L  I2	  41040 refcount of the pointed-to anon sub is still positive, then thatS  I2	  41041 child's C<CvOUTSIDE> is set to point to its grandparent. This will only[M  I2	  41042 occur in the single specific case of a non-closure anon prototypecG  I2	  41043 having one or more active references (such as C<$a> above).   I2	  41044 L  I2	  41045 One other thing to consider is that a CV may be merely undefinedO  I2	  41046 rather than freed, eg C<undef &foo>. In this case, its refcount may U  I2	  41047 not have reached zero, but we still delete its pad and its C<CvROOT> etc.RU  I2	  41048 Since various children may still have their C<CvOUTSIDE> pointing at this	R  I2	  41049 undefined CV, we keep its own C<CvOUTSIDE> for the time being, so thatO  I2	  41050 the chain of lexical scopes is unbroken. For example, the followingo  I2	  41051 should print 123:n  I2	  41052   I2	  41053     my $x = 123;-  I2	  41054     sub tmp { sub { eval '$x' } }g  I2	  41055     my $a = tmp();  I2	  41056     undef &tmp;l  I2	  41057     print  $a->();  I2	  41058   I2	  41059 =cut  I2	  41060 */   I1	  41061 #include "opnames.h"  I2	  41062 /*  I2	  41063  *    opnames.h   I2	  41064  *5  I2	  41065  *    Copyright (c) 1997-2003, Larry Wally  I2	  41066  *U  I2	  41067  *    You may distribute under the terms of either the GNU General PublicTS  I2	  41068  *    License or the Artistic License, as specified in the README file.t  I2	  41069  *  I2	  41070  *8  I2	  41071  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!U  I2	  41072  *  This file is built by opcode.pl from its data.  Any changes made hered m                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 732~                                                                  2-MAR-2003 18:15:55  [USER.MV.PROJEKTE.PERL-18983]OPNAMES.H;1    I2	  41073  *  will be lost!   I2	  41074  */	  I2	  41075 !  I2	  41076 typedef enum opcode {P  I2	  41077 	OP_NULL,	/* 0 */n  I2	  41078 	OP_STUB,	/* 1 */<  I2	  41079 	OP_SCALAR,	/* 2 */e!  I2	  41080 	OP_PUSHMARK,	/* 3 */l"  I2	  41081 	OP_WANTARRAY,	/* 4 */  I2	  41082 	OP_CONST,	/* 5 */  I2	  41083 	OP_GVSV,	/* 6 */   I2	  41084 	OP_GV,		/* 7 */  I2	  41085 	OP_GELEM,	/* 8 */  I2	  41086 	OP_PADSV,	/* 9 */  I2	  41087 	OP_PADAV,	/* 10 */   I2	  41088 	OP_PADHV,	/* 11 */    I2	  41089 	OP_PADANY,	/* 12 */   I2	  41090 	OP_PUSHRE,	/* 13 */  I2	  41091 	OP_RV2GV,	/* 14 */   I2	  41092 	OP_RV2SV,	/* 15 */e#  I2	  41093 	OP_AV2ARYLEN,	/* 16 */   I2	  41094 	OP_RV2CV,	/* 17 */)"  I2	  41095 	OP_ANONCODE,	/* 18 */#  I2	  41096 	OP_PROTOTYPE,	/* 19 */0   I2	  41097 	OP_REFGEN,	/* 20 */!  I2	  41098 	OP_SREFGEN,	/* 21 */A  I2	  41099 	OP_REF,		/* 22 */  I2	  41100 	OP_BLESS,	/* 23 */I"  I2	  41101 	OP_BACKTICK,	/* 24 */  I2	  41102 	OP_GLOB,	/* 25 */"  I2	  41103 	OP_READLINE,	/* 26 */"  I2	  41104 	OP_RCATLINE,	/* 27 */#  I2	  41105 	OP_REGCMAYBE,	/* 28 */a#  I2	  41106 	OP_REGCRESET,	/* 29 */A!  I2	  41107 	OP_REGCOMP,	/* 30 */v  I2	  41108 	OP_MATCH,	/* 31 */(  I2	  41109 	OP_QR,		/* 32 */   I2	  41110 	OP_SUBST,	/* 33 */t#  I2	  41111 	OP_SUBSTCONT,	/* 34 */   I2	  41112 	OP_TRANS,	/* 35 */0!  I2	  41113 	OP_SASSIGN,	/* 36 */ !  I2	  41114 	OP_AASSIGN,	/* 37 */t  I2	  41115 	OP_CHOP,	/* 38 */  I2	  41116 	OP_SCHOP,	/* 39 */f  I2	  41117 	OP_CHOMP,	/* 40 */A   I2	  41118 	OP_SCHOMP,	/* 41 */!  I2	  41119 	OP_DEFINED,	/* 42 */   I2	  41120 	OP_UNDEF,	/* 43 */	  I2	  41121 	OP_STUDY,	/* 44 */P  I2	  41122 	OP_POS,		/* 45 */   I2	  41123 	OP_PREINC,	/* 46 */"  I2	  41124 	OP_I_PREINC,	/* 47 */   I2	  41125 	OP_PREDEC,	/* 48 */"  I2	  41126 	OP_I_PREDEC,	/* 49 */!  I2	  41127 	OP_POSTINC,	/* 50 */ #  I2	  41128 	OP_I_POSTINC,	/* 51 */ !  I2	  41129 	OP_POSTDEC,	/* 52 */n a                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 733~                                                                 10-MAR-2003 09:28:10  [USER.MV.PROJEKTE.PERL-18983]OPNAMES.H;1  #  I2	  41130 	OP_I_POSTDEC,	/* 53 */	  I2	  41131 	OP_POW,		/* 54 */"  I2	  41132 	OP_MULTIPLY,	/* 55 */$  I2	  41133 	OP_I_MULTIPLY,	/* 56 */   I2	  41134 	OP_DIVIDE,	/* 57 */"  I2	  41135 	OP_I_DIVIDE,	/* 58 */   I2	  41136 	OP_MODULO,	/* 59 */"  I2	  41137 	OP_I_MODULO,	/* 60 */   I2	  41138 	OP_REPEAT,	/* 61 */  I2	  41139 	OP_ADD,		/* 62 */  I2	  41140 	OP_I_ADD,	/* 63 */a"  I2	  41141 	OP_SUBTRACT,	/* 64 */$  I2	  41142 	OP_I_SUBTRACT,	/* 65 */   I2	  41143 	OP_CONCAT,	/* 66 */#  I2	  41144 	OP_STRINGIFY,	/* 67 */ $  I2	  41145 	OP_LEFT_SHIFT,	/* 68 */%  I2	  41146 	OP_RIGHT_SHIFT,	/* 69 */   I2	  41147 	OP_LT,		/* 70 */>  I2	  41148 	OP_I_LT,	/* 71 */  I2	  41149 	OP_GT,		/* 72 */d  I2	  41150 	OP_I_GT,	/* 73 */  I2	  41151 	OP_LE,		/* 74 */s  I2	  41152 	OP_I_LE,	/* 75 */  I2	  41153 	OP_GE,		/* 76 */_  I2	  41154 	OP_I_GE,	/* 77 */  I2	  41155 	OP_EQ,		/* 78 */t  I2	  41156 	OP_I_EQ,	/* 79 */  I2	  41157 	OP_NE,		/* 80 */   I2	  41158 	OP_I_NE,	/* 81 */  I2	  41159 	OP_NCMP,	/* 82 */   I2	  41160 	OP_I_NCMP,	/* 83 */  I2	  41161 	OP_SLT,		/* 84 */  I2	  41162 	OP_SGT,		/* 85 */  I2	  41163 	OP_SLE,		/* 86 */  I2	  41164 	OP_SGE,		/* 87 */  I2	  41165 	OP_SEQ,		/* 88 */  I2	  41166 	OP_SNE,		/* 89 */  I2	  41167 	OP_SCMP,	/* 90 */!  I2	  41168 	OP_BIT_AND,	/* 91 */ !  I2	  41169 	OP_BIT_XOR,	/* 92 */T   I2	  41170 	OP_BIT_OR,	/* 93 */   I2	  41171 	OP_NEGATE,	/* 94 */"  I2	  41172 	OP_I_NEGATE,	/* 95 */  I2	  41173 	OP_NOT,		/* 96 */$  I2	  41174 	OP_COMPLEMENT,	/* 97 */  I2	  41175 	OP_ATAN2,	/* 98 */i  I2	  41176 	OP_SIN,		/* 99 */  I2	  41177 	OP_COS,		/* 100 */t  I2	  41178 	OP_RAND,	/* 101 */r   I2	  41179 	OP_SRAND,	/* 102 */  I2	  41180 	OP_EXP,		/* 103 */   I2	  41181 	OP_LOG,		/* 104 */   I2	  41182 	OP_SQRT,	/* 105 */	  I2	  41183 	OP_INT,		/* 106 */=  I2	  41184 	OP_HEX,		/* 107 */\  I2	  41185 	OP_OCT,		/* 108 */=  I2	  41186 	OP_ABS,		/* 109 */  5                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 734~                                                                 10-MAR-2003 09:28:10  [USER.MV.PROJEKTE.PERL-18983]OPNAMES.H;1  !  I2	  41187 	OP_LENGTH,	/* 110 */M!  I2	  41188 	OP_SUBSTR,	/* 111 */6  I2	  41189 	OP_VEC,		/* 112 */    I2	  41190 	OP_INDEX,	/* 113 */!  I2	  41191 	OP_RINDEX,	/* 114 */F"  I2	  41192 	OP_SPRINTF,	/* 115 */#  I2	  41193 	OP_FORMLINE,	/* 116 */   I2	  41194 	OP_ORD,		/* 117 */*  I2	  41195 	OP_CHR,		/* 118 */p   I2	  41196 	OP_CRYPT,	/* 119 */"  I2	  41197 	OP_UCFIRST,	/* 120 */"  I2	  41198 	OP_LCFIRST,	/* 121 */  I2	  41199 	OP_UC,		/* 122 */  I2	  41200 	OP_LC,		/* 123 */$  I2	  41201 	OP_QUOTEMETA,	/* 124 */   I2	  41202 	OP_RV2AV,	/* 125 */$  I2	  41203 	OP_AELEMFAST,	/* 126 */   I2	  41204 	OP_AELEM,	/* 127 */!  I2	  41205 	OP_ASLICE,	/* 128 */s  I2	  41206 	OP_EACH,	/* 129 */ !  I2	  41207 	OP_VALUES,	/* 130 */0  I2	  41208 	OP_KEYS,	/* 131 */0!  I2	  41209 	OP_DELETE,	/* 132 */ !  I2	  41210 	OP_EXISTS,	/* 133 */    I2	  41211 	OP_RV2HV,	/* 134 */   I2	  41212 	OP_HELEM,	/* 135 */!  I2	  41213 	OP_HSLICE,	/* 136 */ !  I2	  41214 	OP_UNPACK,	/* 137 */   I2	  41215 	OP_PACK,	/* 138 */    I2	  41216 	OP_SPLIT,	/* 139 */  I2	  41217 	OP_JOIN,	/* 140 */	  I2	  41218 	OP_LIST,	/* 141 */;!  I2	  41219 	OP_LSLICE,	/* 142 */p#  I2	  41220 	OP_ANONLIST,	/* 143 */A#  I2	  41221 	OP_ANONHASH,	/* 144 */c!  I2	  41222 	OP_SPLICE,	/* 145 */u  I2	  41223 	OP_PUSH,	/* 146 */r  I2	  41224 	OP_POP,		/* 147 */0   I2	  41225 	OP_SHIFT,	/* 148 */"  I2	  41226 	OP_UNSHIFT,	/* 149 */  I2	  41227 	OP_SORT,	/* 150 */i"  I2	  41228 	OP_REVERSE,	/* 151 */$  I2	  41229 	OP_GREPSTART,	/* 152 */$  I2	  41230 	OP_GREPWHILE,	/* 153 */#  I2	  41231 	OP_MAPSTART,	/* 154 */9#  I2	  41232 	OP_MAPWHILE,	/* 155 */I   I2	  41233 	OP_RANGE,	/* 156 */  I2	  41234 	OP_FLIP,	/* 157 */o  I2	  41235 	OP_FLOP,	/* 158 */C  I2	  41236 	OP_AND,		/* 159 */   I2	  41237 	OP_OR,		/* 160 */  I2	  41238 	OP_XOR,		/* 161 */R$  I2	  41239 	OP_COND_EXPR,	/* 162 */$  I2	  41240 	OP_ANDASSIGN,	/* 163 */#  I2	  41241 	OP_ORASSIGN,	/* 164 */ !  I2	  41242 	OP_METHOD,	/* 165 */R#  I2	  41243 	OP_ENTERSUB,	/* 166 */. I                                 Source Listing                  22-MAR-2003 08:06:54  Compaq C V6.4-008-46B45           Page 735~                                                                 10-MAR-2003 09:28:10  [USER.MV.PROJEKTE.PERL-18983]OPNAMES.H;1  #  I2	  41244 	OP_LEAVESUB,	/* 167 */v%  I2	  41245 	OP_LEAVESUBLV,	/* 168 */ !  I2	  41246 	OP_CALLER,	/* 169 */S  I2	  41247 	OP_WARN,	/* 170 */   I2	  41248 	OP_DIE,		/* 171 */(   I2	  41249 	OP_RESET,	/* 172 */"  I2	  41250 	OP_LINESEQ,	/* 173 */$  I2	  41251 	OP_NEXTSTATE,	/* 174 */"  I2	  41252 	OP_DBSTATE,	/* 175 */"  I2	  41253 	OP_UNSTACK,	/* 176 */   I2	  41254 	OP_ENTER,	/* 177 */   I2	  41255 	OP_LEAVE,	/* 178 */   I2	  41256 	OP_SCOPE,	/* 179 */$  I2	  41257 	OP_ENTERITER,	/* 180 */  I2	  41258 	OP_ITER,	/* 181 */v$  I2	  41259 	OP_ENTERLOOP,	/* 182 */$  I2	  41260 	OP_LEAVELOOP,	/* 183 */!  I2	  41261 	OP_RETURN,	/* 184 */)  I2	  41262 	OP_LAST,	/* 185 */   I2	  41263 	OP_NEXT,	/* 186 */d  I2	  41264 	OP_REDO,	/* 187 */C  I2	  41265 	OP_DUMP,	/* 188 */   I2	  41266 	OP_GOTO,	/* 189 */x  I2	  41267 	OP_EXIT,	/* 190 */A  I2	  41268 	OP_OPEN,	/* 191 */v   I2	  41269 	OP_CLOSE,	/* 192 */"  I2	  41270 	OP_PIPE_OP,	/* 193 */!  I2	  41271 	OP_FILENO,	/* 194 */5   I2	  41272 	OP_UMASK,	/* 195 */"  I2	  41273 	OP_BINMODE,	/* 196 */  I2	  41274 	OP_TIE,		/* 197 */n   I2	  41275 	OP_UNTIE,	/* 198 */  I2	  41276 	OP_TIED,	/* 199 */f"  I2	  41277 	OP_DBMOPEN,	/* 200 */#  I2	  41278 	OP_DBMCLOSE,	/* 201 */)"  I2	  41279 	OP_SSELECT,	/* 202 */!  I2	  41280 	OP_SELECT,	/* 203 */-  I2	  41281 	OP_GETC,	/* 204 */I  I2	  41282 	OP_READ,	/* 205 */1%  I2	  41283 	OP_ENTERWRITE,	/* 206 */ %  I2	  41284 	OP_LEAVEWRITE,	/* 207 */*  I2	  41285 	OP_PRTF,	/* 208 */	   I2	  41286 	OP_PRINT,	/* 209 */"  I2	  41287 	OP_SYSOPEN,	/* 210 */"  I2	  41288 	OP_