diff --git a/embed.fnc b/embed.fnc index 470deba3ac8f..35d2819a9e2a 100644 --- a/embed.fnc +++ b/embed.fnc @@ -1117,7 +1117,7 @@ Adpr |OP * |die_sv |NN SV *baseex : Used in util.c pr |void |die_unwind |NN SV *msv : FIXME -mp |bool |do_aexec |NULLOK SV *really \ +m |bool |do_aexec |NULLOK SV *really \ |NN SV **mark \ |NN SV **sp : Used in pp_sys.c @@ -1699,9 +1699,6 @@ Ampx |SV ** |hv_store_flags |NULLOK HV *hv \ |NULLOK SV *val \ |U32 hash \ |int flags -Admp |SV ** |hv_stores |NULLOK HV *hv \ - |"key" \ - |NULLOK SV *val Admp |void |hv_undef |NULLOK HV *hv Xop |void |hv_undef_flags |NULLOK HV *hv \ |U32 flags @@ -2210,7 +2207,7 @@ Adpr |void |my_exit |U32 status Adpr |void |my_failure_exit Cdp |I32 |my_fflush_all CTdp |Pid_t |my_fork -mp |I32 |my_lstat +m |I32 |my_lstat Xp |I32 |my_lstat_flags |NULLOK const U32 flags RTop |int |my_mkostemp_cloexec \ |NN char *templte \ @@ -2231,7 +2228,7 @@ CTdp |int |my_socketpair |int family \ |int type \ |int protocol \ |int fd[2] -mp |I32 |my_stat +m |I32 |my_stat Xp |I32 |my_stat_flags |NULLOK const U32 flags p |const char *|my_strerror \ |const int errnum \ @@ -2692,8 +2689,7 @@ CTp |Signal_t|perly_sighandler \ |NULLOK void *uap \ |bool safe -Admp |const char * const|phase_name \ - |enum perl_phase +Admp |const char *|phase_name|enum perl_phase phase Adp |void |pmop_dump |NULLOK PMOP *pm : Used in perly.y p |OP * |pmruntime |NN OP *o \ @@ -4496,7 +4492,7 @@ ERXp |SV * |add_range_to_invlist_ \ |NULLOK SV *invlist \ |UV start \ |UV end -m |void |invlist_intersection_ \ +Em |void |invlist_intersection_ \ |NN SV * const a \ |NN SV * const b \ |NN SV **i @@ -4506,11 +4502,11 @@ EXp |void |invlist_intersection_maybe_complement_2nd_ \ |const bool complement_b \ |NN SV **i EXp |void |invlist_invert_|NN SV * const invlist -m |void |invlist_subtract_ \ +Em |void |invlist_subtract_ \ |NN SV * const a \ |NN SV * const b \ |NN SV **result -m |void |invlist_union_ |NULLOK SV * const a \ +Em |void |invlist_union_ |NULLOK SV * const a \ |NN SV * const b \ |NN SV **output EXp |void |invlist_union_maybe_complement_2nd_ \ diff --git a/embed.h b/embed.h index 7394c28366f1..e52dc33a9d9a 100644 --- a/embed.h +++ b/embed.h @@ -21,77 +21,4641 @@ /* (Doing namespace management portably in C is really gross.) */ -/* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms - * (like warn instead of Perl_warn) for the API are not defined. - * Not defining the short forms is a good thing for cleaner embedding. - * BEWARE that a bunch of macros don't have long names, so either must be - * added or don't use them if you define this symbol */ +/* When this symbol is defined, we undef various symbols we have defined + * before when this file was #included with the symbol undefined */ +#if defined(PERL_DO_UNDEFS) +# if !defined(PERL_CORE) +# undef _ +# undef _swab_16_ +# undef _swab_32_ +# undef _swab_64_ +# undef ABORT +# undef ABS_IV_MIN +# undef ACCEPT +# undef ACCEPT_t8 +# undef ACCEPT_t8_p8 +# undef ACCEPT_t8_pb +# undef ACCEPT_tb +# undef ACCEPT_tb_p8 +# undef ACCEPT_tb_pb +# undef AHOCORASICK +# undef AHOCORASICK_t8 +# undef AHOCORASICK_t8_p8 +# undef AHOCORASICK_t8_pb +# undef AHOCORASICK_tb +# undef AHOCORASICK_tb_p8 +# undef AHOCORASICK_tb_pb +# undef AHOCORASICKC +# undef AHOCORASICKC_t8 +# undef AHOCORASICKC_t8_p8 +# undef AHOCORASICKC_t8_pb +# undef AHOCORASICKC_tb +# undef AHOCORASICKC_tb_p8 +# undef AHOCORASICKC_tb_pb +# undef ALIGNED_TYPE +# undef ALIGNED_TYPE_NAME +# undef ALL_PARENS_COUNTED +# undef ALWAYS_WARN_SUPER +# undef AMG_id2name +# undef AMG_id2namelen +# undef AMGf_noleft +# undef AMGf_numarg +# undef AMGf_numeric +# undef AMGf_want_list +# undef AMGfallNEVER +# undef AMGfallNO +# undef AMGfallYES +# undef AMT_AMAGIC +# undef AMT_AMAGIC_off +# undef AMT_AMAGIC_on +# undef AMTf_AMAGIC +# undef anchored_end_shift +# undef anchored_offset +# undef anchored_substr +# undef anchored_utf8 +# undef ANY_FEATURE_BITS_SET +# undef ANYOF +# undef ANYOF_ALNUM +# undef ANYOF_ALNUML +# undef ANYOF_ALPHA +# undef ANYOF_ALPHANUMERIC +# undef ANYOF_ASCII +# undef ANYOF_BIT +# undef ANYOF_BITMAP +# undef ANYOF_BITMAP_BYTE +# undef ANYOF_BITMAP_CLEAR +# undef ANYOF_BITMAP_CLEARALL +# undef ANYOF_BITMAP_SET +# undef ANYOF_BITMAP_SETALL +# undef ANYOF_BITMAP_SIZE +# undef ANYOF_BITMAP_TEST +# undef ANYOF_BITMAP_ZERO +# undef ANYOF_BLANK +# undef ANYOF_CASED +# undef ANYOF_CLASS_OR +# undef ANYOF_CLASS_SETALL +# undef ANYOF_CLASS_TEST_ANY_SET +# undef ANYOF_CNTRL +# undef ANYOF_COMMON_FLAGS +# undef ANYOF_DIGIT +# undef ANYOF_FLAGS +# undef ANYOF_FLAGS_ALL +# undef ANYOF_GRAPH +# undef ANYOF_HAS_AUX +# undef ANYOF_HAS_EXTRA_RUNTIME_MATCHES +# undef ANYOF_HORIZWS +# undef ANYOF_INVERT +# undef ANYOF_LOCALE_FLAGS +# undef ANYOF_LOWER +# undef ANYOF_MATCHES_ALL_OUTSIDE_BITMAP +# undef ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE +# undef ANYOF_MATCHES_NONE_OUTSIDE_BITMAP +# undef ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE +# undef ANYOF_MATCHES_POSIXL +# undef ANYOF_MAX +# undef ANYOF_NALNUM +# undef ANYOF_NALNUML +# undef ANYOF_NALPHA +# undef ANYOF_NALPHANUMERIC +# undef ANYOF_NASCII +# undef ANYOF_NBLANK +# undef ANYOF_NCASED +# undef ANYOF_NCNTRL +# undef ANYOF_NDIGIT +# undef ANYOF_NGRAPH +# undef ANYOF_NHORIZWS +# undef ANYOF_NLOWER +# undef ANYOF_NPRINT +# undef ANYOF_NPUNCT +# undef ANYOF_NSPACE +# undef ANYOF_NSPACEL +# undef ANYOF_NUPPER +# undef ANYOF_NVERTWS +# undef ANYOF_NWORDCHAR +# undef ANYOF_NXDIGIT +# undef ANYOF_ONLY_HAS_BITMAP +# undef ANYOF_ONLY_HAS_BITMAP_MASK +# undef ANYOF_POSIXL_AND +# undef ANYOF_POSIXL_BITMAP +# undef ANYOF_POSIXL_CLEAR +# undef ANYOF_POSIXL_MAX +# undef ANYOF_POSIXL_OR +# undef ANYOF_POSIXL_SET +# undef ANYOF_POSIXL_SET_TO_BITMAP +# undef ANYOF_POSIXL_SETALL +# undef ANYOF_POSIXL_SSC_TEST_ALL_SET +# undef ANYOF_POSIXL_SSC_TEST_ANY_SET +# undef ANYOF_POSIXL_TEST +# undef ANYOF_POSIXL_TEST_ALL_SET +# undef ANYOF_POSIXL_TEST_ANY_SET +# undef ANYOF_POSIXL_ZERO +# undef ANYOF_PRINT +# undef ANYOF_PUNCT +# undef ANYOF_SPACE +# undef ANYOF_SPACEL +# undef ANYOF_t8 +# undef ANYOF_t8_p8 +# undef ANYOF_t8_pb +# undef ANYOF_tb +# undef ANYOF_tb_p8 +# undef ANYOF_tb_pb +# undef ANYOF_UNIPROP +# undef ANYOF_UPPER +# undef ANYOF_VERTWS +# undef ANYOF_WARN_SUPER__shared +# undef ANYOF_WORDCHAR +# undef ANYOF_XDIGIT +# undef ANYOFD +# undef ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared +# undef ANYOFD_t8 +# undef ANYOFD_t8_p8 +# undef ANYOFD_t8_pb +# undef ANYOFD_tb +# undef ANYOFD_tb_p8 +# undef ANYOFD_tb_pb +# undef ANYOFH +# undef ANYOFH_t8 +# undef ANYOFH_t8_p8 +# undef ANYOFH_t8_pb +# undef ANYOFH_tb +# undef ANYOFH_tb_p8 +# undef ANYOFH_tb_pb +# undef ANYOFHb +# undef ANYOFHb_t8 +# undef ANYOFHb_t8_p8 +# undef ANYOFHb_t8_pb +# undef ANYOFHb_tb +# undef ANYOFHb_tb_p8 +# undef ANYOFHb_tb_pb +# undef ANYOFHbbm +# undef ANYOFHbbm_t8 +# undef ANYOFHbbm_t8_p8 +# undef ANYOFHbbm_t8_pb +# undef ANYOFHbbm_tb +# undef ANYOFHbbm_tb_p8 +# undef ANYOFHbbm_tb_pb +# undef ANYOFHr +# undef ANYOFHr_t8 +# undef ANYOFHr_t8_p8 +# undef ANYOFHr_t8_pb +# undef ANYOFHr_tb +# undef ANYOFHr_tb_p8 +# undef ANYOFHr_tb_pb +# undef ANYOFHs +# undef ANYOFHs_t8 +# undef ANYOFHs_t8_p8 +# undef ANYOFHs_t8_pb +# undef ANYOFHs_tb +# undef ANYOFHs_tb_p8 +# undef ANYOFHs_tb_pb +# undef ANYOFL +# undef ANYOFL_FOLD +# undef ANYOFL_t8 +# undef ANYOFL_t8_p8 +# undef ANYOFL_t8_pb +# undef ANYOFL_tb +# undef ANYOFL_tb_p8 +# undef ANYOFL_tb_pb +# undef ANYOFL_UTF8_LOCALE_REQD +# undef ANYOFM +# undef ANYOFM_t8 +# undef ANYOFM_t8_p8 +# undef ANYOFM_t8_pb +# undef ANYOFM_tb +# undef ANYOFM_tb_p8 +# undef ANYOFM_tb_pb +# undef ANYOFPOSIXL +# undef ANYOFPOSIXL_t8 +# undef ANYOFPOSIXL_t8_p8 +# undef ANYOFPOSIXL_t8_pb +# undef ANYOFPOSIXL_tb +# undef ANYOFPOSIXL_tb_p8 +# undef ANYOFPOSIXL_tb_pb +# undef ANYOFR +# undef ANYOFR_BASE_BITS +# undef ANYOFR_t8 +# undef ANYOFR_t8_p8 +# undef ANYOFR_t8_pb +# undef ANYOFR_tb +# undef ANYOFR_tb_p8 +# undef ANYOFR_tb_pb +# undef ANYOFRb +# undef ANYOFRb_t8 +# undef ANYOFRb_t8_p8 +# undef ANYOFRb_t8_pb +# undef ANYOFRb_tb +# undef ANYOFRb_tb_p8 +# undef ANYOFRb_tb_pb +# undef ANYOFRbase +# undef ANYOFRdelta +# undef ARABIC_DECIMAL_SEPARATOR_UTF8 +# undef ARABIC_DECIMAL_SEPARATOR_UTF8_FIRST_BYTE +# undef ARABIC_DECIMAL_SEPARATOR_UTF8_FIRST_BYTE_s +# undef ARABIC_DECIMAL_SEPARATOR_UTF8_TAIL +# undef ARG1a +# undef ARG1a_LOC +# undef ARG1a_SET +# undef ARG1b +# undef ARG1b_LOC +# undef ARG1b_SET +# undef ARG1i +# undef ARG1i_LOC +# undef ARG1i_SET +# undef ARG1u +# undef ARG1u_LOC +# undef ARG1u_SET +# undef ARG2a +# undef ARG2a_LOC +# undef ARG2a_SET +# undef ARG2b +# undef ARG2b_LOC +# undef ARG2b_SET +# undef ARG2i +# undef ARG2i_LOC +# undef ARG2i_SET +# undef ARG2u +# undef ARG2u_LOC +# undef ARG2u_SET +# undef ARG3a +# undef ARG3a_LOC +# undef ARG3a_SET +# undef ARG3b +# undef ARG3b_LOC +# undef ARG3b_SET +# undef ARG3i +# undef ARG3i_LOC +# undef ARG3i_SET +# undef ARG3u +# undef ARG3u_LOC +# undef ARG3u_SET +# undef ARG__SET +# undef ARG_VALUE +# undef ARGp +# undef ARGp_BYTES_LOC +# undef ARGp_SET +# undef ARGTARG +# undef ASCII_FOLD_RESTRICTED +# undef ASCII_RESTRICTED +# undef ASCII_TO_NATIVE +# undef ASSERT_CURPAD_ACTIVE +# undef ASSERT_CURPAD_LEGAL +# undef AT_LEAST_ASCII_RESTRICTED +# undef AT_LEAST_UNI_SEMANTICS +# undef aTHXa +# undef aTHXo +# undef aTHXo_ +# undef aTHXx +# undef aTHXx_ +# undef av_dup +# undef av_dup_inc +# undef AvARYLEN +# undef AvREAL_on +# undef AvREAL_only +# undef AvREALISH +# undef AvREIFY +# undef AvREIFY_off +# undef AvREIFY_on +# undef AvREIFY_only +# undef BADVERSION +# undef BASEOP +# undef BIT_BUCKET +# undef BIT_DIGITS +# undef BITMAP_BIT +# undef BITMAP_BYTE +# undef BITMAP_TEST +# undef blk_eval +# undef blk_format +# undef blk_givwhen +# undef blk_loop +# undef blk_old_tmpsfloor +# undef blk_oldmarksp +# undef blk_oldpm +# undef blk_oldscopesp +# undef blk_oldsp +# undef blk_u16 +# undef BmFLAGS +# undef BOL +# undef BOL_t8 +# undef BOL_t8_p8 +# undef BOL_t8_pb +# undef BOL_tb +# undef BOL_tb_p8 +# undef BOL_tb_pb +# undef BOM_UTF8_FIRST_BYTE +# undef BOM_UTF8_TAIL +# undef BOUND +# undef BOUND_t8 +# undef BOUND_t8_p8 +# undef BOUND_t8_pb +# undef BOUND_tb +# undef BOUND_tb_p8 +# undef BOUND_tb_pb +# undef BOUNDA +# undef BOUNDA_t8 +# undef BOUNDA_t8_p8 +# undef BOUNDA_t8_pb +# undef BOUNDA_tb +# undef BOUNDA_tb_p8 +# undef BOUNDA_tb_pb +# undef BOUNDL +# undef BOUNDL_t8 +# undef BOUNDL_t8_p8 +# undef BOUNDL_t8_pb +# undef BOUNDL_tb +# undef BOUNDL_tb_p8 +# undef BOUNDL_tb_pb +# undef BOUNDU +# undef BOUNDU_t8 +# undef BOUNDU_t8_p8 +# undef BOUNDU_t8_pb +# undef BOUNDU_tb +# undef BOUNDU_tb_p8 +# undef BOUNDU_tb_pb +# undef BRANCH +# undef BRANCH_next +# undef BRANCH_next_fail +# undef BRANCH_next_fail_t8 +# undef BRANCH_next_fail_t8_p8 +# undef BRANCH_next_fail_t8_pb +# undef BRANCH_next_fail_tb +# undef BRANCH_next_fail_tb_p8 +# undef BRANCH_next_fail_tb_pb +# undef BRANCH_next_t8 +# undef BRANCH_next_t8_p8 +# undef BRANCH_next_t8_pb +# undef BRANCH_next_tb +# undef BRANCH_next_tb_p8 +# undef BRANCH_next_tb_pb +# undef BRANCH_t8 +# undef BRANCH_t8_p8 +# undef BRANCH_t8_pb +# undef BRANCH_tb +# undef BRANCH_tb_p8 +# undef BRANCH_tb_pb +# undef BRANCHJ +# undef BRANCHJ_t8 +# undef BRANCHJ_t8_p8 +# undef BRANCHJ_t8_pb +# undef BRANCHJ_tb +# undef BRANCHJ_tb_p8 +# undef BRANCHJ_tb_pb +# undef BSD_GETPGRP +# undef BSD_SETPGRP +# undef CALL_BLOCK_HOOKS +# undef CALL_FPTR +# undef CALLREG_INTUIT_START +# undef CALLREG_INTUIT_STRING +# undef CALLREG_NAMED_BUFF_CLEAR +# undef CALLREG_NAMED_BUFF_COUNT +# undef CALLREG_NAMED_BUFF_DELETE +# undef CALLREG_NAMED_BUFF_EXISTS +# undef CALLREG_NAMED_BUFF_FIRSTKEY +# undef CALLREG_NAMED_BUFF_SCALAR +# undef CALLREG_NAMED_BUFF_STORE +# undef CALLREG_NUMBUF_FETCH +# undef CALLREG_NUMBUF_LENGTH +# undef CALLREG_NUMBUF_STORE +# undef CALLREG_PACKAGE +# undef CALLREGCOMP +# undef CALLREGDUPE +# undef CALLREGDUPE_PVT +# undef CALLREGFREE +# undef CALLREGFREE_PVT +# undef CAN64BITHASH +# undef case_100_SBOX32 +# undef case_101_SBOX32 +# undef case_102_SBOX32 +# undef case_103_SBOX32 +# undef case_104_SBOX32 +# undef case_105_SBOX32 +# undef case_106_SBOX32 +# undef case_107_SBOX32 +# undef case_108_SBOX32 +# undef case_109_SBOX32 +# undef case_10_SBOX32 +# undef case_110_SBOX32 +# undef case_111_SBOX32 +# undef case_112_SBOX32 +# undef case_113_SBOX32 +# undef case_114_SBOX32 +# undef case_115_SBOX32 +# undef case_116_SBOX32 +# undef case_117_SBOX32 +# undef case_118_SBOX32 +# undef case_119_SBOX32 +# undef case_11_SBOX32 +# undef case_120_SBOX32 +# undef case_121_SBOX32 +# undef case_122_SBOX32 +# undef case_123_SBOX32 +# undef case_124_SBOX32 +# undef case_125_SBOX32 +# undef case_126_SBOX32 +# undef case_127_SBOX32 +# undef case_128_SBOX32 +# undef case_129_SBOX32 +# undef case_12_SBOX32 +# undef case_130_SBOX32 +# undef case_131_SBOX32 +# undef case_132_SBOX32 +# undef case_133_SBOX32 +# undef case_134_SBOX32 +# undef case_135_SBOX32 +# undef case_136_SBOX32 +# undef case_137_SBOX32 +# undef case_138_SBOX32 +# undef case_139_SBOX32 +# undef case_13_SBOX32 +# undef case_140_SBOX32 +# undef case_141_SBOX32 +# undef case_142_SBOX32 +# undef case_143_SBOX32 +# undef case_144_SBOX32 +# undef case_145_SBOX32 +# undef case_146_SBOX32 +# undef case_147_SBOX32 +# undef case_148_SBOX32 +# undef case_149_SBOX32 +# undef case_14_SBOX32 +# undef case_150_SBOX32 +# undef case_151_SBOX32 +# undef case_152_SBOX32 +# undef case_153_SBOX32 +# undef case_154_SBOX32 +# undef case_155_SBOX32 +# undef case_156_SBOX32 +# undef case_157_SBOX32 +# undef case_158_SBOX32 +# undef case_159_SBOX32 +# undef case_15_SBOX32 +# undef case_160_SBOX32 +# undef case_161_SBOX32 +# undef case_162_SBOX32 +# undef case_163_SBOX32 +# undef case_164_SBOX32 +# undef case_165_SBOX32 +# undef case_166_SBOX32 +# undef case_167_SBOX32 +# undef case_168_SBOX32 +# undef case_169_SBOX32 +# undef case_16_SBOX32 +# undef case_170_SBOX32 +# undef case_171_SBOX32 +# undef case_172_SBOX32 +# undef case_173_SBOX32 +# undef case_174_SBOX32 +# undef case_175_SBOX32 +# undef case_176_SBOX32 +# undef case_177_SBOX32 +# undef case_178_SBOX32 +# undef case_179_SBOX32 +# undef case_17_SBOX32 +# undef case_180_SBOX32 +# undef case_181_SBOX32 +# undef case_182_SBOX32 +# undef case_183_SBOX32 +# undef case_184_SBOX32 +# undef case_185_SBOX32 +# undef case_186_SBOX32 +# undef case_187_SBOX32 +# undef case_188_SBOX32 +# undef case_189_SBOX32 +# undef case_18_SBOX32 +# undef case_190_SBOX32 +# undef case_191_SBOX32 +# undef case_192_SBOX32 +# undef case_193_SBOX32 +# undef case_194_SBOX32 +# undef case_195_SBOX32 +# undef case_196_SBOX32 +# undef case_197_SBOX32 +# undef case_198_SBOX32 +# undef case_199_SBOX32 +# undef case_19_SBOX32 +# undef case_1_SBOX32 +# undef case_200_SBOX32 +# undef case_201_SBOX32 +# undef case_202_SBOX32 +# undef case_203_SBOX32 +# undef case_204_SBOX32 +# undef case_205_SBOX32 +# undef case_206_SBOX32 +# undef case_207_SBOX32 +# undef case_208_SBOX32 +# undef case_209_SBOX32 +# undef case_20_SBOX32 +# undef case_210_SBOX32 +# undef case_211_SBOX32 +# undef case_212_SBOX32 +# undef case_213_SBOX32 +# undef case_214_SBOX32 +# undef case_215_SBOX32 +# undef case_216_SBOX32 +# undef case_217_SBOX32 +# undef case_218_SBOX32 +# undef case_219_SBOX32 +# undef case_21_SBOX32 +# undef case_220_SBOX32 +# undef case_221_SBOX32 +# undef case_222_SBOX32 +# undef case_223_SBOX32 +# undef case_224_SBOX32 +# undef case_225_SBOX32 +# undef case_226_SBOX32 +# undef case_227_SBOX32 +# undef case_228_SBOX32 +# undef case_229_SBOX32 +# undef case_22_SBOX32 +# undef case_230_SBOX32 +# undef case_231_SBOX32 +# undef case_232_SBOX32 +# undef case_233_SBOX32 +# undef case_234_SBOX32 +# undef case_235_SBOX32 +# undef case_236_SBOX32 +# undef case_237_SBOX32 +# undef case_238_SBOX32 +# undef case_239_SBOX32 +# undef case_23_SBOX32 +# undef case_240_SBOX32 +# undef case_241_SBOX32 +# undef case_242_SBOX32 +# undef case_243_SBOX32 +# undef case_244_SBOX32 +# undef case_245_SBOX32 +# undef case_246_SBOX32 +# undef case_247_SBOX32 +# undef case_248_SBOX32 +# undef case_249_SBOX32 +# undef case_24_SBOX32 +# undef case_250_SBOX32 +# undef case_251_SBOX32 +# undef case_252_SBOX32 +# undef case_253_SBOX32 +# undef case_254_SBOX32 +# undef case_255_SBOX32 +# undef case_256_SBOX32 +# undef case_25_SBOX32 +# undef case_26_SBOX32 +# undef case_27_SBOX32 +# undef case_28_SBOX32 +# undef case_29_SBOX32 +# undef case_2_SBOX32 +# undef case_30_SBOX32 +# undef case_31_SBOX32 +# undef case_32_SBOX32 +# undef case_33_SBOX32 +# undef case_34_SBOX32 +# undef case_35_SBOX32 +# undef case_36_SBOX32 +# undef case_37_SBOX32 +# undef case_38_SBOX32 +# undef case_39_SBOX32 +# undef case_3_SBOX32 +# undef case_40_SBOX32 +# undef case_41_SBOX32 +# undef case_42_SBOX32 +# undef case_43_SBOX32 +# undef case_44_SBOX32 +# undef case_45_SBOX32 +# undef case_46_SBOX32 +# undef case_47_SBOX32 +# undef case_48_SBOX32 +# undef case_49_SBOX32 +# undef case_4_SBOX32 +# undef case_50_SBOX32 +# undef case_51_SBOX32 +# undef case_52_SBOX32 +# undef case_53_SBOX32 +# undef case_54_SBOX32 +# undef case_55_SBOX32 +# undef case_56_SBOX32 +# undef case_57_SBOX32 +# undef case_58_SBOX32 +# undef case_59_SBOX32 +# undef case_5_SBOX32 +# undef case_60_SBOX32 +# undef case_61_SBOX32 +# undef case_62_SBOX32 +# undef case_63_SBOX32 +# undef case_64_SBOX32 +# undef case_65_SBOX32 +# undef case_66_SBOX32 +# undef case_67_SBOX32 +# undef case_68_SBOX32 +# undef case_69_SBOX32 +# undef case_6_SBOX32 +# undef case_70_SBOX32 +# undef case_71_SBOX32 +# undef case_72_SBOX32 +# undef case_73_SBOX32 +# undef case_74_SBOX32 +# undef case_75_SBOX32 +# undef case_76_SBOX32 +# undef case_77_SBOX32 +# undef case_78_SBOX32 +# undef case_79_SBOX32 +# undef case_7_SBOX32 +# undef case_80_SBOX32 +# undef case_81_SBOX32 +# undef case_82_SBOX32 +# undef case_83_SBOX32 +# undef case_84_SBOX32 +# undef case_85_SBOX32 +# undef case_86_SBOX32 +# undef case_87_SBOX32 +# undef case_88_SBOX32 +# undef case_89_SBOX32 +# undef case_8_SBOX32 +# undef case_90_SBOX32 +# undef case_91_SBOX32 +# undef case_92_SBOX32 +# undef case_93_SBOX32 +# undef case_94_SBOX32 +# undef case_95_SBOX32 +# undef case_96_SBOX32 +# undef case_97_SBOX32 +# undef case_98_SBOX32 +# undef case_99_SBOX32 +# undef case_9_SBOX32 +# undef cBINOP +# undef cBINOPo +# undef CC_NON_FINAL_FOLD_ +# undef cCOP +# undef cGVOP_gv +# undef cGVOPo_gv +# undef cGVOPx_gv +# undef CHARSET_PAT_MODS +# undef check_end_shift +# undef CHECK_MALLOC_TAINT +# undef CHECK_MALLOC_TOO_LATE_FOR +# undef CHECK_MALLOC_TOO_LATE_FOR_ +# undef check_offset_max +# undef check_offset_min +# undef check_substr +# undef check_utf8 +# undef child_offset_bits +# undef CHR_SVLEN +# undef ckWARN2_non_literal_string +# undef ckWARN2reg +# undef ckWARN2reg_d +# undef ckWARN3reg +# undef ckWARN4reg +# undef ckWARNdep +# undef ckWARNexperimental +# undef ckWARNexperimental_with_arg +# undef ckWARNreg +# undef ckWARNregdep +# undef classnum_to_namedclass +# undef CLEAR_ARGARRAY +# undef CLEAR_OPTSTART +# undef CLEARFEATUREBITS +# undef cLISTOP +# undef cLOGOP +# undef cLOOP +# undef CLOSE +# undef CLOSE_t8 +# undef CLOSE_t8_p8 +# undef CLOSE_t8_pb +# undef CLOSE_tb +# undef CLOSE_tb_p8 +# undef CLOSE_tb_pb +# undef CLUMP +# undef CLUMP_2IV +# undef CLUMP_2UV +# undef CLUMP_t8 +# undef CLUMP_t8_p8 +# undef CLUMP_t8_pb +# undef CLUMP_tb +# undef CLUMP_tb_p8 +# undef CLUMP_tb_pb +# undef cMETHOP +# undef cMETHOP_meth +# undef cMETHOP_rclass +# undef cMETHOPo_meth +# undef cMETHOPo_rclass +# undef cMETHOPx_meth +# undef cMETHOPx_rclass +# undef COMBINING_DOT_ABOVE_UTF8 +# undef COMBINING_GRAVE_ACCENT_UTF8 +# undef COMBINING_GREEK_YPOGEGRAMMENI_UTF8 +# undef COMMIT +# undef COMMIT_next +# undef COMMIT_next_fail +# undef COMMIT_next_fail_t8 +# undef COMMIT_next_fail_t8_p8 +# undef COMMIT_next_fail_t8_pb +# undef COMMIT_next_fail_tb +# undef COMMIT_next_fail_tb_p8 +# undef COMMIT_next_fail_tb_pb +# undef COMMIT_next_t8 +# undef COMMIT_next_t8_p8 +# undef COMMIT_next_t8_pb +# undef COMMIT_next_tb +# undef COMMIT_next_tb_p8 +# undef COMMIT_next_tb_pb +# undef COMMIT_t8 +# undef COMMIT_t8_p8 +# undef COMMIT_t8_pb +# undef COMMIT_tb +# undef COMMIT_tb_p8 +# undef COMMIT_tb_pb +# undef COP_SEQ_RANGE_HIGH +# undef COP_SEQ_RANGE_LOW +# undef COP_SEQMAX_INC +# undef CopFEATURES_setfrom +# undef CopFILE_copy_x +# undef CopFILE_debug +# undef CopFILE_free_x +# undef CopFILE_set_x +# undef CopFILE_setn_x +# undef CopFILEAVx +# undef COPHH_EXISTS +# undef cophh_exists_pv +# undef cophh_exists_pvs +# undef cophh_exists_sv +# undef CopHINTHASH_set +# undef CopHINTS_set +# undef CopLABEL_alloc +# undef CopLINE_dec +# undef CopLINE_inc +# undef CopLINE_set +# undef CopSTASH_ne +# undef copy_length +# undef cPADOP +# undef cPADOPo +# undef cPADOPx +# undef cPMOP +# undef cPVOP +# undef CR_NATIVE +# undef cSVOP +# undef cSVOP_sv +# undef cSVOPx_svp +# undef Ctl +# undef cUNOP +# undef cUNOP_AUX +# undef CURLY +# undef CURLY_B_max +# undef CURLY_B_max_fail +# undef CURLY_B_max_fail_t8 +# undef CURLY_B_max_fail_t8_p8 +# undef CURLY_B_max_fail_t8_pb +# undef CURLY_B_max_fail_tb +# undef CURLY_B_max_fail_tb_p8 +# undef CURLY_B_max_fail_tb_pb +# undef CURLY_B_max_t8 +# undef CURLY_B_max_t8_p8 +# undef CURLY_B_max_t8_pb +# undef CURLY_B_max_tb +# undef CURLY_B_max_tb_p8 +# undef CURLY_B_max_tb_pb +# undef CURLY_B_min +# undef CURLY_B_min_fail +# undef CURLY_B_min_fail_t8 +# undef CURLY_B_min_fail_t8_p8 +# undef CURLY_B_min_fail_t8_pb +# undef CURLY_B_min_fail_tb +# undef CURLY_B_min_fail_tb_p8 +# undef CURLY_B_min_fail_tb_pb +# undef CURLY_B_min_t8 +# undef CURLY_B_min_t8_p8 +# undef CURLY_B_min_t8_pb +# undef CURLY_B_min_tb +# undef CURLY_B_min_tb_p8 +# undef CURLY_B_min_tb_pb +# undef CURLY_t8 +# undef CURLY_t8_p8 +# undef CURLY_t8_pb +# undef CURLY_tb +# undef CURLY_tb_p8 +# undef CURLY_tb_pb +# undef CURLYM +# undef CURLYM_A +# undef CURLYM_A_fail +# undef CURLYM_A_fail_t8 +# undef CURLYM_A_fail_t8_p8 +# undef CURLYM_A_fail_t8_pb +# undef CURLYM_A_fail_tb +# undef CURLYM_A_fail_tb_p8 +# undef CURLYM_A_fail_tb_pb +# undef CURLYM_A_t8 +# undef CURLYM_A_t8_p8 +# undef CURLYM_A_t8_pb +# undef CURLYM_A_tb +# undef CURLYM_A_tb_p8 +# undef CURLYM_A_tb_pb +# undef CURLYM_B +# undef CURLYM_B_fail +# undef CURLYM_B_fail_t8 +# undef CURLYM_B_fail_t8_p8 +# undef CURLYM_B_fail_t8_pb +# undef CURLYM_B_fail_tb +# undef CURLYM_B_fail_tb_p8 +# undef CURLYM_B_fail_tb_pb +# undef CURLYM_B_t8 +# undef CURLYM_B_t8_p8 +# undef CURLYM_B_t8_pb +# undef CURLYM_B_tb +# undef CURLYM_B_tb_p8 +# undef CURLYM_B_tb_pb +# undef CURLYM_t8 +# undef CURLYM_t8_p8 +# undef CURLYM_t8_pb +# undef CURLYM_tb +# undef CURLYM_tb_p8 +# undef CURLYM_tb_pb +# undef CURLYN +# undef CURLYN_t8 +# undef CURLYN_t8_p8 +# undef CURLYN_t8_pb +# undef CURLYN_tb +# undef CURLYN_tb_p8 +# undef CURLYN_tb_pb +# undef CURLYX +# undef CURLYX_end +# undef CURLYX_end_fail +# undef CURLYX_end_fail_t8 +# undef CURLYX_end_fail_t8_p8 +# undef CURLYX_end_fail_t8_pb +# undef CURLYX_end_fail_tb +# undef CURLYX_end_fail_tb_p8 +# undef CURLYX_end_fail_tb_pb +# undef CURLYX_end_t8 +# undef CURLYX_end_t8_p8 +# undef CURLYX_end_t8_pb +# undef CURLYX_end_tb +# undef CURLYX_end_tb_p8 +# undef CURLYX_end_tb_pb +# undef CURLYX_t8 +# undef CURLYX_t8_p8 +# undef CURLYX_t8_pb +# undef CURLYX_tb +# undef CURLYX_tb_p8 +# undef CURLYX_tb_pb +# undef CURRENT_FEATURE_BUNDLE +# undef CURRENT_HINTS +# undef CUTGROUP +# undef CUTGROUP_next +# undef CUTGROUP_next_fail +# undef CUTGROUP_next_fail_t8 +# undef CUTGROUP_next_fail_t8_p8 +# undef CUTGROUP_next_fail_t8_pb +# undef CUTGROUP_next_fail_tb +# undef CUTGROUP_next_fail_tb_p8 +# undef CUTGROUP_next_fail_tb_pb +# undef CUTGROUP_next_t8 +# undef CUTGROUP_next_t8_p8 +# undef CUTGROUP_next_t8_pb +# undef CUTGROUP_next_tb +# undef CUTGROUP_next_tb_p8 +# undef CUTGROUP_next_tb_pb +# undef CUTGROUP_t8 +# undef CUTGROUP_t8_p8 +# undef CUTGROUP_t8_pb +# undef CUTGROUP_tb +# undef CUTGROUP_tb_p8 +# undef CUTGROUP_tb_pb +# undef cv_ckproto +# undef cv_dup +# undef cv_dup_inc +# undef CV_UNDEF_KEEP_NAME +# undef CvANON_on +# undef CvAUTOLOAD +# undef CvAUTOLOAD_off +# undef CvAUTOLOAD_on +# undef CvCLONE +# undef CvCLONE_off +# undef CvCLONE_on +# undef CvCLONED_off +# undef CvCLONED_on +# undef CvCVGV_RC +# undef CvCVGV_RC_off +# undef CvCVGV_RC_on +# undef CvDEPTHunsafe +# undef CvDYNFILE +# undef CvDYNFILE_off +# undef CvDYNFILE_on +# undef CvEVAL +# undef CvEVAL_COMPILED +# undef CvEVAL_COMPILED_off +# undef CvEVAL_COMPILED_on +# undef CvEVAL_off +# undef CvEVAL_on +# undef CVf_BUILTIN_ATTRS +# undef CVf_METHOD +# undef CvFILE +# undef CvFILE_set_from_cop +# undef CvFILEGV +# undef CvGvNAME_HEK +# undef CvHASEVAL +# undef CvHASEVAL_off +# undef CvHASEVAL_on +# undef CvHASGV +# undef CvIsMETHOD +# undef CvIsMETHOD_off +# undef CvIsMETHOD_on +# undef CvISXSUB_off +# undef CvLEXICAL +# undef CvLEXICAL_off +# undef CvLEXICAL_on +# undef CvLVALUE_off +# undef CvMETHOD +# undef CvMETHOD_off +# undef CvMETHOD_on +# undef CvNAME_HEK_set +# undef CvNAMED_off +# undef CvNAMED_on +# undef CvNODEBUG +# undef CvNODEBUG_off +# undef CvNODEBUG_on +# undef CvNOWARN_AMBIGUOUS +# undef CvNOWARN_AMBIGUOUS_off +# undef CvNOWARN_AMBIGUOUS_on +# undef CvOUTSIDE +# undef CvOUTSIDE_SEQ +# undef CvPADLIST_set +# undef CvPROTO +# undef CvPROTOLEN +# undef CvREFCOUNTED_ANYSV +# undef CvREFCOUNTED_ANYSV_off +# undef CvSIGNATURE +# undef CvSIGNATURE_off +# undef CvSIGNATURE_on +# undef CvSLABBED +# undef CvSLABBED_off +# undef CvSLABBED_on +# undef CvSPECIAL +# undef CvSPECIAL_off +# undef CvSPECIAL_on +# undef CvSTASH_set +# undef CvUNIQUE +# undef CvUNIQUE_off +# undef CvUNIQUE_on +# undef CvWEAKOUTSIDE +# undef CvWEAKOUTSIDE_off +# undef CvWEAKOUTSIDE_on +# undef CvXS_RCSTACK +# undef CX_CURPAD_SAVE +# undef CX_CURPAD_SV +# undef CX_DEBUG +# undef CX_POP_SAVEARRAY +# undef CX_POPSUBST +# undef CX_PUSHSUB_GET_LVALUE_MASK +# undef CX_PUSHSUBST +# undef CxEVAL_TXT_REFCNTED +# undef CxEVALBLOCK +# undef CxFOREACH +# undef CxHASARGS +# undef CxITERVAR +# undef CxLABEL +# undef CxLABEL_len +# undef CxLABEL_len_flags +# undef CxLVAL +# undef CxOLD_IN_EVAL +# undef CxOLD_OP_TYPE +# undef CxONCE +# undef CXp_TRYBLOCK +# undef CxPADLOOP +# undef CxREALEVAL +# undef cxstack_max +# undef CxTRY +# undef CxTRYBLOCK +# undef CxTYPE_is_LOOP +# undef dATARGET +# undef DBVARMG_COUNT +# undef DBVARMG_SIGNAL +# undef DBVARMG_SINGLE +# undef DBVARMG_TRACE +# undef DEBUG_A +# undef DEBUG_A_FLAG +# undef DEBUG_A_TEST +# undef DEBUG_A_TEST_ +# undef DEBUG_B +# undef DEBUG_B_FLAG +# undef DEBUG_B_TEST +# undef DEBUG_B_TEST_ +# undef DEBUG_BUFFERS_r +# undef DEBUG_c +# undef DEBUG_c_FLAG +# undef DEBUG_c_TEST +# undef DEBUG_c_TEST_ +# undef DEBUG_COMPILE_r +# undef DEBUG_D +# undef DEBUG_D_FLAG +# undef DEBUG_D_TEST +# undef DEBUG_D_TEST_ +# undef DEBUG_DB_RECURSE_FLAG +# undef DEBUG_DUMP_PRE_OPTIMIZE_r +# undef DEBUG_DUMP_r +# undef DEBUG_EXECUTE_r +# undef DEBUG_EXTRA_r +# undef DEBUG_f +# undef DEBUG_f_FLAG +# undef DEBUG_f_TEST +# undef DEBUG_f_TEST_ +# undef DEBUG_FLAGS_r +# undef DEBUG_GPOS_r +# undef DEBUG_h_FLAG +# undef DEBUG_h_TEST +# undef DEBUG_h_TEST_ +# undef DEBUG_i +# undef DEBUG_i_FLAG +# undef DEBUG_i_TEST +# undef DEBUG_i_TEST_ +# undef DEBUG_INTUIT_r +# undef DEBUG_J_FLAG +# undef DEBUG_J_TEST +# undef DEBUG_J_TEST_ +# undef DEBUG_L +# undef DEBUG_L_TEST +# undef DEBUG_L_TEST_ +# undef DEBUG_M +# undef DEBUG_m +# undef DEBUG_M_FLAG +# undef DEBUG_m_FLAG +# undef DEBUG_M_TEST +# undef DEBUG_m_TEST +# undef DEBUG_M_TEST_ +# undef DEBUG_m_TEST_ +# undef DEBUG_MASK +# undef DEBUG_MATCH_r +# undef DEBUG_o +# undef DEBUG_o_FLAG +# undef DEBUG_o_TEST +# undef DEBUG_o_TEST_ +# undef DEBUG_OPTIMISE_MORE_r +# undef DEBUG_OPTIMISE_r +# undef DEBUG_P +# undef DEBUG_p +# undef DEBUG_P_FLAG +# undef DEBUG_p_FLAG +# undef DEBUG_P_TEST +# undef DEBUG_p_TEST +# undef DEBUG_P_TEST_ +# undef DEBUG_p_TEST_ +# undef DEBUG_PARSE_r +# undef DEBUG_PEEP +# undef DEBUG_Pv +# undef DEBUG_Pv_TEST +# undef DEBUG_Pv_TEST_ +# undef DEBUG_q +# undef DEBUG_q_FLAG +# undef DEBUG_q_TEST +# undef DEBUG_q_TEST_ +# undef DEBUG_R +# undef DEBUG_R_FLAG +# undef DEBUG_R_TEST +# undef DEBUG_r_TEST +# undef DEBUG_R_TEST_ +# undef DEBUG_r_TEST_ +# undef DEBUG_RExC_seen +# undef DEBUG_S +# undef DEBUG_S_FLAG +# undef DEBUG_S_TEST +# undef DEBUG_S_TEST_ +# undef DEBUG_SHOW_STUDY_FLAG +# undef DEBUG_STACK_r +# undef DEBUG_STATE_r +# undef DEBUG_STUDYDATA +# undef DEBUG_T +# undef DEBUG_t +# undef DEBUG_T_FLAG +# undef DEBUG_t_FLAG +# undef DEBUG_T_TEST +# undef DEBUG_t_TEST +# undef DEBUG_T_TEST_ +# undef DEBUG_t_TEST_ +# undef DEBUG_TEST_r +# undef DEBUG_TOP_FLAG +# undef DEBUG_TRIE_COMPILE_MORE_r +# undef DEBUG_TRIE_COMPILE_r +# undef DEBUG_TRIE_EXECUTE_MORE_r +# undef DEBUG_TRIE_EXECUTE_r +# undef DEBUG_TRIE_r +# undef DEBUG_U +# undef DEBUG_u +# undef DEBUG_U_FLAG +# undef DEBUG_u_FLAG +# undef DEBUG_U_TEST +# undef DEBUG_u_TEST +# undef DEBUG_U_TEST_ +# undef DEBUG_u_TEST_ +# undef DEBUG_Uv +# undef DEBUG_Uv_TEST +# undef DEBUG_Uv_TEST_ +# undef DEBUG_X +# undef DEBUG_x +# undef DEBUG_x_FLAG +# undef DEBUG_X_TEST +# undef DEBUG_x_TEST +# undef DEBUG_X_TEST_ +# undef DEBUG_x_TEST_ +# undef DEBUG_y +# undef DEBUG_y_FLAG +# undef DEBUG_y_TEST +# undef DEBUG_yv +# undef DEBUG_yv_TEST +# undef DEBUG_yv_TEST_ +# undef DECLARE_AND_GET_RE_DEBUG_FLAGS +# undef DECLARE_AND_GET_RE_DEBUG_FLAGS_NON_REGEX +# undef DEFERRED_COULD_BE_OFFICIAL_MARKERc +# undef DEFERRED_COULD_BE_OFFICIAL_MARKERs +# undef DEFERRED_USER_DEFINED_INDEX +# undef DEFINEP +# undef DEFINEP_t8 +# undef DEFINEP_t8_p8 +# undef DEFINEP_t8_pb +# undef DEFINEP_tb +# undef DEFINEP_tb_p8 +# undef DEFINEP_tb_pb +# undef del_body_by_type +# undef DEL_NATIVE +# undef DEPENDS_SEMANTICS +# undef deprecate +# undef deprecate_disappears_in +# undef deprecate_fatal_in +# undef DEPRECATED_OPENING_NON_UTF8_BRACKETS +# undef DEPRECATED_OPENING_UTF8_BRACKETS +# undef DFA_RETURN_FAILURE_ +# undef DFA_RETURN_SUCCESS_ +# undef DFA_TEASE_APART_FF_ +# undef DIE +# undef DISABLE_LC_NUMERIC_CHANGES +# undef djSP +# undef DM_ARRAY_ISA +# undef DM_DELAY +# undef DM_EGID +# undef DM_EUID +# undef DM_GID +# undef DM_RGID +# undef DM_RUID +# undef DM_UID +# undef do_aexec +# undef do_exec +# undef DOUBLE_BIG_ENDIAN +# undef DOUBLE_HAS_INF +# undef DOUBLE_IS_IEEE_FORMAT +# undef DOUBLE_IS_VAX_FLOAT +# undef DOUBLE_LITTLE_ENDIAN +# undef DOUBLE_MIX_ENDIAN +# undef DOUBLE_VAX_ENDIAN +# undef dPOPiv +# undef dPOPnv +# undef dPOPnv_nomg +# undef dPOPPOPiirl +# undef dPOPPOPnnrl +# undef dPOPPOPssrl +# undef dPOPss +# undef dPOPTOPiirl +# undef dPOPTOPiirl_nomg +# undef dPOPTOPiirl_ul_nomg +# undef dPOPTOPnnrl +# undef dPOPTOPnnrl_nomg +# undef dPOPTOPssrl +# undef dPOPuv +# undef dPOPXiirl +# undef dPOPXiirl_ul_nomg +# undef dPOPXnnrl +# undef dPOPXssrl +# undef dSS_ADD +# undef dTARGETSTACKED +# undef dTHX_DEBUGGING +# undef dTHXo +# undef dTHXs +# undef dTHXx +# undef dTOPiv +# undef dTOPnv +# undef dTOPss +# undef dTOPuv +# undef DUMP_FEATURE_BITS +# undef DUMPUNTIL +# undef DUP_WARNINGS +# undef dXSUB_SYS +# undef eC +# undef eI +# undef ELEMENT_RANGE_MATCHES_INVLIST +# undef EMBEDMYMALLOC +# undef EMULATE_THREAD_SAFE_LOCALES +# undef END +# undef END_t8 +# undef END_t8_p8 +# undef END_t8_pb +# undef END_tb +# undef END_tb_p8 +# undef END_tb_pb +# undef ENDGRENT_R_HAS_FPTR +# undef ENDLIKE +# undef ENDLIKE_t8 +# undef ENDLIKE_t8_p8 +# undef ENDLIKE_t8_pb +# undef ENDLIKE_tb +# undef ENDLIKE_tb_p8 +# undef ENDLIKE_tb_pb +# undef ENDPWENT_R_HAS_FPTR +# undef ENV_INIT +# undef ENV_TERM +# undef environ +# undef EOL +# undef EOL_t8 +# undef EOL_t8_p8 +# undef EOL_t8_pb +# undef EOL_tb +# undef EOL_tb_p8 +# undef EOL_tb_pb +# undef EOS +# undef EOS_t8 +# undef EOS_t8_p8 +# undef EOS_t8_pb +# undef EOS_tb +# undef EOS_tb_p8 +# undef EOS_tb_pb +# undef EVAL +# undef EVAL_B +# undef EVAL_B_fail +# undef EVAL_B_fail_t8 +# undef EVAL_B_fail_t8_p8 +# undef EVAL_B_fail_t8_pb +# undef EVAL_B_fail_tb +# undef EVAL_B_fail_tb_p8 +# undef EVAL_B_fail_tb_pb +# undef EVAL_B_t8 +# undef EVAL_B_t8_p8 +# undef EVAL_B_t8_pb +# undef EVAL_B_tb +# undef EVAL_B_tb_p8 +# undef EVAL_B_tb_pb +# undef EVAL_FLAGS_MASK +# undef EVAL_OPTIMISTIC_FLAG +# undef EVAL_postponed_AB +# undef EVAL_postponed_AB_fail +# undef EVAL_postponed_AB_fail_t8 +# undef EVAL_postponed_AB_fail_t8_p8 +# undef EVAL_postponed_AB_fail_t8_pb +# undef EVAL_postponed_AB_fail_tb +# undef EVAL_postponed_AB_fail_tb_p8 +# undef EVAL_postponed_AB_fail_tb_pb +# undef EVAL_postponed_AB_t8 +# undef EVAL_postponed_AB_t8_p8 +# undef EVAL_postponed_AB_t8_pb +# undef EVAL_postponed_AB_tb +# undef EVAL_postponed_AB_tb_p8 +# undef EVAL_postponed_AB_tb_pb +# undef EVAL_t8 +# undef EVAL_t8_p8 +# undef EVAL_t8_pb +# undef EVAL_tb +# undef EVAL_tb_p8 +# undef EVAL_tb_pb +# undef EXACT +# undef EXACT_REQ8 +# undef EXACT_REQ8_t8 +# undef EXACT_REQ8_t8_p8 +# undef EXACT_REQ8_t8_pb +# undef EXACT_REQ8_tb +# undef EXACT_REQ8_tb_p8 +# undef EXACT_REQ8_tb_pb +# undef EXACT_t8 +# undef EXACT_t8_p8 +# undef EXACT_t8_pb +# undef EXACT_tb +# undef EXACT_tb_p8 +# undef EXACT_tb_pb +# undef EXACTF +# undef EXACTF_t8 +# undef EXACTF_t8_p8 +# undef EXACTF_t8_pb +# undef EXACTF_tb +# undef EXACTF_tb_p8 +# undef EXACTF_tb_pb +# undef EXACTFAA +# undef EXACTFAA_NO_TRIE +# undef EXACTFAA_NO_TRIE_t8 +# undef EXACTFAA_NO_TRIE_t8_p8 +# undef EXACTFAA_NO_TRIE_t8_pb +# undef EXACTFAA_NO_TRIE_tb +# undef EXACTFAA_NO_TRIE_tb_p8 +# undef EXACTFAA_NO_TRIE_tb_pb +# undef EXACTFAA_t8 +# undef EXACTFAA_t8_p8 +# undef EXACTFAA_t8_pb +# undef EXACTFAA_tb +# undef EXACTFAA_tb_p8 +# undef EXACTFAA_tb_pb +# undef EXACTFL +# undef EXACTFL_t8 +# undef EXACTFL_t8_p8 +# undef EXACTFL_t8_pb +# undef EXACTFL_tb +# undef EXACTFL_tb_p8 +# undef EXACTFL_tb_pb +# undef EXACTFLU8 +# undef EXACTFLU8_t8 +# undef EXACTFLU8_t8_p8 +# undef EXACTFLU8_t8_pb +# undef EXACTFLU8_tb +# undef EXACTFLU8_tb_p8 +# undef EXACTFLU8_tb_pb +# undef EXACTFU +# undef EXACTFU_REQ8 +# undef EXACTFU_REQ8_t8 +# undef EXACTFU_REQ8_t8_p8 +# undef EXACTFU_REQ8_t8_pb +# undef EXACTFU_REQ8_tb +# undef EXACTFU_REQ8_tb_p8 +# undef EXACTFU_REQ8_tb_pb +# undef EXACTFU_S_EDGE +# undef EXACTFU_S_EDGE_t8 +# undef EXACTFU_S_EDGE_t8_p8 +# undef EXACTFU_S_EDGE_t8_pb +# undef EXACTFU_S_EDGE_tb +# undef EXACTFU_S_EDGE_tb_p8 +# undef EXACTFU_S_EDGE_tb_pb +# undef EXACTFU_t8 +# undef EXACTFU_t8_p8 +# undef EXACTFU_t8_pb +# undef EXACTFU_tb +# undef EXACTFU_tb_p8 +# undef EXACTFU_tb_pb +# undef EXACTFUP +# undef EXACTFUP_t8 +# undef EXACTFUP_t8_p8 +# undef EXACTFUP_t8_pb +# undef EXACTFUP_tb +# undef EXACTFUP_tb_p8 +# undef EXACTFUP_tb_pb +# undef EXACTL +# undef EXACTL_t8 +# undef EXACTL_t8_p8 +# undef EXACTL_t8_pb +# undef EXACTL_tb +# undef EXACTL_tb_p8 +# undef EXACTL_tb_pb +# undef EXEC_PAT_MOD +# undef EXEC_PAT_MODS +# undef EXPERIMENTAL_INPLACESCAN +# undef EXT_MGVTBL +# undef EXT_PAT_MODS +# undef EXTEND_MORTAL +# undef EXTEND_SKIP +# undef EXTRA_CLOSING_NON_UTF8_BRACKETS +# undef EXTRA_CLOSING_UTF8_BRACKETS +# undef EXTRA_OPENING_NON_UTF8_BRACKETS +# undef EXTRA_OPENING_UTF8_BRACKETS +# undef EXTRA_SIZE +# undef F_atan2_amg +# undef F_cos_amg +# undef F_exp_amg +# undef F_log_amg +# undef F_pow_amg +# undef F_sin_amg +# undef F_sqrt_amg +# undef FAIL +# undef FAIL2 +# undef FAIL3 +# undef FAIL_ +# undef FAKE_BIT_BUCKET +# undef FAKE_DEFAULT_SIGNAL_HANDLERS +# undef FAKE_PERSISTENT_SIGNAL_HANDLERS +# undef FATAL_ABOVE_FF_MSG +# undef FEATURE___SUB___BIT +# undef FEATURE___SUB___INDEX +# undef FEATURE___SUB___IS_ENABLED +# undef FEATURE_APOS_AS_NAME_SEP_BIT +# undef FEATURE_APOS_AS_NAME_SEP_INDEX +# undef FEATURE_APOS_AS_NAME_SEP_IS_ENABLED +# undef FEATURE_BAREWORD_FILEHANDLES_BIT +# undef FEATURE_BAREWORD_FILEHANDLES_INDEX +# undef FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED +# undef FEATURE_BITWISE_BIT +# undef FEATURE_BITWISE_INDEX +# undef FEATURE_BITWISE_IS_ENABLED +# undef FEATURE_BUNDLE_510 +# undef FEATURE_BUNDLE_511 +# undef FEATURE_BUNDLE_515 +# undef FEATURE_BUNDLE_523 +# undef FEATURE_BUNDLE_527 +# undef FEATURE_BUNDLE_535 +# undef FEATURE_BUNDLE_537 +# undef FEATURE_BUNDLE_539 +# undef FEATURE_BUNDLE_541 +# undef FEATURE_BUNDLE_CUSTOM +# undef FEATURE_BUNDLE_DEFAULT +# undef FEATURE_CLASS_BIT +# undef FEATURE_CLASS_INDEX +# undef FEATURE_CLASS_IS_ENABLED +# undef FEATURE_DEFER_BIT +# undef FEATURE_DEFER_INDEX +# undef FEATURE_DEFER_IS_ENABLED +# undef FEATURE_EVALBYTES_BIT +# undef FEATURE_EVALBYTES_INDEX +# undef FEATURE_EVALBYTES_IS_ENABLED +# undef FEATURE_FC_BIT +# undef FEATURE_FC_INDEX +# undef FEATURE_FC_IS_ENABLED +# undef FEATURE_INDIRECT_BIT +# undef FEATURE_INDIRECT_INDEX +# undef FEATURE_INDIRECT_IS_ENABLED +# undef FEATURE_IS_ENABLED_MASK +# undef FEATURE_ISA_BIT +# undef FEATURE_ISA_INDEX +# undef FEATURE_ISA_IS_ENABLED +# undef FEATURE_KEYWORD_ALL_BIT +# undef FEATURE_KEYWORD_ALL_INDEX +# undef FEATURE_KEYWORD_ALL_IS_ENABLED +# undef FEATURE_KEYWORD_ANY_BIT +# undef FEATURE_KEYWORD_ANY_INDEX +# undef FEATURE_KEYWORD_ANY_IS_ENABLED +# undef FEATURE_MODULE_TRUE_BIT +# undef FEATURE_MODULE_TRUE_INDEX +# undef FEATURE_MODULE_TRUE_IS_ENABLED +# undef FEATURE_MORE_DELIMS_BIT +# undef FEATURE_MORE_DELIMS_INDEX +# undef FEATURE_MORE_DELIMS_IS_ENABLED +# undef FEATURE_MULTIDIMENSIONAL_BIT +# undef FEATURE_MULTIDIMENSIONAL_INDEX +# undef FEATURE_MULTIDIMENSIONAL_IS_ENABLED +# undef FEATURE_MYREF_BIT +# undef FEATURE_MYREF_INDEX +# undef FEATURE_MYREF_IS_ENABLED +# undef FEATURE_POSTDEREF_QQ_BIT +# undef FEATURE_POSTDEREF_QQ_INDEX +# undef FEATURE_POSTDEREF_QQ_IS_ENABLED +# undef FEATURE_REFALIASING_BIT +# undef FEATURE_REFALIASING_INDEX +# undef FEATURE_REFALIASING_IS_ENABLED +# undef FEATURE_SAY_BIT +# undef FEATURE_SAY_INDEX +# undef FEATURE_SAY_IS_ENABLED +# undef FEATURE_SIGNATURES_BIT +# undef FEATURE_SIGNATURES_INDEX +# undef FEATURE_SIGNATURES_IS_ENABLED +# undef FEATURE_SMARTMATCH_BIT +# undef FEATURE_SMARTMATCH_INDEX +# undef FEATURE_SMARTMATCH_IS_ENABLED +# undef FEATURE_STATE_BIT +# undef FEATURE_STATE_INDEX +# undef FEATURE_STATE_IS_ENABLED +# undef FEATURE_SWITCH_BIT +# undef FEATURE_SWITCH_INDEX +# undef FEATURE_SWITCH_IS_ENABLED +# undef FEATURE_TRY_BIT +# undef FEATURE_TRY_INDEX +# undef FEATURE_TRY_IS_ENABLED +# undef FEATURE_UNICODE_BIT +# undef FEATURE_UNICODE_INDEX +# undef FEATURE_UNICODE_IS_ENABLED +# undef FEATURE_UNIEVAL_BIT +# undef FEATURE_UNIEVAL_INDEX +# undef FEATURE_UNIEVAL_IS_ENABLED +# undef FETCHFEATUREBITSHH +# undef FF_0DECIMAL +# undef FF_BLANK +# undef FF_CHECKCHOP +# undef FF_CHECKNL +# undef FF_CHOP +# undef FF_DECIMAL +# undef FF_END +# undef FF_FETCH +# undef FF_HALFSPACE +# undef FF_ITEM +# undef FF_LINEGLOB +# undef FF_LINEMARK +# undef FF_LINESNGL +# undef FF_LITERAL +# undef FF_MORE +# undef FF_NEWLINE +# undef FF_SKIP +# undef FF_SPACE +# undef Fflush +# undef FILL_ADVANCE_NODE +# undef FILL_ADVANCE_NODE_2ui_ARG +# undef FILL_ADVANCE_NODE_ARG1u +# undef FILL_ADVANCE_NODE_ARGp +# undef FILL_NODE +# undef FILTER_ISREADER +# undef FIND_RUNCV_level_eq +# undef FIND_RUNCV_padid_eq +# undef FIRST_BYTE +# undef FIRST_NON_ASCII_DECIMAL_DIGIT +# undef FIT_ARENA +# undef FIT_ARENA0 +# undef FIT_ARENAn +# undef FLAGS +# undef float_end_shift +# undef float_max_offset +# undef float_min_offset +# undef float_substr +# undef float_utf8 +# undef FmLINES +# undef FOLD +# undef FP_PINF +# undef FP_QNAN +# undef free_and_set_cop_warnings +# undef free_c_backtrace +# undef FROM_INTERNAL_SIZE +# undef FULL_TRIE_STUDY +# undef FUNCTION__ +# undef fwrite1 +# undef G_WARN_ALL_MASK +# undef G_WARN_ALL_OFF +# undef G_WARN_ALL_ON +# undef G_WARN_OFF +# undef G_WARN_ONCE +# undef GCC_DIAG_IGNORE_DECL +# undef GCC_DIAG_RESTORE_DECL +# undef get_extended_os_errno +# undef GET_REGCLASS_AUX_DATA +# undef GETATARGET +# undef GETGRENT_R_HAS_BUFFER +# undef GETGRENT_R_HAS_FPTR +# undef GETGRENT_R_HAS_PTR +# undef GETGRGID_R_HAS_BUFFER +# undef GETGRGID_R_HAS_PTR +# undef GETGRNAM_R_HAS_BUFFER +# undef GETGRNAM_R_HAS_PTR +# undef GETHOSTBYADDR_R_HAS_BUFFER +# undef GETHOSTBYADDR_R_HAS_ERRNO +# undef GETHOSTBYADDR_R_HAS_PTR +# undef GETHOSTBYNAME_R_HAS_BUFFER +# undef GETHOSTBYNAME_R_HAS_ERRNO +# undef GETHOSTBYNAME_R_HAS_PTR +# undef GETHOSTENT_R_HAS_BUFFER +# undef GETHOSTENT_R_HAS_ERRNO +# undef GETHOSTENT_R_HAS_PTR +# undef GETNETBYADDR_R_HAS_BUFFER +# undef GETNETBYADDR_R_HAS_ERRNO +# undef GETNETBYADDR_R_HAS_PTR +# undef GETNETBYNAME_R_HAS_BUFFER +# undef GETNETBYNAME_R_HAS_ERRNO +# undef GETNETBYNAME_R_HAS_PTR +# undef GETNETENT_R_HAS_BUFFER +# undef GETNETENT_R_HAS_ERRNO +# undef GETNETENT_R_HAS_PTR +# undef GETPROTOBYNAME_R_HAS_BUFFER +# undef GETPROTOBYNAME_R_HAS_PTR +# undef GETPROTOBYNUMBER_R_HAS_BUFFER +# undef GETPROTOBYNUMBER_R_HAS_PTR +# undef GETPROTOENT_R_HAS_BUFFER +# undef GETPROTOENT_R_HAS_PTR +# undef GETPWENT_R_HAS_BUFFER +# undef GETPWENT_R_HAS_FPTR +# undef GETPWENT_R_HAS_PTR +# undef GETPWNAM_R_HAS_BUFFER +# undef GETPWNAM_R_HAS_PTR +# undef GETPWUID_R_HAS_PTR +# undef GETSERVBYNAME_R_HAS_BUFFER +# undef GETSERVBYNAME_R_HAS_PTR +# undef GETSERVBYPORT_R_HAS_BUFFER +# undef GETSERVBYPORT_R_HAS_PTR +# undef GETSERVENT_R_HAS_BUFFER +# undef GETSERVENT_R_HAS_PTR +# undef GETSPNAM_R_HAS_BUFFER +# undef GETSPNAM_R_HAS_PTR +# undef GETTARGET +# undef GETTARGETSTACKED +# undef GOSUB +# undef GOSUB_t8 +# undef GOSUB_t8_p8 +# undef GOSUB_t8_pb +# undef GOSUB_tb +# undef GOSUB_tb_p8 +# undef GOSUB_tb_pb +# undef GPOS +# undef GPOS_t8 +# undef GPOS_t8_p8 +# undef GPOS_t8_pb +# undef GPOS_tb +# undef GPOS_tb_p8 +# undef GPOS_tb_pb +# undef GROUPP +# undef GROUPP_t8 +# undef GROUPP_t8_p8 +# undef GROUPP_t8_pb +# undef GROUPP_tb +# undef GROUPP_tb_p8 +# undef GROUPP_tb_pb +# undef GROUPPN +# undef GROUPPN_t8 +# undef GROUPPN_t8_p8 +# undef GROUPPN_t8_pb +# undef GROUPPN_tb +# undef GROUPPN_tb_p8 +# undef GROUPPN_tb_pb +# undef GV_AUTOLOAD +# undef GV_CROAK +# undef gv_dup +# undef gv_dup_inc +# undef gv_method_changed +# undef GV_NOADD_MASK +# undef GvASSUMECV +# undef GvASSUMECV_off +# undef GvASSUMECV_on +# undef GvCV_set +# undef GvEGVx +# undef GvENAME +# undef GvENAME_HEK +# undef GvENAMELEN +# undef GvENAMEUTF8 +# undef GVF_NOADD +# undef GvFILE +# undef GvFLAGS +# undef GvFORM +# undef GvGP_set +# undef GvIMPORTED +# undef GvIMPORTED_AV +# undef GvIMPORTED_AV_off +# undef GvIMPORTED_AV_on +# undef GvIMPORTED_CV +# undef GvIMPORTED_CV_off +# undef GvIMPORTED_CV_on +# undef GvIMPORTED_HV +# undef GvIMPORTED_HV_off +# undef GvIMPORTED_HV_on +# undef GvIMPORTED_off +# undef GvIMPORTED_on +# undef GvIMPORTED_SV +# undef GvIMPORTED_SV_off +# undef GvIMPORTED_SV_on +# undef GvIN_PAD +# undef GvIN_PAD_off +# undef GvIN_PAD_on +# undef GvINTRO +# undef GvINTRO_off +# undef GvINTRO_on +# undef GvIOn +# undef GvMULTI +# undef GvMULTI_off +# undef GvMULTI_on +# undef GvONCE_FATAL +# undef GvONCE_FATAL_off +# undef GvONCE_FATAL_on +# undef GvREFCNT +# undef HADNV +# undef HAS_BUILTIN_UNREACHABLE +# undef HAS_C99 +# undef HAS_CHOWN +# undef HAS_EXTENDED_OS_ERRNO +# undef HAS_EXTRA_LONG_UTF8 +# undef HAS_GROUP +# undef HAS_IGNORED_LOCALE_CATEGORIES_ +# undef HAS_IOCTL +# undef HAS_KILL +# undef HAS_POSIX_2008_LOCALE +# undef HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP +# undef HAS_UTIME +# undef HAS_WAIT +# undef HASARENA +# undef HASATTRIBUTE_ALWAYS_INLINE +# undef HASATTRIBUTE_DEPRECATED +# undef HASATTRIBUTE_FORMAT +# undef HASATTRIBUTE_MALLOC +# undef HASATTRIBUTE_NONNULL +# undef HASATTRIBUTE_NORETURN +# undef HASATTRIBUTE_PURE +# undef HASATTRIBUTE_UNUSED +# undef HASATTRIBUTE_VISIBILITY +# undef HASATTRIBUTE_WARN_UNUSED_RESULT +# undef HASWIDTH +# undef HEK_BASESIZE +# undef HEK_UTF8_off +# undef HEK_UTF8_on +# undef HEK_WASUTF8_off +# undef HEK_WASUTF8_on +# undef HeKFLAGS +# undef HeKLEN_UTF8 +# undef HeKWASUTF8 +# undef HIGHEST_ANYOF_HRx_BYTE +# undef HIGHEST_CASE_CHANGING_CP +# undef HINT_ALL_STRICT +# undef HINT_ASCII_ENCODING +# undef HINT_EXPLICIT_STRICT_REFS +# undef HINT_EXPLICIT_STRICT_SUBS +# undef HINT_EXPLICIT_STRICT_VARS +# undef HINT_FEATURE_MASK +# undef HINT_FEATURE_SHIFT +# undef HINT_FILETEST_ACCESS +# undef HINT_LEXICAL_IO_IN +# undef HINT_LEXICAL_IO_OUT +# undef HINT_NEW_BINARY +# undef HINT_NEW_FLOAT +# undef HINT_NEW_INTEGER +# undef HINT_NEW_RE +# undef HINT_NEW_STRING +# undef HINT_NO_AMAGIC +# undef HINT_RE_FLAGS +# undef HINT_RE_TAINT +# undef HINT_STRICT_SUBS +# undef HINT_STRICT_VARS +# undef HINT_UNI_8_BIT +# undef HINT_UTF8 +# undef HINTS_DEFAULT +# undef HINTS_REFCNT_INIT +# undef HINTS_REFCNT_TERM +# undef HS_GETAPIVERLEN +# undef HS_GETINTERPSIZE +# undef HS_GETXSVERLEN +# undef HSm_XSVERLEN +# undef htoni +# undef htonl +# undef htons +# undef htovl +# undef htovs +# undef hv_deletehek +# undef hv_dup +# undef hv_dup_inc +# undef hv_existshek +# undef HV_FETCH_EMPTY_HE +# undef hv_fetchhek +# undef hv_storehek +# undef HvAMAGIC_on +# undef HVAUX_ARENA_ROOT_IX +# undef HvAUXf_IS_CLASS +# undef HvAUXf_NO_DEREF +# undef HvAUXf_SCAN_STASH +# undef HvEITER +# undef HvHASKFLAGS_off +# undef HvHASKFLAGS_on +# undef HVhek_ENABLEHVKFLAGS +# undef HVhek_FREEKEY +# undef HVhek_KEYCANONICAL +# undef HVhek_NOTSHARED +# undef HvKEYS +# undef HvLASTRAND_get +# undef HvLAZYDEL +# undef HvLAZYDEL_off +# undef HvLAZYDEL_on +# undef HvPLACEHOLDERS_set +# undef HVrhek_delete +# undef HVrhek_IV +# undef HVrhek_PV +# undef HVrhek_PV_UTF8 +# undef HVrhek_typemask +# undef HVrhek_undef +# undef HVrhek_UV +# undef HvSHAREKEYS +# undef HvSHAREKEYS_off +# undef HvSHAREKEYS_on +# undef HvSTASH_IS_CLASS +# undef HYPHEN_UTF8 +# undef I16_MIN +# undef I32_MAX_P1 +# undef I8_TO_NATIVE +# undef I_LIMITS +# undef I_STDARG +# undef IFMATCH +# undef IFMATCH_A +# undef IFMATCH_A_fail +# undef IFMATCH_A_fail_t8 +# undef IFMATCH_A_fail_t8_p8 +# undef IFMATCH_A_fail_t8_pb +# undef IFMATCH_A_fail_tb +# undef IFMATCH_A_fail_tb_p8 +# undef IFMATCH_A_fail_tb_pb +# undef IFMATCH_A_t8 +# undef IFMATCH_A_t8_p8 +# undef IFMATCH_A_t8_pb +# undef IFMATCH_A_tb +# undef IFMATCH_A_tb_p8 +# undef IFMATCH_A_tb_pb +# undef IFMATCH_t8 +# undef IFMATCH_t8_p8 +# undef IFMATCH_t8_pb +# undef IFMATCH_tb +# undef IFMATCH_tb_p8 +# undef IFMATCH_tb_pb +# undef IFTHEN +# undef IFTHEN_t8 +# undef IFTHEN_t8_p8 +# undef IFTHEN_t8_pb +# undef IFTHEN_tb +# undef IFTHEN_tb_p8 +# undef IFTHEN_tb_pb +# undef ILLEGAL_UTF8_BYTE +# undef IN_LC +# undef IN_LC_ALL_COMPILETIME +# undef IN_LC_ALL_RUNTIME +# undef IN_LC_COMPILETIME +# undef IN_LC_PARTIAL_COMPILETIME +# undef IN_LC_PARTIAL_RUNTIME +# undef IN_LC_RUNTIME +# undef IN_PARENS_PASS +# undef IN_SOME_LOCALE_FORM +# undef IN_UNI_8_BIT +# undef INCMARK +# undef INFNAN_NV_U8_DECL +# undef INFNAN_U8_NV_DECL +# undef init_os_extras +# undef INIT_TRACK_MEMPOOL +# undef INSUBP +# undef INSUBP_t8 +# undef INSUBP_t8_p8 +# undef INSUBP_t8_pb +# undef INSUBP_tb +# undef INSUBP_tb_p8 +# undef INSUBP_tb_pb +# undef INT64_MIN +# undef INT_64_T +# undef INT_PAT_MODS +# undef INVLIST_INDEX +# undef invlist_intersection_complement_2nd_ +# undef invlist_union_complement_2nd_ +# undef io_dup +# undef io_dup_inc +# undef IoANY +# undef IOf_ARGV +# undef IOf_DIDTOP +# undef IOf_NOLINE +# undef IOf_START +# undef IoTYPE_APPEND +# undef IoTYPE_CLOSED +# undef IoTYPE_IMPLICIT +# undef IoTYPE_NUMERIC +# undef IoTYPE_PIPE +# undef IoTYPE_RDONLY +# undef IoTYPE_RDWR +# undef IoTYPE_SOCKET +# undef IoTYPE_STD +# undef IoTYPE_WRONLY +# undef is_ANYOF_SYNTHETIC +# undef IS_ANYOF_TRIE +# undef is_HANGUL_ED_utf8_safe +# undef is_LARGER_NON_CHARS_utf8 +# undef IS_NON_FINAL_FOLD +# undef is_NONCHAR_utf8_safe +# undef IS_NUMERIC_RADIX +# undef IS_PADCONST +# undef IS_PADGV +# undef is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8 +# undef is_QUOTEMETA_high +# undef IS_SAFE_PATHNAME +# undef is_SHORTER_NON_CHARS_utf8 +# undef is_SPACE_utf8_safe_backwards +# undef is_SURROGATE_utf8 +# undef is_SURROGATE_utf8_safe +# undef IS_TRIE_AC +# undef IS_UTF8_CHAR +# undef ISA_VERSION_OBJ +# undef isALNUM_lazy_if_safe +# undef isALNUM_LC_utf8 +# undef isALNUM_LC_utf8_safe +# undef isALNUM_utf8 +# undef isALNUM_utf8_safe +# undef isALNUMC_LC_utf8_safe +# undef isALNUMC_uni +# undef isALNUMC_utf8 +# undef isALNUMC_utf8_safe +# undef isALNUMU +# undef isALPHA_FOLD_NE +# undef isALPHA_LC_utf8 +# undef isALPHANUMERIC_LC_utf8 +# undef isALPHAU +# undef isASCII_LC_utf8 +# undef isBACKSLASHED_PUNCT +# undef isBLANK_LC_uni +# undef isBLANK_LC_utf8 +# undef isCASED_LC +# undef isCNTRL_LC_utf8 +# undef isDEBUG_WILDCARD +# undef isDIGIT_LC_utf8 +# undef isEXACT_REQ8 +# undef isEXACTFish +# undef isGRAPH_LC_utf8 +# undef isGV_or_RVCV +# undef isGV_with_GP_off +# undef isGV_with_GP_on +# undef isIDCONT_lazy_if_safe +# undef isIDCONT_LC_utf8 +# undef isIDFIRST_LC_utf8 +# undef isLEXWARN_off +# undef isLEXWARN_on +# undef isLOWER_LC_utf8 +# undef isNON_BRACE_QUANTIFIER +# undef isnormal +# undef isPRINT_LC_utf8 +# undef isPSXSPC_LC_utf8 +# undef isPUNCT_LC_utf8 +# undef isQUANTIFIER +# undef isSPACE_LC_utf8 +# undef isUNICODE_POSSIBLY_PROBLEMATIC +# undef isUPPER_LC_utf8 +# undef isVERTWS_utf8 +# undef isWARN_on +# undef isWARN_ONCE +# undef isWORDCHAR_lazy_if_safe +# undef isWORDCHAR_LC_utf8 +# undef isXDIGIT_LC_utf8 +# undef IV_DIG +# undef IV_MAX_P1 +# undef JE_OLD_STACK_HWM_zero +# undef JMPENV_BOOTSTRAP +# undef kBINOP +# undef kCOP +# undef KEEPCOPY_PAT_MODS +# undef KEEPS +# undef KEEPS_next +# undef KEEPS_next_fail +# undef KEEPS_next_fail_t8 +# undef KEEPS_next_fail_t8_p8 +# undef KEEPS_next_fail_t8_pb +# undef KEEPS_next_fail_tb +# undef KEEPS_next_fail_tb_p8 +# undef KEEPS_next_fail_tb_pb +# undef KEEPS_next_t8 +# undef KEEPS_next_t8_p8 +# undef KEEPS_next_t8_pb +# undef KEEPS_next_tb +# undef KEEPS_next_tb_p8 +# undef KEEPS_next_tb_pb +# undef KEEPS_t8 +# undef KEEPS_t8_p8 +# undef KEEPS_t8_pb +# undef KEEPS_tb +# undef KEEPS_tb_p8 +# undef KEEPS_tb_pb +# undef KERNEL +# undef KEY_write +# undef KEY_x +# undef KEY_xor +# undef KEY_y +# undef KEYWORD_PLUGIN_DECLINE +# undef KEYWORD_PLUGIN_MUTEX_INIT +# undef KEYWORD_PLUGIN_MUTEX_TERM +# undef kGVOP_gv +# undef kLISTOP +# undef kLOGOP +# undef kLOOP +# undef kMETHOP +# undef kPADOP +# undef kPMOP +# undef kPVOP +# undef kSVOP +# undef kSVOP_sv +# undef kUNOP_AUX +# undef LARGE_HASH_HEURISTIC +# undef LATIN_CAPITAL_LETTER_SHARP_S_UTF8 +# undef LATIN_SMALL_LETTER_DOTLESS_I_UTF8 +# undef LATIN_SMALL_LIGATURE_LONG_S_T_UTF8 +# undef LC_ADDRESS_AVAIL_ +# undef LC_COLLATE_AVAIL_ +# undef LC_CTYPE_AVAIL_ +# undef LC_IDENTIFICATION_AVAIL_ +# undef LC_MEASUREMENT_AVAIL_ +# undef LC_MESSAGES_AVAIL_ +# undef LC_MONETARY_AVAIL_ +# undef LC_NAME_AVAIL_ +# undef LC_NUMERIC_AVAIL_ +# undef LC_PAPER_AVAIL_ +# undef LC_SYNTAX_AVAIL_ +# undef LC_TELEPHONE_AVAIL_ +# undef LC_TIME_AVAIL_ +# undef LC_TOD_AVAIL_ +# undef LEX_DONT_CLOSE_RSFP +# undef LEX_EVALBYTES +# undef LEX_IGNORE_UTF8_HINTS +# undef LEX_NOTPARSING +# undef LEX_START_COPIED +# undef LEX_START_FLAGS +# undef LEX_START_SAME_FILTER +# undef LEXACT +# undef LEXACT_REQ8 +# undef LEXACT_REQ8_t8 +# undef LEXACT_REQ8_t8_p8 +# undef LEXACT_REQ8_t8_pb +# undef LEXACT_REQ8_tb +# undef LEXACT_REQ8_tb_p8 +# undef LEXACT_REQ8_tb_pb +# undef LEXACT_t8 +# undef LEXACT_t8_p8 +# undef LEXACT_t8_pb +# undef LEXACT_tb +# undef LEXACT_tb_p8 +# undef LEXACT_tb_pb +# undef LF_NATIVE +# undef LIB_INVARG +# undef LNBREAK +# undef LNBREAK_t8 +# undef LNBREAK_t8_p8 +# undef LNBREAK_t8_pb +# undef LNBREAK_tb +# undef LNBREAK_tb_p8 +# undef LNBREAK_tb_pb +# undef LOC +# undef LOCALE_CATEGORIES_COUNT_ +# undef LOCALE_INIT +# undef LOCALE_LOCK_DOES_SOMETHING_ +# undef locale_panic_ +# undef locale_panic_via_ +# undef LOCALE_PAT_MODS +# undef LOCALE_TERM +# undef LOCALE_TERM_POSIX_2008_ +# undef LOCK_LC_NUMERIC_STANDARD +# undef LOGICAL +# undef LOGICAL_t8 +# undef LOGICAL_t8_p8 +# undef LOGICAL_t8_pb +# undef LOGICAL_tb +# undef LOGICAL_tb_p8 +# undef LOGICAL_tb_pb +# undef LONG_DOUBLE_EQUALS_DOUBLE +# undef LONGDOUBLE_BIG_ENDIAN +# undef LONGDOUBLE_DOUBLEDOUBLE +# undef LONGDOUBLE_LITTLE_ENDIAN +# undef LONGDOUBLE_MIX_ENDIAN +# undef LONGDOUBLE_VAX_ENDIAN +# undef LONGDOUBLE_X86_80_BIT +# undef LONGJMP +# undef LONGJMP_t8 +# undef LONGJMP_t8_p8 +# undef LONGJMP_t8_pb +# undef LONGJMP_tb +# undef LONGJMP_tb_p8 +# undef LONGJMP_tb_pb +# undef LOOKBEHIND_END +# undef LOOKBEHIND_END_t8 +# undef LOOKBEHIND_END_t8_p8 +# undef LOOKBEHIND_END_t8_pb +# undef LOOKBEHIND_END_tb +# undef LOOKBEHIND_END_tb_p8 +# undef LOOKBEHIND_END_tb_pb +# undef LOOP_PAT_MODS +# undef LOWEST_ANYOF_HRx_BYTE +# undef lsbit_pos +# undef lsbit_pos_uintmax_ +# undef LVf_NEG_LEN +# undef LVf_NEG_OFF +# undef LVf_OUT_OF_RANGE +# undef LvFLAGS +# undef LVRET +# undef LvSTARGOFF +# undef LZC_TO_MSBIT_POS_ +# undef M_PAT_MODS +# undef MADE_EXACT_TRIE +# undef MADE_JUMP_TRIE +# undef MADE_TRIE +# undef magic_sethint_feature +# undef MALFORMED_UTF8_WARN +# undef MALLOC_CHECK_TAINT +# undef MALLOC_CHECK_TAINT2 +# undef MALLOC_INIT +# undef MALLOC_OVERHEAD +# undef MALLOC_TERM +# undef MALLOC_TOO_LATE_FOR +# undef MARK_NAUGHTY +# undef MARK_NAUGHTY_EXP +# undef MARKER1 +# undef MARKER2 +# undef MARKPOINT +# undef MARKPOINT_next +# undef MARKPOINT_next_fail +# undef MARKPOINT_next_fail_t8 +# undef MARKPOINT_next_fail_t8_p8 +# undef MARKPOINT_next_fail_t8_pb +# undef MARKPOINT_next_fail_tb +# undef MARKPOINT_next_fail_tb_p8 +# undef MARKPOINT_next_fail_tb_pb +# undef MARKPOINT_next_t8 +# undef MARKPOINT_next_t8_p8 +# undef MARKPOINT_next_t8_pb +# undef MARKPOINT_next_tb +# undef MARKPOINT_next_tb_p8 +# undef MARKPOINT_next_tb_pb +# undef MARKPOINT_t8 +# undef MARKPOINT_t8_p8 +# undef MARKPOINT_t8_pb +# undef MARKPOINT_tb +# undef MARKPOINT_tb_p8 +# undef MARKPOINT_tb_pb +# undef MAX_ANYOF_HRx_BYTE +# undef MAX_FEATURE_LEN +# undef MAX_PORTABLE_UTF8_TWO_BYTE +# undef MAX_SAVEt +# undef MAX_UNICODE_UTF8 +# undef MAXARG +# undef MAXARG3 +# undef MAYBE_DEREF_GV +# undef MAYBE_DEREF_GV_flags +# undef MAYBE_DEREF_GV_nomg +# undef MBOL +# undef MBOL_t8 +# undef MBOL_t8_p8 +# undef MBOL_t8_pb +# undef MBOL_tb +# undef MBOL_tb_p8 +# undef MBOL_tb_pb +# undef MEM_LOG_DEL_SV +# undef MEM_LOG_NEW_SV +# undef MEM_WRAP_CHECK_1 +# undef MEM_WRAP_CHECK_s +# undef MEMBER_TO_FPTR +# undef memENDs +# undef memGE +# undef memGT +# undef memLE +# undef memLT +# undef MEOL +# undef MEOL_t8 +# undef MEOL_t8_p8 +# undef MEOL_t8_pb +# undef MEOL_tb +# undef MEOL_tb_p8 +# undef MEOL_tb_pb +# undef MEXTEND +# undef MGf_GSKIP +# undef MGf_MINMATCH +# undef MGf_TAINTEDDIR +# undef MgPV +# undef MgPV_const +# undef MgPV_nolen_const +# undef MgSV +# undef MgTAINTEDDIR +# undef MgTAINTEDDIR_off +# undef MgTAINTEDDIR_on +# undef MI_INIT_WORKAROUND_PACK +# undef MINMOD +# undef MINMOD_t8 +# undef MINMOD_t8_p8 +# undef MINMOD_t8_pb +# undef MINMOD_tb +# undef MINMOD_tb_p8 +# undef MINMOD_tb_pb +# undef Mkdir +# undef MPH_BUCKETS +# undef MPH_RSHIFT +# undef MPH_VALt +# undef msbit_pos_uintmax_ +# undef MSPAGAIN +# undef MSVC_DIAG_IGNORE +# undef MSVC_DIAG_IGNORE_DECL +# undef MSVC_DIAG_RESTORE +# undef MSVC_DIAG_RESTORE_DECL +# undef MSVC_DIAG_RESTORE_STMT +# undef MUST_RESTART +# undef MUTEX_INIT_NEEDS_MUTEX_ZEROED +# undef my +# undef my_binmode +# undef MY_CXT_INIT_INTERP +# undef my_lstat +# undef my_stat +# undef N0 +# undef N1 +# undef N10 +# undef N11 +# undef N2 +# undef N3 +# undef N4 +# undef N5 +# undef N6 +# undef N7 +# undef N8 +# undef N9 +# undef namedclass_to_classnum +# undef NAN_COMPARE_BROKEN +# undef NANYOFM +# undef NANYOFM_t8 +# undef NANYOFM_t8_p8 +# undef NANYOFM_t8_pb +# undef NANYOFM_tb +# undef NANYOFM_tb_p8 +# undef NANYOFM_tb_pb +# undef NATIVE8_TO_UNI +# undef NATIVE_BYTE_IS_INVARIANT +# undef NATIVE_SKIP +# undef NATIVE_TO_ASCII +# undef NATIVE_TO_I8 +# undef NATIVE_TO_UTF +# undef NBOUND +# undef NBOUND_t8 +# undef NBOUND_t8_p8 +# undef NBOUND_t8_pb +# undef NBOUND_tb +# undef NBOUND_tb_p8 +# undef NBOUND_tb_pb +# undef NBOUNDA +# undef NBOUNDA_t8 +# undef NBOUNDA_t8_p8 +# undef NBOUNDA_t8_pb +# undef NBOUNDA_tb +# undef NBOUNDA_tb_p8 +# undef NBOUNDA_tb_pb +# undef NBOUNDL +# undef NBOUNDL_t8 +# undef NBOUNDL_t8_p8 +# undef NBOUNDL_t8_pb +# undef NBOUNDL_tb +# undef NBOUNDL_tb_p8 +# undef NBOUNDL_tb_pb +# undef NBOUNDU +# undef NBOUNDU_t8 +# undef NBOUNDU_t8_p8 +# undef NBOUNDU_t8_pb +# undef NBOUNDU_tb +# undef NBOUNDU_tb_p8 +# undef NBOUNDU_tb_pb +# undef NBSP_NATIVE +# undef NBSP_UTF8 +# undef NEED_UTF8 +# undef NEGATE_2IV +# undef NEGATE_2UV +# undef NEGATIVE_INDICES_VAR +# undef NETDB_R_OBSOLETE +# undef new_body_allocated +# undef new_body_from_arena +# undef new_NOARENA +# undef new_NOARENAZ +# undef new_SV +# undef NEW_VERSION +# undef new_XNV +# undef new_XPV +# undef new_XPVIV +# undef new_XPVNV +# undef NewOpSz +# undef NEXT_LINE_CHAR +# undef NEXT_OFF +# undef NO_ENV_ARRAY_IN_MAIN +# undef NO_ENVIRON_ARRAY +# undef NO_POSIX_2008_LOCALE +# undef NOARENA +# undef NOCAPTURE_PAT_MODS +# undef NODE_ALIGN +# undef NODE_ALIGN_FILL +# undef NODE_STEP_REGNODE +# undef NofAMmeth +# undef NOLINE +# undef NONDESTRUCT_PAT_MOD +# undef NONDESTRUCT_PAT_MODS +# undef NONV +# undef NORETURN_FUNCTION_END +# undef NOT_IN_NUMERIC_STANDARD_ +# undef NOTE3 +# undef NOTHING +# undef NOTHING_t8 +# undef NOTHING_t8_p8 +# undef NOTHING_t8_pb +# undef NOTHING_tb +# undef NOTHING_tb_p8 +# undef NOTHING_tb_pb +# undef NPOSIXA +# undef NPOSIXA_t8 +# undef NPOSIXA_t8_p8 +# undef NPOSIXA_t8_pb +# undef NPOSIXA_tb +# undef NPOSIXA_tb_p8 +# undef NPOSIXA_tb_pb +# undef NPOSIXD +# undef NPOSIXD_t8 +# undef NPOSIXD_t8_p8 +# undef NPOSIXD_t8_pb +# undef NPOSIXD_tb +# undef NPOSIXD_tb_p8 +# undef NPOSIXD_tb_pb +# undef NPOSIXL +# undef NPOSIXL_t8 +# undef NPOSIXL_t8_p8 +# undef NPOSIXL_t8_pb +# undef NPOSIXL_tb +# undef NPOSIXL_tb_p8 +# undef NPOSIXL_tb_pb +# undef NPOSIXU +# undef NPOSIXU_t8 +# undef NPOSIXU_t8_p8 +# undef NPOSIXU_t8_pb +# undef NPOSIXU_tb +# undef NPOSIXU_tb_p8 +# undef NPOSIXU_tb_pb +# undef ntohi +# undef ntohl +# undef ntohs +# undef Nullfp +# undef Nullgv +# undef Nullhe +# undef Nullhek +# undef Nullop +# undef NUM_CLASSES +# undef o1_ +# undef O_VMS_DELETEONCLOSE +# undef ObjectFIELDS +# undef ObjectITERSVAT +# undef ObjectMAXFIELD +# undef OCTAL_VALUE +# undef OLD_CURRENT_HINTS +# undef ONCE_PAT_MODS +# undef ONLY_LOCALE_MATCHES_INDEX +# undef OOB_NAMEDCLASS +# undef OOB_UNICODE +# undef OP_CHECK_MUTEX_INIT +# undef OP_CHECK_MUTEX_TERM +# undef OP_FREED +# undef OP_GIMME +# undef OP_GIMME_REVERSE +# undef OP_IS_DIRHOP +# undef OP_IS_FILETEST +# undef OP_IS_FILETEST_ACCESS +# undef OP_IS_INFIX_BIT +# undef OP_IS_NUMCOMPARE +# undef OP_IS_SOCKET +# undef OP_IS_STAT +# undef OP_REFCNT_INIT +# undef OP_REFCNT_TERM +# undef OP_SIBLING +# undef OP_TYPE_IS_OR_WAS_NN +# undef OP_TYPE_ISNT +# undef OP_TYPE_ISNT_AND_WASNT +# undef OP_TYPE_ISNT_AND_WASNT_NN +# undef OP_TYPE_ISNT_NN +# undef opASSIGN +# undef OPEN +# undef OPEN_t8 +# undef OPEN_t8_p8 +# undef OPEN_t8_pb +# undef OPEN_tb +# undef OPEN_tb_p8 +# undef OPEN_tb_pb +# undef OPERAND +# undef OPERANDl +# undef OPERANDs +# undef OPf_KNOW +# undef OPf_LIST +# undef OPFAIL +# undef OPFAIL_t8 +# undef OPFAIL_t8_p8 +# undef OPFAIL_t8_pb +# undef OPFAIL_tb +# undef OPFAIL_tb_p8 +# undef OPFAIL_tb_pb +# undef OpMySLAB +# undef OpREFCNT_dec +# undef OpREFCNT_inc +# undef OpREFCNT_set +# undef OpSLAB +# undef OpslabREFCNT_dec +# undef OpslabREFCNT_dec_padok +# undef OpSLOT +# undef OPSLOT_HEADER +# undef OpSLOToff +# undef OPTIMIZE_INFTY +# undef OPTIMIZED +# undef OPTIMIZED_t8 +# undef OPTIMIZED_t8_p8 +# undef OPTIMIZED_t8_pb +# undef OPTIMIZED_tb +# undef OPTIMIZED_tb_p8 +# undef OPTIMIZED_tb_pb +# undef OpTYPE_set +# undef OutCopFILE +# undef PAD_BASE_SV +# undef PAD_CLONE_VARS +# undef PAD_COMPNAME +# undef PAD_COMPNAME_FLAGS +# undef PAD_COMPNAME_GEN +# undef PAD_COMPNAME_GEN_set +# undef PAD_COMPNAME_OURSTASH +# undef PAD_COMPNAME_PV +# undef PAD_COMPNAME_TYPE +# undef PAD_RESTORE_LOCAL +# undef PAD_SAVE_LOCAL +# undef PAD_SAVE_SETNULLPAD +# undef PAD_SET_CUR +# undef PAD_SETSV +# undef padadd_FIELD +# undef padadd_OUR +# undef padadd_STALEOK +# undef padfind_FIELD_OK +# undef PADNAME_BASE_ +# undef padname_dup_inc +# undef PADNAME_FROM_PV +# undef PadnameFIELDINFO +# undef PadnameHasTYPE +# undef PadnameIsFIELD +# undef PadnameIsSTATE +# undef PadnameIsSTATE_on +# undef padnamelist_dup_inc +# undef PadnamelistMAXNAMED +# undef PadnamelistREFCNT_inc +# undef PadnameLVALUE +# undef PadnameLVALUE_on +# undef PadnameOURSTASH +# undef PadnamePROTOCV +# undef PADNAMEt_LVALUE +# undef PADNAMEt_OUR +# undef PADNAMEt_OUTER +# undef PADNAMEt_STATE +# undef PADNAMEt_TYPED +# undef PadnameTYPE +# undef PadnameTYPE_set +# undef padnew_CLONE +# undef padnew_SAVE +# undef padnew_SAVESUB +# undef panic_write2 +# undef PAREN_OFFSET +# undef PAREN_SET +# undef PAREN_TEST +# undef PAREN_UNSET +# undef PARENT_FAKELEX_FLAGS +# undef PARENT_PAD_INDEX +# undef PARNO +# undef PATCHLEVEL +# undef Pause +# undef PBITVAL +# undef PBYTE +# undef PLATFORM_SYS_INIT_ +# undef PLATFORM_SYS_TERM_ +# undef PLUS +# undef PLUS_t8 +# undef PLUS_t8_p8 +# undef PLUS_t8_pb +# undef PLUS_tb +# undef PLUS_tb_p8 +# undef PLUS_tb_pb +# undef PmopSTASH_set +# undef PmopSTASHPV_set +# undef PNf +# undef PNfARG +# undef POISON_SV_HEAD +# undef PoisonPADLIST +# undef POPpconstx +# undef POSIX_CC_COUNT +# undef POSIXA +# undef POSIXA_t8 +# undef POSIXA_t8_p8 +# undef POSIXA_t8_pb +# undef POSIXA_tb +# undef POSIXA_tb_p8 +# undef POSIXA_tb_pb +# undef POSIXD +# undef POSIXD_t8 +# undef POSIXD_t8_p8 +# undef POSIXD_t8_pb +# undef POSIXD_tb +# undef POSIXD_tb_p8 +# undef POSIXD_tb_pb +# undef POSIXL +# undef POSIXL_CLEAR +# undef POSIXL_SET +# undef POSIXL_t8 +# undef POSIXL_t8_p8 +# undef POSIXL_t8_pb +# undef POSIXL_tb +# undef POSIXL_tb_p8 +# undef POSIXL_tb_pb +# undef POSIXL_TEST +# undef POSIXL_ZERO +# undef POSIXU +# undef POSIXU_t8 +# undef POSIXU_t8_p8 +# undef POSIXU_t8_pb +# undef POSIXU_tb +# undef POSIXU_tb_p8 +# undef POSIXU_tb_pb +# undef POSTPONED +# undef PP +# undef PP_wrapped +# undef PREGf_ANCH +# undef PREGf_ANCH_GPOS +# undef PREGf_ANCH_MBOL +# undef PREGf_ANCH_SBOL +# undef PREGf_CUTGROUP_SEEN +# undef PREGf_GPOS_FLOAT +# undef PREGf_GPOS_SEEN +# undef PREGf_IMPLICIT +# undef PREGf_NAUGHTY +# undef PREGf_NOSCAN +# undef PREGf_PESSIMIZE_SEEN +# undef PREGf_RECURSE_SEEN +# undef PREGf_SKIP +# undef PREGf_USE_RE_EVAL +# undef PREGf_VERBARG_SEEN +# undef prepare_SV_for_RV +# undef PRESCAN_VERSION +# undef PREV_RANGE_MATCHES_INVLIST +# undef PRINTF_FORMAT_NULL_OK +# undef PRIVSHIFT +# undef ProgLen +# undef PRUNE +# undef PRUNE_t8 +# undef PRUNE_t8_p8 +# undef PRUNE_t8_pb +# undef PRUNE_tb +# undef PRUNE_tb_p8 +# undef PRUNE_tb_pb +# undef PSEUDO +# undef PSEUDO_t8 +# undef PSEUDO_t8_p8 +# undef PSEUDO_t8_pb +# undef PSEUDO_tb +# undef PSEUDO_tb_p8 +# undef PSEUDO_tb_pb +# undef pthread_addr_t +# undef pthread_attr_init +# undef pthread_create +# undef PTHREAD_GETSPECIFIC_INT +# undef pthread_key_create +# undef pthread_keycreate +# undef pthread_mutexattr_init +# undef pthread_mutexattr_settype +# undef pTHX_1 +# undef pTHX_12 +# undef pTHX_2 +# undef pTHX_3 +# undef pTHX_4 +# undef pTHX_5 +# undef pTHX_6 +# undef pTHX_7 +# undef pTHX_8 +# undef pTHX_9 +# undef pTHX__FORMAT +# undef pTHX__VALUE +# undef pTHX__VALUE_ +# undef pTHX_FORMAT +# undef pTHX_VALUE +# undef pTHX_VALUE_ +# undef pTHXo_ +# undef pTHXx_ +# undef PUSHSTACK_INIT_HWM +# undef QR_PAT_MODS +# undef QUESTION_MARK_CTRL +# undef RANGE_INDICATOR +# undef RE_COMPILE_RECURSION_INIT +# undef RE_COMPILE_RECURSION_LIMIT +# undef RE_DEBUG_COMPILE_DUMP +# undef RE_DEBUG_COMPILE_FLAGS +# undef RE_DEBUG_COMPILE_MASK +# undef RE_DEBUG_COMPILE_OPTIMISE +# undef RE_DEBUG_COMPILE_PARSE +# undef RE_DEBUG_COMPILE_TEST +# undef RE_DEBUG_COMPILE_TRIE +# undef RE_DEBUG_EXECUTE_INTUIT +# undef RE_DEBUG_EXECUTE_MASK +# undef RE_DEBUG_EXECUTE_MATCH +# undef RE_DEBUG_EXECUTE_TRIE +# undef RE_DEBUG_EXTRA_BUFFERS +# undef RE_DEBUG_EXTRA_DUMP_PRE_OPTIMIZE +# undef RE_DEBUG_EXTRA_GPOS +# undef RE_DEBUG_EXTRA_MASK +# undef RE_DEBUG_EXTRA_OPTIMISE +# undef RE_DEBUG_EXTRA_STACK +# undef RE_DEBUG_EXTRA_STATE +# undef RE_DEBUG_EXTRA_TRIE +# undef RE_DEBUG_EXTRA_WILDCARD +# undef RE_DEBUG_FLAG +# undef RE_DEBUG_FLAGS +# undef RE_PV_COLOR_DECL +# undef RE_PV_QUOTED_DECL +# undef RE_SV_DUMPLEN +# undef RE_SV_ESCAPE +# undef RE_SV_TAIL +# undef RE_TRIE_MAXBUF_INIT +# undef RE_TRIE_MAXBUF_NAME +# undef REAL_COP_FEATURE_SIZE +# undef REENABLE_LC_NUMERIC_CHANGES +# undef REENTR_MEMZERO +# undef REENTRANT_PROTO_B_B +# undef REENTRANT_PROTO_B_BI +# undef REENTRANT_PROTO_B_BW +# undef REENTRANT_PROTO_B_CCD +# undef REENTRANT_PROTO_B_CCS +# undef REENTRANT_PROTO_B_IBI +# undef REENTRANT_PROTO_B_IBW +# undef REENTRANT_PROTO_B_SB +# undef REENTRANT_PROTO_B_SBI +# undef REENTRANT_PROTO_I_BI +# undef REENTRANT_PROTO_I_BW +# undef REENTRANT_PROTO_I_CCSBWR +# undef REENTRANT_PROTO_I_CCSD +# undef REENTRANT_PROTO_I_CII +# undef REENTRANT_PROTO_I_CIISD +# undef REENTRANT_PROTO_I_CSBI +# undef REENTRANT_PROTO_I_CSBIR +# undef REENTRANT_PROTO_I_CSBWR +# undef REENTRANT_PROTO_I_CSBWRE +# undef REENTRANT_PROTO_I_CSD +# undef REENTRANT_PROTO_I_CWISBWRE +# undef REENTRANT_PROTO_I_CWISD +# undef REENTRANT_PROTO_I_D +# undef REENTRANT_PROTO_I_H +# undef REENTRANT_PROTO_I_IBI +# undef REENTRANT_PROTO_I_IBW +# undef REENTRANT_PROTO_I_ICBI +# undef REENTRANT_PROTO_I_ICSBWR +# undef REENTRANT_PROTO_I_ICSD +# undef REENTRANT_PROTO_I_ID +# undef REENTRANT_PROTO_I_IISD +# undef REENTRANT_PROTO_I_ISBWR +# undef REENTRANT_PROTO_I_ISD +# undef REENTRANT_PROTO_I_LISBI +# undef REENTRANT_PROTO_I_LISD +# undef REENTRANT_PROTO_I_SB +# undef REENTRANT_PROTO_I_SBI +# undef REENTRANT_PROTO_I_SBIE +# undef REENTRANT_PROTO_I_SBIH +# undef REENTRANT_PROTO_I_SBIR +# undef REENTRANT_PROTO_I_SBWR +# undef REENTRANT_PROTO_I_SBWRE +# undef REENTRANT_PROTO_I_SD +# undef REENTRANT_PROTO_I_TISD +# undef REENTRANT_PROTO_I_TS +# undef REENTRANT_PROTO_I_TSBI +# undef REENTRANT_PROTO_I_TSBIR +# undef REENTRANT_PROTO_I_TSBWR +# undef REENTRANT_PROTO_I_TsISBWRE +# undef REENTRANT_PROTO_I_TSR +# undef REENTRANT_PROTO_I_UISBWRE +# undef REENTRANT_PROTO_I_uISBWRE +# undef REENTRANT_PROTO_S_CBI +# undef REENTRANT_PROTO_S_CCSBI +# undef REENTRANT_PROTO_S_CIISBIE +# undef REENTRANT_PROTO_S_CSBI +# undef REENTRANT_PROTO_S_CSBIE +# undef REENTRANT_PROTO_S_CWISBIE +# undef REENTRANT_PROTO_S_CWISBWIE +# undef REENTRANT_PROTO_S_ICSBI +# undef REENTRANT_PROTO_S_ISBI +# undef REENTRANT_PROTO_S_LISBI +# undef REENTRANT_PROTO_S_SBI +# undef REENTRANT_PROTO_S_SBIE +# undef REENTRANT_PROTO_S_SBW +# undef REENTRANT_PROTO_S_TISBI +# undef REENTRANT_PROTO_S_TS +# undef REENTRANT_PROTO_S_TSBI +# undef REENTRANT_PROTO_S_TSBIE +# undef REENTRANT_PROTO_S_TWISBIE +# undef REENTRANT_PROTO_V_D +# undef REENTRANT_PROTO_V_H +# undef REENTRANT_PROTO_V_ID +# undef REF +# undef ref +# undef REF_HE_KEY +# undef REF_next +# undef REF_next_fail +# undef REF_next_fail_t8 +# undef REF_next_fail_t8_p8 +# undef REF_next_fail_t8_pb +# undef REF_next_fail_tb +# undef REF_next_fail_tb_p8 +# undef REF_next_fail_tb_pb +# undef REF_next_t8 +# undef REF_next_t8_p8 +# undef REF_next_t8_pb +# undef REF_next_tb +# undef REF_next_tb_p8 +# undef REF_next_tb_pb +# undef REF_t8 +# undef REF_t8_p8 +# undef REF_t8_pb +# undef REF_tb +# undef REF_tb_p8 +# undef REF_tb_pb +# undef REFCOUNTED_HE_EXISTS +# undef refcounted_he_fetch_pvs +# undef refcounted_he_new_pvs +# undef REFF +# undef REFF_t8 +# undef REFF_t8_p8 +# undef REFF_t8_pb +# undef REFF_tb +# undef REFF_tb_p8 +# undef REFF_tb_pb +# undef REFFA +# undef REFFA_t8 +# undef REFFA_t8_p8 +# undef REFFA_t8_pb +# undef REFFA_tb +# undef REFFA_tb_p8 +# undef REFFA_tb_pb +# undef REFFAN +# undef REFFAN_t8 +# undef REFFAN_t8_p8 +# undef REFFAN_t8_pb +# undef REFFAN_tb +# undef REFFAN_tb_p8 +# undef REFFAN_tb_pb +# undef REFFL +# undef REFFL_t8 +# undef REFFL_t8_p8 +# undef REFFL_t8_pb +# undef REFFL_tb +# undef REFFL_tb_p8 +# undef REFFL_tb_pb +# undef REFFLN +# undef REFFLN_t8 +# undef REFFLN_t8_p8 +# undef REFFLN_t8_pb +# undef REFFLN_tb +# undef REFFLN_tb_p8 +# undef REFFLN_tb_pb +# undef REFFN +# undef REFFN_t8 +# undef REFFN_t8_p8 +# undef REFFN_t8_pb +# undef REFFN_tb +# undef REFFN_tb_p8 +# undef REFFN_tb_pb +# undef REFFU +# undef REFFU_t8 +# undef REFFU_t8_p8 +# undef REFFU_t8_pb +# undef REFFU_tb +# undef REFFU_tb_p8 +# undef REFFU_tb_pb +# undef REFFUN +# undef REFFUN_t8 +# undef REFFUN_t8_p8 +# undef REFFUN_t8_pb +# undef REFFUN_tb +# undef REFFUN_tb_p8 +# undef REFFUN_tb_pb +# undef REFN +# undef REFN_t8 +# undef REFN_t8_p8 +# undef REFN_t8_pb +# undef REFN_tb +# undef REFN_tb_p8 +# undef REFN_tb_pb +# undef REG_ANY +# undef REG_ANY_t8 +# undef REG_ANY_t8_p8 +# undef REG_ANY_t8_pb +# undef REG_ANY_tb +# undef REG_ANY_tb_p8 +# undef REG_ANY_tb_pb +# undef REG_CUTGROUP_SEEN +# undef REG_EXTFLAGS_NAME_SIZE +# undef REG_GPOS_SEEN +# undef REG_INTFLAGS_NAME_SIZE +# undef REG_LB_SEEN +# undef REG_LOOKBEHIND_SEEN +# undef REG_MAGIC +# undef REG_NODE_NUM +# undef REG_PESSIMIZE_SEEN +# undef REG_RECURSE_SEEN +# undef REG_RUN_ON_COMMENT_SEEN +# undef REG_TOP_LEVEL_BRANCHES_SEEN +# undef REG_UNBOUNDED_QUANTIFIER_SEEN +# undef REG_UNFOLDED_MULTI_SEEN +# undef REG_VERBARG_SEEN +# undef reg_warn_non_literal_string +# undef REG_ZERO_LEN_SEEN +# undef REGEX_SET +# undef REGEX_SET_t8 +# undef REGEX_SET_t8_p8 +# undef REGEX_SET_t8_pb +# undef REGEX_SET_tb +# undef REGEX_SET_tb_p8 +# undef REGEX_SET_tb_pb +# undef RegexLengthToShowInErrorMessages +# undef REGMATCH_STATE_MAX +# undef REGNODE_AFTER +# undef REGNODE_AFTER_opcode +# undef REGNODE_AFTER_PLUS +# undef REGNODE_AFTER_PLUS_DEBUG +# undef REGNODE_AFTER_type +# undef REGNODE_AFTER_varies +# undef REGNODE_ARG_LEN +# undef REGNODE_ARG_LEN_VARIES +# undef REGNODE_BBM_BITMAP_LEN +# undef REGNODE_BEFORE +# undef REGNODE_BEFORE_BASE +# undef REGNODE_BEFORE_BASE_DEBUG +# undef REGNODE_GUTS +# undef REGNODE_MAX +# undef REGNODE_NAME +# undef REGNODE_OFF_BY_ARG +# undef REGNODE_OFFSET +# undef REGNODE_p +# undef REGNODE_SIMPLE +# undef REGNODE_STEP_OVER +# undef REGNODE_TYPE +# undef REGNODE_VARIES +# undef REGTAIL +# undef REGTAIL_STUDY +# undef RENUM +# undef RENUM_t8 +# undef RENUM_t8_p8 +# undef RENUM_t8_pb +# undef RENUM_tb +# undef RENUM_tb_p8 +# undef RENUM_tb_pb +# undef REPORT_LOCATION +# undef REPORT_LOCATION_ARGS +# undef REQUIRE_BRANCHJ +# undef REQUIRE_PARENS_PASS +# undef REQUIRE_UNI_RULES +# undef REQUIRE_UTF8 +# undef ReREFCNT_inc +# undef RESTART_PARSE +# undef RESTORE_WARNINGS +# undef RETPUSHNO +# undef RETPUSHUNDEF +# undef RETPUSHYES +# undef RETSETNO +# undef RETSETTARG +# undef RETSETUNDEF +# undef RETSETYES +# undef RETURN_FAIL_ON_RESTART +# undef RETURN_FAIL_ON_RESTART_FLAGP +# undef RETURN_FAIL_ON_RESTART_OR_FLAGS +# undef RETURNOP +# undef RETURNX +# undef RExC_close_parens +# undef RExC_contains_locale +# undef RExC_copy_start_in_constructed +# undef RExC_copy_start_in_input +# undef RExC_emit +# undef RExC_emit_start +# undef RExC_end +# undef RExC_end_op +# undef RExC_flags +# undef RExC_frame_count +# undef RExC_frame_head +# undef RExC_frame_last +# undef RExC_in_lookaround +# undef RExC_in_multi_char_class +# undef RExC_in_script_run +# undef RExC_lastnum +# undef RExC_lastparse +# undef RExC_latest_warn_offset +# undef RExC_logical_npar +# undef RExC_logical_to_parno +# undef RExC_logical_total_parens +# undef RExC_maxlen +# undef RExC_mysv +# undef RExC_mysv1 +# undef RExC_mysv2 +# undef RExC_naughty +# undef RExC_nestroot +# undef RExC_npar +# undef RExC_open_parens +# undef RExC_orig_utf8 +# undef RExC_paren_name_list +# undef RExC_paren_names +# undef RExC_parens_buf_size +# undef RExC_parno_to_logical +# undef RExC_parno_to_logical_next +# undef RExC_parse +# undef RExC_parse_advance +# undef RExC_parse_inc +# undef RExC_parse_inc_by +# undef RExC_parse_inc_if_char +# undef RExC_parse_inc_safe +# undef RExC_parse_inc_safef +# undef RExC_parse_inc_utf8 +# undef RExC_parse_incf +# undef RExC_parse_set +# undef RExC_pm_flags +# undef RExC_precomp +# undef RExC_precomp_end +# undef RExC_recode_x_to_native +# undef RExC_recurse +# undef RExC_recurse_count +# undef RExC_rx +# undef RExC_rx_sv +# undef RExC_rxi +# undef RExC_save_copy_start_in_constructed +# undef RExC_sawback +# undef RExC_seen +# undef RExC_seen_d_op +# undef RExC_seen_zerolen +# undef RExC_sets_depth +# undef RExC_size +# undef RExC_start +# undef RExC_strict +# undef RExC_study_chunk_recursed +# undef RExC_study_chunk_recursed_bytes +# undef RExC_study_chunk_recursed_count +# undef RExC_study_started +# undef RExC_total_parens +# undef RExC_uni_semantics +# undef RExC_unlexed_names +# undef RExC_use_BRANCHJ +# undef RExC_utf8 +# undef RExC_warn_text +# undef RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS +# undef RExC_warned_WARN_EXPERIMENTAL__VLB +# undef RExC_whilem_seen +# undef REXEC_SCREAM +# undef RMS_DIR +# undef RMS_FAC +# undef RMS_FEX +# undef RMS_FNF +# undef RMS_IFI +# undef RMS_ISI +# undef RMS_PRV +# undef ROTL_UV +# undef ROTR_UV +# undef RsPARA +# undef RsRECORD +# undef RsSIMPLE +# undef RsSNARF +# undef RUNOPS_DEFAULT +# undef RX_ANCHORED_SUBSTR +# undef RX_ANCHORED_UTF8 +# undef RX_CHECK_SUBSTR +# undef RX_FLOAT_SUBSTR +# undef RX_FLOAT_UTF8 +# undef RX_GOFS +# undef RX_INTFLAGS +# undef RX_ISTAINTED +# undef RX_LASTCLOSEPAREN +# undef RX_LASTPAREN +# undef RX_LOGICAL_NPARENS +# undef RX_LOGICAL_TO_PARNO +# undef RX_MATCH_COPIED_off +# undef RX_MATCH_COPIED_on +# undef RX_MATCH_COPIED_set +# undef RX_MATCH_COPY_FREE +# undef RX_MATCH_TAINTED +# undef RX_MATCH_TAINTED_off +# undef RX_MATCH_TAINTED_on +# undef RX_MATCH_TAINTED_set +# undef RX_MATCH_UTF8 +# undef RX_MATCH_UTF8_off +# undef RX_MATCH_UTF8_on +# undef RX_MATCH_UTF8_set +# undef RX_MINLEN +# undef RX_MINLENRET +# undef RX_MOTHER_RE +# undef RX_NPARENS +# undef RX_OFFSp +# undef RX_PARNO_TO_LOGICAL +# undef RX_PARNO_TO_LOGICAL_NEXT +# undef RX_PPRIVATE +# undef RX_PRE_PREFIX +# undef RX_QR_ANONCV +# undef RX_REFCNT +# undef RX_SAVED_COPY +# undef RX_SUBBEG +# undef RX_SUBCOFFSET +# undef RX_SUBLEN +# undef RX_SUBOFFSET +# undef RX_SUBSTRS +# undef RX_TAINT_on +# undef RX_ZERO_LEN +# undef RXf_PMf_SHIFT_COMPILETIME_ +# undef RXi_GET +# undef RXi_GET_DECL +# undef RXi_GET_DECL_NULL +# undef RXi_SET +# undef RXp_GOFS +# undef RXp_INTFLAGS +# undef RXp_ISTAINTED +# undef RXp_LOGICAL_NPARENS +# undef RXp_LOGICAL_TO_PARNO +# undef RXp_MATCH_TAINTED +# undef RXp_MATCH_TAINTED_on +# undef RXp_MINLEN +# undef RXp_MINLENRET +# undef RXp_MOTHER_RE +# undef RXp_NPARENS +# undef RXp_PARNO_TO_LOGICAL +# undef RXp_PARNO_TO_LOGICAL_NEXT +# undef RXp_PPRIVATE +# undef RXp_PRE_PREFIX +# undef RXp_QR_ANONCV +# undef RXp_SUBSTRS +# undef RXp_ZERO_LEN +# undef S_iv_add_may_overflow +# undef S_iv_mul_may_overflow +# undef S_iv_sub_may_overflow +# undef S_PAT_MODS +# undef S_uv_add_overflow +# undef S_uv_mul_overflow +# undef S_uv_sub_overflow +# undef SAFE_TRIE_NODENUM +# undef SANY +# undef SANY_t8 +# undef SANY_t8_p8 +# undef SANY_t8_pb +# undef SANY_tb +# undef SANY_tb_p8 +# undef SANY_tb_pb +# undef SAVE_ERRNO +# undef SAVEADELETE +# undef SAVECLEARSV +# undef SAVECOMPILEWARNINGS +# undef SAVECOPFILE +# undef SAVECOPFILE_FREE +# undef SAVECOPFILE_FREE_x +# undef SAVECOPFILE_x +# undef SAVECOPLINE +# undef SAVECOPSTASH_FREE +# undef SAVECURCOPWARNINGS +# undef SAVEFEATUREBITS +# undef SAVEFREEPADNAME +# undef SAVEGENERICPV +# undef SAVEHDELETE +# undef SAVEPADSVANDMORTALIZE +# undef SAVEPARSER +# undef SAVESETSVFLAGS +# undef SAVESHAREDPV +# undef SAVESWITCHSTACK +# undef SAVEt_ADELETE +# undef SAVEt_AELEM +# undef SAVEt_ALLOC +# undef SAVEt_APTR +# undef SAVEt_AV +# undef SAVEt_BOOL +# undef SAVEt_CLEARPADRANGE +# undef SAVEt_CLEARSV +# undef SAVEt_COMPILE_WARNINGS +# undef SAVEt_CURCOP_WARNINGS +# undef SAVEt_DELETE +# undef SAVEt_DESTRUCTOR +# undef SAVEt_DESTRUCTOR_X +# undef SAVEt_FREEOP +# undef SAVEt_FREEPADNAME +# undef SAVEt_FREERCPV +# undef SAVEt_GENERIC_PVREF +# undef SAVEt_GENERIC_SVREF +# undef SAVEt_GP +# undef SAVEt_GVSLOT +# undef SAVEt_GVSV +# undef SAVEt_HELEM +# undef SAVEt_HINTS +# undef SAVEt_HINTS_HH +# undef SAVEt_HPTR +# undef SAVEt_HV +# undef SAVEt_I16 +# undef SAVEt_I32 +# undef SAVEt_I32_SMALL +# undef SAVEt_I8 +# undef SAVEt_INT_SMALL +# undef SAVEt_ITEM +# undef SAVEt_IV +# undef SAVEt_MORTALIZESV +# undef SAVEt_NSTAB +# undef SAVEt_PADSV_AND_MORTALIZE +# undef SAVEt_PARSER +# undef SAVEt_PPTR +# undef SAVEt_RCPV +# undef SAVEt_READONLY_OFF +# undef SAVEt_SAVESWITCHSTACK +# undef SAVEt_SET_SVFLAGS +# undef SAVEt_SHARED_PVREF +# undef SAVEt_SPTR +# undef SAVEt_STACK_POS +# undef SAVEt_STRLEN +# undef SAVEt_STRLEN_SMALL +# undef SAVEt_SV +# undef SAVEt_SVREF +# undef SAVEt_TMPSFLOOR +# undef SAVEt_VPTR +# undef sb_dstr +# undef sb_iters +# undef sb_m +# undef sb_maxiters +# undef sb_orig +# undef sb_rflags +# undef sb_rx +# undef sb_rxres +# undef sb_rxtainted +# undef sb_s +# undef sb_strend +# undef sb_targ +# undef SBOL +# undef SBOL_t8 +# undef SBOL_t8_p8 +# undef SBOL_t8_pb +# undef SBOL_tb +# undef SBOL_tb_p8 +# undef SBOL_tb_pb +# undef SBOX32_CASE_ +# undef SBOX32_MIX3 +# undef SBOX32_MIX4 +# undef SBOX32_STATE_BITS +# undef SBOX32_STATE_BYTES +# undef SBOX32_WARN2 +# undef SBOX32_WARN3 +# undef SBOX32_WARN4 +# undef SBOX32_WARN5 +# undef SBOX32_WARN6 +# undef sC +# undef SCAN_DEF +# undef SCAN_REPL +# undef SCAN_TR +# undef SCAN_VERSION +# undef SCF_DO_STCLASS +# undef SCF_DO_STCLASS_AND +# undef SCF_DO_STCLASS_OR +# undef SCF_DO_SUBSTR +# undef SCF_IN_DEFINE +# undef SCF_SEEN_ACCEPT +# undef SCF_TRIE_DOING_RESTUDY +# undef SCF_TRIE_RESTUDY +# undef SCF_WHILEM_VISITED_POS +# undef Semctl +# undef semun +# undef SEOL +# undef SEOL_t8 +# undef SEOL_t8_p8 +# undef SEOL_t8_pb +# undef SEOL_tb +# undef SEOL_tb_p8 +# undef SEOL_tb_pb +# undef set_ANYOF_SYNTHETIC +# undef SET_MARK_OFFSET +# undef SET_NUMERIC_STANDARD +# undef SET_NUMERIC_UNDERLYING +# undef SET_recode_x_to_native +# undef SET_SVANY_FOR_BODYLESS_IV +# undef SET_SVANY_FOR_BODYLESS_NV +# undef SET_THREAD_SELF +# undef SETGRENT_R_HAS_FPTR +# undef SETi +# undef SETn +# undef SETp +# undef SetProgLen +# undef SETPWENT_R_HAS_FPTR +# undef setregid +# undef setreuid +# undef setSTR_LEN +# undef SETTARG +# undef SETu +# undef SF_BEFORE_EOL +# undef SF_BEFORE_MEOL +# undef SF_BEFORE_SEOL +# undef SF_HAS_EVAL +# undef SF_HAS_PAR +# undef SF_IN_PAR +# undef SF_IS_INF +# undef share_hek_hek +# undef SHARP_S_SKIP +# undef SHUTDOWN_TERM +# undef SHY_NATIVE +# undef sI +# undef SIMPLE +# undef Simple_vFAIL +# undef Simple_vFAILn +# undef SIPHASH_SEED_STATE +# undef SIPROUND +# undef SIZE_ALIGN +# undef Size_t_MAX +# undef SKIP +# undef SKIP_IF_CHAR +# undef SKIP_next +# undef SKIP_next_fail +# undef SKIP_next_fail_t8 +# undef SKIP_next_fail_t8_p8 +# undef SKIP_next_fail_t8_pb +# undef SKIP_next_fail_tb +# undef SKIP_next_fail_tb_p8 +# undef SKIP_next_fail_tb_pb +# undef SKIP_next_t8 +# undef SKIP_next_t8_p8 +# undef SKIP_next_t8_pb +# undef SKIP_next_tb +# undef SKIP_next_tb_p8 +# undef SKIP_next_tb_pb +# undef SKIP_t8 +# undef SKIP_t8_p8 +# undef SKIP_t8_pb +# undef SKIP_tb +# undef SKIP_tb_p8 +# undef SKIP_tb_pb +# undef SLOPPYDIVIDE +# undef socketpair +# undef SRCLOSE +# undef SRCLOSE_t8 +# undef SRCLOSE_t8_p8 +# undef SRCLOSE_t8_pb +# undef SRCLOSE_tb +# undef SRCLOSE_tb_p8 +# undef SRCLOSE_tb_pb +# undef SROPEN +# undef SROPEN_t8 +# undef SROPEN_t8_p8 +# undef SROPEN_t8_pb +# undef SROPEN_tb +# undef SROPEN_tb_p8 +# undef SROPEN_tb_pb +# undef SS_ACCVIO +# undef SS_ADD_BOOL +# undef SS_ADD_DPTR +# undef SS_ADD_DXPTR +# undef SS_ADD_END +# undef SS_ADD_INT +# undef SS_ADD_IV +# undef SS_ADD_LONG +# undef SS_ADD_PTR +# undef SS_ADD_UV +# undef SS_BUFFEROVF +# undef SS_DEVOFFLINE +# undef SS_IVCHAN +# undef SS_MAXPUSH +# undef SS_NOPRIV +# undef SS_NORMAL +# undef ssc_add_cp +# undef ssc_init_zero +# undef ssc_match_all_cp +# undef SSC_MATCHES_EMPTY_STRING +# undef SSCHECK +# undef SSPOPBOOL +# undef SSPOPDPTR +# undef SSPOPDXPTR +# undef SSPOPIV +# undef SSPOPLONG +# undef SSPOPPTR +# undef SSPUSHBOOL +# undef SSPUSHDPTR +# undef SSPUSHDXPTR +# undef SSPUSHIV +# undef SSPUSHLONG +# undef SSPUSHPTR +# undef STANDARD_C +# undef STAR +# undef STAR_t8 +# undef STAR_t8_p8 +# undef STAR_t8_pb +# undef STAR_tb +# undef STAR_tb_p8 +# undef STAR_tb_pb +# undef StashHANDLER +# undef STATUS_ALL_FAILURE +# undef STATUS_ALL_SUCCESS +# undef STATUS_EXIT_SET +# undef STATUS_NATIVE +# undef STATUS_NATIVE_CHILD_SET +# undef STATUS_UNIX_EXIT_SET +# undef STATUS_UNIX_SET +# undef STORE_LC_NUMERIC_SET_STANDARD +# undef STR_LEN +# undef STR_LEN_U8 +# undef STR_LENl +# undef STR_LENs +# undef STR_SZ +# undef STRING +# undef STRINGl +# undef STRINGs +# undef STRUCT_SV +# undef SUBST_TAINT_BOOLRET +# undef SUBST_TAINT_PAT +# undef SUBST_TAINT_REPL +# undef SUBST_TAINT_RETAINT +# undef SUBST_TAINT_STR +# undef SUBVERSION +# undef SUCCEED +# undef SUCCEED_t8 +# undef SUCCEED_t8_p8 +# undef SUCCEED_t8_pb +# undef SUCCEED_tb +# undef SUCCEED_tb_p8 +# undef SUCCEED_tb_pb +# undef SUSPEND +# undef SUSPEND_t8 +# undef SUSPEND_t8_p8 +# undef SUSPEND_t8_pb +# undef SUSPEND_tb +# undef SUSPEND_tb_p8 +# undef SUSPEND_tb_pb +# undef sv_2bool_nomg +# undef sv_2nv +# undef sv_2pv_nomg +# undef sv_cathek +# undef sv_catpvn_nomg_utf8_upgrade +# undef SV_CONST +# undef SV_CONST_BINMODE +# undef SV_CONST_CLEAR +# undef SV_CONST_CLOSE +# undef SV_CONST_DELETE +# undef SV_CONST_DESTROY +# undef SV_CONST_EOF +# undef SV_CONST_EXISTS +# undef SV_CONST_EXTEND +# undef SV_CONST_FETCH +# undef SV_CONST_FETCHSIZE +# undef SV_CONST_FILENO +# undef SV_CONST_FIRSTKEY +# undef SV_CONST_GETC +# undef SV_CONST_NEXTKEY +# undef SV_CONST_OPEN +# undef SV_CONST_POP +# undef SV_CONST_PRINT +# undef SV_CONST_PRINTF +# undef SV_CONST_READ +# undef SV_CONST_READLINE +# undef SV_CONST_SCALAR +# undef SV_CONST_SEEK +# undef SV_CONST_SHIFT +# undef SV_CONST_SPLICE +# undef SV_CONST_STORE +# undef SV_CONST_STORESIZE +# undef SV_CONST_TELL +# undef SV_CONST_TIEARRAY +# undef SV_CONST_TIEHANDLE +# undef SV_CONST_TIEHASH +# undef SV_CONST_TIESCALAR +# undef SV_CONST_UNSHIFT +# undef SV_CONST_UNTIE +# undef SV_CONST_WRITE +# undef SV_CONSTS_COUNT +# undef SV_COW_OTHER_PVS +# undef SV_COW_SHARED_HASH_KEYS +# undef sv_dup_inc_NN +# undef SV_HEAD_ +# undef SV_HEAD_DEBUG_ +# undef SV_HEAD_UNION_ +# undef SV_MUTABLE_RETURN +# undef sv_or_pv_len_utf8 +# undef sv_pvn_force_nomg +# undef sv_setgid +# undef sv_setuid +# undef SV_UNDEF_RETURNS_NULL +# undef SvARENA_CHAIN +# undef SvARENA_CHAIN_SET +# undef SvCANEXISTDELETE +# undef SvCOMPILED +# undef SvCOMPILED_off +# undef SvCOMPILED_on +# undef SvDESTROYABLE +# undef SvEND_set +# undef SvENDx +# undef SvFAKE +# undef SvFAKE_off +# undef SvFAKE_on +# undef SvGID +# undef SvGMAGICAL_off +# undef SvGMAGICAL_on +# undef SvGROW_mutable +# undef SvIMMORTAL +# undef SvIMMORTAL_INTERP +# undef SvIMMORTAL_TRUE +# undef SvIOK_nog +# undef SvIOK_nogthink +# undef SvIOKp_on +# undef SvIS_FREED +# undef SvIsCOW_off +# undef SvIsCOW_on +# undef SvIsUV_off +# undef SvIV_please_nomg +# undef SvIVXx +# undef SvLENx +# undef SvMAGICAL_off +# undef SvMAGICAL_on +# undef SvNIOK_nog +# undef SvNIOK_nogthink +# undef SvNOK_nog +# undef SvNOK_nogthink +# undef SvNOKp_on +# undef SvNVXx +# undef SvOK_off_exc_UV +# undef SvOKp +# undef SvOOK_on +# undef SvOURSTASH +# undef SvOURSTASH_set +# undef SvPAD_OUR +# undef SvPAD_OUR_on +# undef SvPAD_STATE +# undef SvPAD_STATE_on +# undef SvPAD_TYPED +# undef SvPAD_TYPED_on +# undef SvPADMY_on +# undef SvPADSTALE +# undef SvPADSTALE_off +# undef SvPADSTALE_on +# undef SvPADTMP_off +# undef SvPADTMP_on +# undef SVpav_REIFY +# undef SvPCS_IMPORTED +# undef SvPCS_IMPORTED_off +# undef SvPCS_IMPORTED_on +# undef SVphv_CLONEABLE +# undef SVphv_LAZYDEL +# undef SVphv_SHAREKEYS +# undef SvPOK_byte_nog +# undef SvPOK_byte_nogthink +# undef SvPOK_byte_pure_nogthink +# undef SvPOK_nog +# undef SvPOK_nogthink +# undef SvPOK_or_cached_IV +# undef SvPOK_pure_nogthink +# undef SvPOK_utf8_nog +# undef SvPOK_utf8_nogthink +# undef SvPOK_utf8_pure_nogthink +# undef SvPOKp_on +# undef SVprv_PCS_IMPORTED +# undef SvREFCNT_IMMORTAL +# undef SvRMAGICAL_off +# undef SvRV_const +# undef SvRVx +# undef SvSCREAM +# undef SvSCREAM_off +# undef SvSCREAM_on +# undef SvSetSV_nosteal_and +# undef SvSMAGICAL_off +# undef SvSMAGICAL_on +# undef SVt_FIRST +# undef SVt_PVBM +# undef SvTEMP +# undef SvTEMP_on +# undef SvTRUEx_nomg +# undef SvUID +# undef SvUOK_nog +# undef SvUOK_nogthink +# undef SvWEAKREF_off +# undef SvWEAKREF_on +# undef SWITCHSTACK +# undef SYSTEM_GMTIME_MAX +# undef SYSTEM_GMTIME_MIN +# undef SYSTEM_LOCALTIME_MAX +# undef SYSTEM_LOCALTIME_MIN +# undef TAIL +# undef TAIL_t8 +# undef TAIL_t8_p8 +# undef TAIL_t8_pb +# undef TAIL_tb +# undef TAIL_tb_p8 +# undef TAIL_tb_pb +# undef tC +# undef THREAD_CREATE_NEEDS_STACK +# undef tI +# undef TIED_METHOD_ARGUMENTS_ON_STACK +# undef TIED_METHOD_MORTALIZE_NOT_NEEDED +# undef TIED_METHOD_SAY +# undef TO_INTERNAL_SIZE +# undef TO_OUTPUT_WARNINGS +# undef to_posix_FOLD +# undef toCTRL +# undef TOO_LATE_FOR +# undef TOO_LATE_FOR_ +# undef TOO_NAUGHTY +# undef TOPi +# undef TOPl +# undef TOPm1s +# undef TOPMARK +# undef TOPn +# undef TOPp +# undef TOPp1s +# undef TOPpx +# undef TOPu +# undef TOPul +# undef toU8_FOLD_LC +# undef toUPPER_LATIN1_MOD +# undef toUSE_UNI_CHARSET_NOT_DEPENDS +# undef TR_DELETE +# undef TR_OOB +# undef TR_R_EMPTY +# undef TR_SPECIAL_HANDLING +# undef TR_UNLISTED +# undef TR_UNMAPPED +# undef TRIE +# undef TRIE_BITMAP +# undef TRIE_BITMAP_BYTE +# undef TRIE_BITMAP_CLEAR +# undef TRIE_BITMAP_SET +# undef TRIE_BITMAP_TEST +# undef TRIE_CHARCOUNT +# undef TRIE_next +# undef TRIE_next_fail +# undef TRIE_next_fail_t8 +# undef TRIE_next_fail_t8_p8 +# undef TRIE_next_fail_t8_pb +# undef TRIE_next_fail_tb +# undef TRIE_next_fail_tb_p8 +# undef TRIE_next_fail_tb_pb +# undef TRIE_next_t8 +# undef TRIE_next_t8_p8 +# undef TRIE_next_t8_pb +# undef TRIE_next_tb +# undef TRIE_next_tb_p8 +# undef TRIE_next_tb_pb +# undef TRIE_NODEIDX +# undef TRIE_NODENUM +# undef TRIE_STCLASS +# undef TRIE_STUDY_OPT +# undef TRIE_t8 +# undef TRIE_t8_p8 +# undef TRIE_t8_pb +# undef TRIE_tb +# undef TRIE_tb_p8 +# undef TRIE_tb_pb +# undef TRIE_WORDS_OFFSET +# undef TRIEC +# undef TRIEC_t8 +# undef TRIEC_t8_p8 +# undef TRIEC_t8_pb +# undef TRIEC_tb +# undef TRIEC_tb_p8 +# undef TRIEC_tb_pb +# undef TRYAGAIN +# undef tryAMAGICbin_MG +# undef tryAMAGICun_MG +# undef TS_W32_BROKEN_LOCALECONV +# undef TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE +# undef TWO_BYTE_UTF8_TO_UNI +# undef type1_ +# undef TYPE_CHARS +# undef TYPE_DIGITS +# undef U16_MIN +# undef U32_MAX_P1 +# undef U32_MAX_P1_HALF +# undef U32_MIN +# undef U8_MIN +# undef U_I +# undef U_L +# undef U_S +# undef UCHARAT +# undef UINT +# undef UNI_DISPLAY_TR_ +# undef UNI_SEMANTICS +# undef UNICODE_ALLOW_ABOVE_IV_MAX +# undef UNICODE_ALLOW_ANY +# undef UNICODE_ALLOW_SUPER +# undef UNICODE_ALLOW_SURROGATE +# undef UNICODE_BYTE_ORDER_MARK +# undef UNICODE_DOT_DOT_VERSION +# undef UNICODE_DOT_VERSION +# undef UNICODE_GOT_NONCHAR +# undef UNICODE_GOT_SUPER +# undef UNICODE_GOT_SURROGATE +# undef UNICODE_GREEK_CAPITAL_LETTER_SIGMA +# undef UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA +# undef UNICODE_GREEK_SMALL_LETTER_SIGMA +# undef UNICODE_IS_32_CONTIGUOUS_NONCHARS +# undef UNICODE_IS_BYTE_ORDER_MARK +# undef UNICODE_IS_END_PLANE_NONCHAR_GIVEN_NOT_SUPER +# undef UNICODE_IS_NONCHAR_GIVEN_NOT_SUPER +# undef UNICODE_SURROGATE_LAST +# undef UNISKIP +# undef UNKNOWN_ERRNO_MSG +# undef UNLESSM +# undef UNLESSM_t8 +# undef UNLESSM_t8_p8 +# undef UNLESSM_t8_pb +# undef UNLESSM_tb +# undef UNLESSM_tb_p8 +# undef UNLESSM_tb_pb +# undef UNLINK +# undef UNLOCK_LC_NUMERIC_STANDARD +# undef UPDATE_WARNINGS_LOC +# undef UPG_VERSION +# undef uproot_SV +# undef USE_ENVIRON_ARRAY +# undef USE_GRENT_BUFFER +# undef USE_GRENT_FPTR +# undef USE_GRENT_PTR +# undef USE_HOSTENT_BUFFER +# undef USE_HOSTENT_ERRNO +# undef USE_HOSTENT_PTR +# undef USE_LEFT +# undef USE_LOCALE +# undef USE_LOCALE_ADDRESS +# undef USE_LOCALE_COLLATE +# undef USE_LOCALE_CTYPE +# undef USE_LOCALE_IDENTIFICATION +# undef USE_LOCALE_MEASUREMENT +# undef USE_LOCALE_MESSAGES +# undef USE_LOCALE_MONETARY +# undef USE_LOCALE_NAME +# undef USE_LOCALE_NUMERIC +# undef USE_LOCALE_PAPER +# undef USE_LOCALE_SYNTAX +# undef USE_LOCALE_TELEPHONE +# undef USE_LOCALE_THREADS +# undef USE_LOCALE_TIME +# undef USE_LOCALE_TOD +# undef USE_NETENT_BUFFER +# undef USE_NETENT_ERRNO +# undef USE_NETENT_PTR +# undef USE_PL_CUR_LC_ALL +# undef USE_PL_CURLOCALES +# undef USE_POSIX_2008_LOCALE +# undef USE_PROTOENT_BUFFER +# undef USE_PROTOENT_PTR +# undef USE_PWENT_BUFFER +# undef USE_PWENT_FPTR +# undef USE_PWENT_PTR +# undef USE_QUERYLOCALE +# undef USE_SERVENT_BUFFER +# undef USE_SERVENT_PTR +# undef USE_SPENT_BUFFER +# undef USE_SPENT_PTR +# undef USE_STAT_RDEV +# undef USE_SYSTEM_GMTIME +# undef USE_SYSTEM_LOCALTIME +# undef USE_THREAD_SAFE_LOCALE +# undef USE_TM64 +# undef USE_UTF8_IN_NAMES +# undef USEMYBINMODE +# undef USER_PROP_MUTEX_INIT +# undef USER_PROP_MUTEX_TERM +# undef UTF +# undef UTF8_ALLOW_FFFF +# undef UTF8_ALLOW_LONG_AND_ITS_VALUE +# undef UTF8_ALLOW_SURROGATE +# undef UTF8_DISALLOW_ABOVE_31_BIT +# undef UTF8_DISALLOW_FE_FF +# undef UTF8_FORCE_WARN_IF_MALFORMED +# undef UTF8_FORCE_WARN_IF_MALFORMED_BIT_POS_ +# undef UTF8_GOT_ABOVE_31_BIT +# undef UTF8_GOT_EMPTY_BIT_POS_ +# undef UTF8_GOT_LONG_WITH_VALUE +# undef UTF8_GOT_LONG_WITH_VALUE_BIT_POS_ +# undef UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC +# undef UTF8_IS_SUPER_NO_CHECK_ +# undef UTF8_TWO_BYTE_HI_nocast +# undef UTF8_TWO_BYTE_LO +# undef UTF8_TWO_BYTE_LO_nocast +# undef UTF8_WARN_ABOVE_31_BIT +# undef UTF8_WARN_FE_FF +# undef UTF_FIRST_CONT_BYTE +# undef UTF_FIRST_CONT_BYTE_110000_ +# undef UTF_START_BYTE_110000_ +# undef UV_DIG +# undef UV_MAX_P1 +# undef UV_MAX_P1_HALF +# undef VCMP +# undef VERB +# undef VERB_t8 +# undef VERB_t8_p8 +# undef VERB_t8_pb +# undef VERB_tb +# undef VERB_tb_p8 +# undef VERB_tb_pb +# undef vFAIL +# undef vFAIL2 +# undef vFAIL2utf8f +# undef vFAIL3 +# undef vFAIL3utf8f +# undef vFAIL4 +# undef VNORMAL +# undef VNUMIFY +# undef VOL +# undef VOLATILE_REF +# undef VSTRINGIFY +# undef VT_NATIVE +# undef vtohl +# undef VTYPECHECK +# undef VUTIL_REPLACE_CORE +# undef VVERIFY +# undef vWARN +# undef vWARN3 +# undef vWARN4 +# undef vWARN5 +# undef vWARN_dep +# undef VXS +# undef VXS_CLASS +# undef VXS_RETURN_M_SV +# undef VXSp +# undef VXSXSDP +# undef WARN_ALLstring +# undef WARN_DEFAULTstring +# undef WARN_HELPER_ +# undef warn_non_literal_string +# undef WARN_NONEstring +# undef WARNshift +# undef WARNsize +# undef WHILEM +# undef WHILEM_A_max +# undef WHILEM_A_max_fail +# undef WHILEM_A_max_fail_t8 +# undef WHILEM_A_max_fail_t8_p8 +# undef WHILEM_A_max_fail_t8_pb +# undef WHILEM_A_max_fail_tb +# undef WHILEM_A_max_fail_tb_p8 +# undef WHILEM_A_max_fail_tb_pb +# undef WHILEM_A_max_t8 +# undef WHILEM_A_max_t8_p8 +# undef WHILEM_A_max_t8_pb +# undef WHILEM_A_max_tb +# undef WHILEM_A_max_tb_p8 +# undef WHILEM_A_max_tb_pb +# undef WHILEM_A_min +# undef WHILEM_A_min_fail +# undef WHILEM_A_min_fail_t8 +# undef WHILEM_A_min_fail_t8_p8 +# undef WHILEM_A_min_fail_t8_pb +# undef WHILEM_A_min_fail_tb +# undef WHILEM_A_min_fail_tb_p8 +# undef WHILEM_A_min_fail_tb_pb +# undef WHILEM_A_min_t8 +# undef WHILEM_A_min_t8_p8 +# undef WHILEM_A_min_t8_pb +# undef WHILEM_A_min_tb +# undef WHILEM_A_min_tb_p8 +# undef WHILEM_A_min_tb_pb +# undef WHILEM_A_pre +# undef WHILEM_A_pre_fail +# undef WHILEM_A_pre_fail_t8 +# undef WHILEM_A_pre_fail_t8_p8 +# undef WHILEM_A_pre_fail_t8_pb +# undef WHILEM_A_pre_fail_tb +# undef WHILEM_A_pre_fail_tb_p8 +# undef WHILEM_A_pre_fail_tb_pb +# undef WHILEM_A_pre_t8 +# undef WHILEM_A_pre_t8_p8 +# undef WHILEM_A_pre_t8_pb +# undef WHILEM_A_pre_tb +# undef WHILEM_A_pre_tb_p8 +# undef WHILEM_A_pre_tb_pb +# undef WHILEM_B_max +# undef WHILEM_B_max_fail +# undef WHILEM_B_max_fail_t8 +# undef WHILEM_B_max_fail_t8_p8 +# undef WHILEM_B_max_fail_t8_pb +# undef WHILEM_B_max_fail_tb +# undef WHILEM_B_max_fail_tb_p8 +# undef WHILEM_B_max_fail_tb_pb +# undef WHILEM_B_max_t8 +# undef WHILEM_B_max_t8_p8 +# undef WHILEM_B_max_t8_pb +# undef WHILEM_B_max_tb +# undef WHILEM_B_max_tb_p8 +# undef WHILEM_B_max_tb_pb +# undef WHILEM_B_min +# undef WHILEM_B_min_fail +# undef WHILEM_B_min_fail_t8 +# undef WHILEM_B_min_fail_t8_p8 +# undef WHILEM_B_min_fail_t8_pb +# undef WHILEM_B_min_fail_tb +# undef WHILEM_B_min_fail_tb_p8 +# undef WHILEM_B_min_fail_tb_pb +# undef WHILEM_B_min_t8 +# undef WHILEM_B_min_t8_p8 +# undef WHILEM_B_min_t8_pb +# undef WHILEM_B_min_tb +# undef WHILEM_B_min_tb_p8 +# undef WHILEM_B_min_tb_pb +# undef WHILEM_t8 +# undef WHILEM_t8_p8 +# undef WHILEM_t8_pb +# undef WHILEM_tb +# undef WHILEM_tb_p8 +# undef WHILEM_tb_pb +# undef WIN32SCK_IS_STDSCK +# undef with_t_UTF8ness +# undef with_tp_UTF8ness +# undef xI +# undef xI_offset +# undef xio_any +# undef xio_dirp +# undef XOPd_xop_class +# undef XOPd_xop_desc +# undef XOPd_xop_dump +# undef XOPd_xop_name +# undef XOPd_xop_peep +# undef XORSHIFT128_set +# undef XPUSHundef +# undef XPV_HEAD_ +# undef XPVCV_COMMON_ +# undef YYEMPTY +# undef YYSTYPE_IS_TRIVIAL +# undef ZAPHOD32_FINALIZE +# undef ZAPHOD32_MIX +# undef ZAPHOD32_SCRAMBLE32 +# undef ZAPHOD32_WARN2 +# undef ZAPHOD32_WARN3 +# undef ZAPHOD32_WARN4 +# undef ZAPHOD32_WARN5 +# undef ZAPHOD32_WARN6 +# if !defined(PERL_EXT) +# undef AMG_CALLun +# undef AMG_CALLunary +# undef AMGf_assign +# undef AMGf_noright +# undef AMGf_unary +# undef ASCTIME_LOCK +# undef ASCTIME_UNLOCK +# undef av_tindex_skip_len_mg +# undef av_top_index_skip_len_mg +# undef BhkENTRY +# undef BHKf_bhk_eval +# undef BHKf_bhk_post_end +# undef BHKf_bhk_pre_end +# undef BHKf_bhk_start +# undef BhkFLAGS +# undef blk_gimme +# undef blk_oldsaveix +# undef BmPREVIOUS +# undef BmRARE +# undef BmUSEFUL +# undef CALLREG_NAMED_BUFF_ALL +# undef CALLREG_NAMED_BUFF_FETCH +# undef CALLREG_NAMED_BUFF_NEXTKEY +# undef CALLREGCOMP_ENG +# undef CALLREGEXEC +# undef CAN_COW_FLAGS +# undef CAN_COW_MASK +# undef CASE_STD_PMMOD_FLAGS_PARSE_SET +# undef CATCH_GET +# undef CATCH_SET +# undef cBINOPx +# undef CC_QUOTEMETA_ +# undef CC_VERTSPACE_ +# undef cCOPo +# undef cCOPx +# undef CHANGE_MULTICALL_FLAGS +# undef CHECK_AND_WARN_PROBLEMATIC_LOCALE_ +# undef ckDEAD +# undef cLISTOPo +# undef cLISTOPx +# undef cLOGOPo +# undef cLOOPo +# undef cLOOPx +# undef cMETHOPo +# undef cMETHOPx +# undef COP_FEATURE_SIZE +# undef CopHINTHASH_get +# undef CowREFCNT +# undef cPMOPo +# undef cPMOPx +# undef cPVOPo +# undef cPVOPx +# undef cSVOPo +# undef cSVOPo_sv +# undef cSVOPx +# undef cSVOPx_sv +# undef cUNOP_AUXo +# undef cUNOP_AUXx +# undef cUNOPo +# undef CvANON +# undef CvANON_off +# undef CvANONCONST +# undef CvANONCONST_off +# undef CvANONCONST_on +# undef CvCLONED +# undef CvCONST +# undef CVf_ANON +# undef CVf_ANONCONST +# undef CVf_AUTOLOAD +# undef CVf_CLONE +# undef CVf_CLONED +# undef CVf_CVGV_RC +# undef CVf_DYNFILE +# undef CVf_EVAL_COMPILED +# undef CVf_HASEVAL +# undef CVf_IsMETHOD +# undef CVf_LEXICAL +# undef CVf_LVALUE +# undef CVf_NAMED +# undef CVf_NODEBUG +# undef CVf_NOWARN_AMBIGUOUS +# undef CVf_REFCOUNTED_ANYSV +# undef CVf_SIGNATURE +# undef CVf_UNIQUE +# undef CVf_WEAKOUTSIDE +# undef CVf_XS_RCSTACK +# undef CvGV_set +# undef CvHSCXT +# undef CvISXSUB_on +# undef CvLVALUE +# undef CvLVALUE_on +# undef CvNAMED +# undef CvREFCOUNTED_ANYSV_on +# undef CvXS_RCSTACK_off +# undef CvXS_RCSTACK_on +# undef CxMULTICALL +# undef CXp_EVALBLOCK +# undef CXp_FINALLY +# undef CXp_FOR_DEF +# undef CXp_FOR_GV +# undef CXp_FOR_LVREF +# undef CXp_FOR_PAD +# undef CXp_HASARGS +# undef CXp_MULTICALL +# undef CXp_ONCE +# undef CXp_REAL +# undef CXp_SUB_RE +# undef CXp_SUB_RE_FAKE +# undef CXp_TRY +# undef CXt_DEFER +# undef DEBUG_BOTH_FLAGS_TEST_ +# undef DEBUG_C +# undef DEBUG_C_FLAG +# undef DEBUG_C_TEST +# undef DEBUG_C_TEST_ +# undef DEBUG_L_FLAG +# undef DEBUG_Lv +# undef DEBUG_Lv_TEST +# undef DEBUG_Lv_TEST_ +# undef DEBUG_r +# undef DEBUG_r_FLAG +# undef DEBUG_X_FLAG +# undef DEBUG_Xv +# undef DEBUG_Xv_TEST +# undef DEBUG_Xv_TEST_ +# undef DEBUG_y_TEST_ +# undef dMY_CXT_INTERP +# undef DOUBLE_HAS_NAN +# undef DPTR2FPTR +# undef ENV_LOCK +# undef ENV_READ_LOCK +# undef ENV_READ_UNLOCK +# undef ENV_UNLOCK +# undef ENVr_LOCALEr_LOCK +# undef ENVr_LOCALEr_UNLOCK +# undef EVAL_INEVAL +# undef EVAL_INREQUIRE +# undef EVAL_KEEPERR +# undef EVAL_NULL +# undef EVAL_RE_REPARSING +# undef EVAL_WARNONLY +# undef FPTR2DPTR +# undef FreeOp +# undef G_FAKINGEVAL +# undef G_NODEBUG +# undef G_RE_REPARSING +# undef G_UNDEF_FILL +# undef G_WRITING_TO_STDERR +# undef GCC_DIAG_IGNORE +# undef GCC_DIAG_IGNORE_STMT +# undef GCC_DIAG_PRAGMA +# undef GCC_DIAG_RESTORE +# undef GCC_DIAG_RESTORE_STMT +# undef generic_LC_invlist_uvchr_ +# undef generic_LC_uvchr_ +# undef GLOBAL_PAT_MOD +# undef GREEK_CAPITAL_LETTER_MU +# undef GREEK_SMALL_LETTER_MU +# undef gv_fetchmethod_flags +# undef GvAVn +# undef GvCVu +# undef GvEGV +# undef GvESTASH +# undef GVf_ASSUMECV +# undef GVf_IMPORTED +# undef GVf_IMPORTED_AV +# undef GVf_IMPORTED_CV +# undef GVf_IMPORTED_HV +# undef GVf_IMPORTED_SV +# undef GVf_INTRO +# undef GVf_ONCE_FATAL +# undef GVf_RESERVED +# undef GvFILE_HEK +# undef GvFILEGV +# undef GvFILEx +# undef GvGPFLAGS +# undef GvHVn +# undef GvLINE +# undef gwENVr_LOCALEr_LOCK +# undef gwENVr_LOCALEr_UNLOCK +# undef hasWARNBIT +# undef HE_ARENA_ROOT_IX +# undef HIGHEST_REGCOMP_DOT_H_SYNC_ +# undef HINT_BLOCK_SCOPE +# undef HINT_INTEGER +# undef HINT_LOCALIZE_HH +# undef HINT_RE_EVAL +# undef HINT_STRICT_REFS +# undef HSf_NOCHK +# undef HSm_INTRPSIZE +# undef HSm_KEY_MATCH +# undef HV_DISABLE_UVAR_XKEY +# undef HvENAME_get +# undef HvENAMELEN_get +# undef HvHasENAME +# undef HvRAND_get +# undef HvRITER +# undef I32_MIN +# undef INT32_MIN +# undef invlist_intersection_ +# undef invlist_subtract_ +# undef invlist_union_ +# undef is_posix_ASCII +# undef is_VERTWS_cp_high +# undef is_VERTWS_high +# undef isALNUM_uni +# undef isALPHA_uni +# undef isALPHANUMERIC_uni +# undef isASCII_uni +# undef isBLANK_uni +# undef isCNTRL_uni +# undef isDIGIT_uni +# undef isGRAPH_uni +# undef isIDCONT_uni +# undef isIDFIRST_uni +# undef isLOWER_uni +# undef isPRINT_uni +# undef isPSXSPC_uni +# undef isPUNCT_uni +# undef isQUOTEMETA +# undef isREGEXP +# undef isSPACE_uni +# undef isU8_ASCII_LC +# undef isUPPER_uni +# undef isUTF8_POSSIBLY_PROBLEMATIC +# undef isVERTWS_uni +# undef isVERTWS_utf8_safe +# undef isVERTWS_uvchr +# undef isWORDCHAR_uni +# undef isXDIGIT_uni +# undef KEYWORD_PLUGIN_EXPR +# undef KEYWORD_PLUGIN_STMT +# undef kUNOP +# undef LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS +# undef LATIN_SMALL_LETTER_SHARP_S +# undef LATIN_SMALL_LETTER_SHARP_S_NATIVE +# undef LATIN_SMALL_LETTER_Y_WITH_DIAERESIS +# undef LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE +# undef LATIN_SMALL_LIGATURE_ST_UTF8 +# undef LC_COLLATE_LOCK +# undef LC_COLLATE_UNLOCK +# undef LC_NUMERIC_UNLOCK +# undef LDBL_DIG +# undef LEAVE_SCOPE +# undef LINE_Tf +# undef LOCALE_LOCK +# undef LOCALE_READ_LOCK +# undef LOCALE_READ_UNLOCK +# undef LOCALE_UNLOCK +# undef LvTARG +# undef LvTARGLEN +# undef LvTARGOFF +# undef LvTYPE +# undef MAX_UNICODE_UTF8_BYTES +# undef MDEREF_ACTION_MASK +# undef MDEREF_AV_gvav_aelem +# undef MDEREF_AV_gvsv_vivify_rv2av_aelem +# undef MDEREF_AV_padav_aelem +# undef MDEREF_AV_padsv_vivify_rv2av_aelem +# undef MDEREF_AV_pop_rv2av_aelem +# undef MDEREF_AV_vivify_rv2av_aelem +# undef MDEREF_FLAG_last +# undef MDEREF_HV_gvhv_helem +# undef MDEREF_HV_gvsv_vivify_rv2hv_helem +# undef MDEREF_HV_padhv_helem +# undef MDEREF_HV_padsv_vivify_rv2hv_helem +# undef MDEREF_HV_pop_rv2hv_helem +# undef MDEREF_HV_vivify_rv2hv_helem +# undef MDEREF_INDEX_const +# undef MDEREF_INDEX_gvsv +# undef MDEREF_INDEX_MASK +# undef MDEREF_INDEX_none +# undef MDEREF_INDEX_padsv +# undef MDEREF_MASK +# undef MDEREF_reload +# undef MDEREF_SHIFT +# undef memBEGINPs +# undef memBEGINs +# undef MGf_REFCOUNTED +# undef MGf_REQUIRE_GV +# undef MICRO_SIGN +# undef MICRO_SIGN_NATIVE +# undef MKTIME_LOCK +# undef MKTIME_UNLOCK +# undef NATIVE_UTF8_TO_I8 +# undef NOT_IN_NUMERIC_UNDERLYING_ +# undef NOT_REACHED +# undef NV_BIG_ENDIAN +# undef NV_BODYLESS_UNION_ +# undef NV_DIG +# undef NV_EPSILON +# undef NV_IMPLICIT_BIT +# undef NV_LITTLE_ENDIAN +# undef NV_MANT_DIG +# undef NV_MAX +# undef NV_MAX_10_EXP +# undef NV_MAX_EXP +# undef NV_MIN +# undef NV_MIN_10_EXP +# undef NV_MIN_EXP +# undef NV_MIX_ENDIAN +# undef NV_NAN_BITS +# undef NV_NAN_IS_QUIET +# undef NV_NAN_IS_SIGNALING +# undef NV_NAN_PAYLOAD_MASK +# undef NV_NAN_PAYLOAD_MASK_IEEE_754_128_BE +# undef NV_NAN_PAYLOAD_MASK_IEEE_754_128_LE +# undef NV_NAN_PAYLOAD_MASK_IEEE_754_64_BE +# undef NV_NAN_PAYLOAD_MASK_IEEE_754_64_LE +# undef NV_NAN_PAYLOAD_MASK_SKIP_EIGHT +# undef NV_NAN_PAYLOAD_PERM +# undef NV_NAN_PAYLOAD_PERM_0_TO_7 +# undef NV_NAN_PAYLOAD_PERM_7_TO_0 +# undef NV_NAN_PAYLOAD_PERM_IEEE_754_128_BE +# undef NV_NAN_PAYLOAD_PERM_IEEE_754_128_LE +# undef NV_NAN_PAYLOAD_PERM_IEEE_754_64_BE +# undef NV_NAN_PAYLOAD_PERM_IEEE_754_64_LE +# undef NV_NAN_PAYLOAD_PERM_SKIP_EIGHT +# undef NV_NAN_QS_BIT +# undef NV_NAN_QS_BIT_OFFSET +# undef NV_NAN_QS_BIT_SHIFT +# undef NV_NAN_QS_BYTE +# undef NV_NAN_QS_BYTE_OFFSET +# undef NV_NAN_QS_QUIET +# undef NV_NAN_QS_SIGNALING +# undef NV_NAN_QS_TEST +# undef NV_NAN_QS_XOR +# undef NV_NAN_SET_QUIET +# undef NV_NAN_SET_SIGNALING +# undef NV_VAX_ENDIAN +# undef NV_WITHIN_IV +# undef NV_WITHIN_UV +# undef NV_X86_80_BIT +# undef OA_AVREF +# undef OA_BASEOP_OR_UNOP +# undef OA_CLASS_MASK +# undef OA_CVREF +# undef OA_DANGEROUS +# undef OA_DEFGV +# undef OA_FILEREF +# undef OA_FILESTATOP +# undef OA_FOLDCONST +# undef OA_HVREF +# undef OA_LIST +# undef OA_LOOPEXOP +# undef OA_MARK +# undef OA_METHOP +# undef OA_OPTIONAL +# undef OA_OTHERINT +# undef OA_RETSCALAR +# undef OA_SCALAR +# undef OA_SCALARREF +# undef OA_TARGET +# undef OA_TARGLEX +# undef OA_UNOP_AUX +# undef OASHIFT +# undef OP_LVALUE_NO_CROAK +# undef op_pmflags +# undef op_pmoffset +# undef OPCODE +# undef OPf_FOLDED +# undef OPf_PARENS +# undef OPf_SPECIAL +# undef OPf_WANT +# undef OPpALLOW_FAKE +# undef OPpARG1_MASK +# undef OPpARG2_MASK +# undef OPpARG3_MASK +# undef OPpARG4_MASK +# undef OPpARG_IF_FALSE +# undef OPpARG_IF_UNDEF +# undef OPpARGELEM_AV +# undef OPpARGELEM_HV +# undef OPpARGELEM_MASK +# undef OPpARGELEM_SV +# undef OPpASSIGN_BACKWARDS +# undef OPpASSIGN_COMMON_AGG +# undef OPpASSIGN_COMMON_RC1 +# undef OPpASSIGN_COMMON_SCALAR +# undef OPpASSIGN_CV_TO_GV +# undef OPpASSIGN_TRUEBOOL +# undef OPpAVHVSWITCH_MASK +# undef OPpCONCAT_NESTED +# undef OPpCONST_BARE +# undef OPpCONST_ENTERED +# undef OPpCONST_NOVER +# undef OPpCONST_SHORTCIRCUIT +# undef OPpCONST_STRICT +# undef OPpCONST_TOKEN_BITS +# undef OPpCONST_TOKEN_FILE +# undef OPpCONST_TOKEN_LINE +# undef OPpCONST_TOKEN_MASK +# undef OPpCONST_TOKEN_PACKAGE +# undef OPpCONST_TOKEN_SHIFT +# undef OPpCOREARGS_DEREF1 +# undef OPpCOREARGS_DEREF2 +# undef OPpCOREARGS_PUSHMARK +# undef OPpCOREARGS_SCALARMOD +# undef OPpDEFER_FINALLY +# undef OPpDEREF +# undef OPpDEREF_AV +# undef OPpDEREF_HV +# undef OPpDEREF_SV +# undef OPpDONT_INIT_GV +# undef OPpEARLY_CV +# undef OPpEMPTYAVHV_IS_HV +# undef OPpENTERSUB_AMPER +# undef OPpENTERSUB_DB +# undef OPpENTERSUB_INARGS +# undef OPpENTERSUB_LVAL_MASK +# undef OPpENTERSUB_NOPAREN +# undef OPpEVAL_BYTES +# undef OPpEVAL_COPHH +# undef OPpEVAL_EVALSV +# undef OPpEVAL_HAS_HH +# undef OPpEVAL_RE_REPARSING +# undef OPpEVAL_UNICODE +# undef OPpEXISTS_SUB +# undef OPpFLIP_LINENUM +# undef OPpFT_ACCESS +# undef OPpFT_AFTER_t +# undef OPpFT_STACKED +# undef OPpFT_STACKING +# undef OPpHELEMEXISTSOR_DELETE +# undef OPpHINT_STRICT_REFS +# undef OPpHUSH_VMSISH +# undef OPpINDEX_BOOLNEG +# undef OPpINITFIELD_AV +# undef OPpINITFIELD_HV +# undef OPpINITFIELDS +# undef OPpITER_DEF +# undef OPpITER_INDEXED +# undef OPpITER_REVERSED +# undef OPpKVSLICE +# undef OPpLIST_GUESSED +# undef OPpLVAL_DEFER +# undef OPpLVAL_INTRO +# undef OPpLVALUE +# undef OPpLVREF_AV +# undef OPpLVREF_CV +# undef OPpLVREF_ELEM +# undef OPpLVREF_HV +# undef OPpLVREF_ITER +# undef OPpLVREF_SV +# undef OPpLVREF_TYPE +# undef OPpMAY_RETURN_CONSTANT +# undef OPpMAYBE_LVSUB +# undef OPpMAYBE_TRUEBOOL +# undef OPpMETH_NO_BAREWORD_IO +# undef OPpMULTICONCAT_APPEND +# undef OPpMULTICONCAT_FAKE +# undef OPpMULTICONCAT_STRINGIFY +# undef OPpMULTIDEREF_DELETE +# undef OPpMULTIDEREF_EXISTS +# undef OPpOFFBYONE +# undef OPpOPEN_IN_CRLF +# undef OPpOPEN_IN_RAW +# undef OPpOPEN_OUT_CRLF +# undef OPpOPEN_OUT_RAW +# undef OPpOUR_INTRO +# undef OPpPAD_STATE +# undef OPpPADHV_ISKEYS +# undef OPpPADRANGE_COUNTMASK +# undef OPpPADRANGE_COUNTSHIFT +# undef OPpPARAM_IF_FALSE +# undef OPpPARAM_IF_UNDEF +# undef OPpPV_IS_UTF8 +# undef OPpREFCOUNTED +# undef OPpREPEAT_DOLIST +# undef OPpREVERSE_INPLACE +# undef OPpRV2HV_ISKEYS +# undef OPpSELF_IN_PAD +# undef OPpSLICE +# undef OPpSLICEWARNING +# undef OPpSORT_DESCEND +# undef OPpSORT_INPLACE +# undef OPpSORT_INTEGER +# undef OPpSORT_NUMERIC +# undef OPpSORT_REVERSE +# undef OPpSPLIT_ASSIGN +# undef OPpSPLIT_IMPLIM +# undef OPpSPLIT_LEX +# undef OPpSUBSTR_REPL_FIRST +# undef OPpTARGET_MY +# undef OPpTRANS_ALL +# undef OPpTRANS_BITS +# undef OPpTRANS_CAN_FORCE_UTF8 +# undef OPpTRANS_COMPLEMENT +# undef OPpTRANS_DELETE +# undef OPpTRANS_FROM_UTF +# undef OPpTRANS_GROWS +# undef OPpTRANS_IDENTICAL +# undef OPpTRANS_MASK +# undef OPpTRANS_ONLY_UTF8_INVARIANTS +# undef OPpTRANS_SHIFT +# undef OPpTRANS_SQUASH +# undef OPpTRANS_TO_UTF +# undef OPpTRANS_USE_SVOP +# undef OPpTRUEBOOL +# undef OPpUNDEF_KEEP_PV +# undef OPpUSEINT +# undef PAD_COMPNAME_FLAGS_isOUR +# undef PAD_COMPNAME_SV +# undef PAD_FAKELEX_ANON +# undef PAD_FAKELEX_MULTI +# undef PAD_SET_CUR_NOSAVE +# undef PAD_SVl +# undef padadd_NO_DUP_CHECK +# undef padadd_STATE +# undef PADNAMEf_FIELD +# undef PADNAMEf_LVALUE +# undef PADNAMEf_OUR +# undef PADNAMEf_STATE +# undef PADNAMEf_TYPED +# undef PadnameFLAGS +# undef PadnameIsOUR +# undef PadnameOUTER +# undef PM_GETRE +# undef PMf_BASE_SHIFT +# undef PMf_CHARSET +# undef PMf_CODELIST_PRIVATE +# undef PMf_CONST +# undef PMf_CONTINUE +# undef PMf_EVAL +# undef PMf_EXTENDED +# undef PMf_EXTENDED_MORE +# undef PMf_FOLD +# undef PMf_GLOBAL +# undef PMf_HAS_CV +# undef PMf_HAS_ERROR +# undef PMf_IS_QR +# undef PMf_KEEP +# undef PMf_KEEPCOPY +# undef PMf_MULTILINE +# undef PMf_NOCAPTURE +# undef PMf_NONDESTRUCT +# undef PMf_ONCE +# undef PMf_RETAINT +# undef PMf_SINGLELINE +# undef PMf_SPLIT +# undef PMf_STRICT +# undef PMf_USE_RE_EVAL +# undef PMf_USED +# undef PMf_WILDCARD +# undef PmopSTASH +# undef PmopSTASHPV +# undef POPSTACK_TO +# undef PUSH_MULTICALL_FLAGS +# undef PUSHSTACK +# undef pWARN_ALL +# undef pWARN_NONE +# undef pWARN_STD +# undef RCPVf_ALLOW_EMPTY +# undef RCPVf_NO_COPY +# undef RCPVf_USE_STRLEN +# undef REFCOUNTED_HE_KEY_UTF8 +# undef RETURN +# undef ROTL64 +# undef ROTR32 +# undef ROTR64 +# undef RV2CVOPCV_FLAG_MASK +# undef RV2CVOPCV_MAYBE_NAME_GV +# undef RV2CVOPCV_RETURN_STUB +# undef RX_COMPFLAGS +# undef RX_ENGINE +# undef RX_EXTFLAGS +# undef RX_PRECOMP +# undef RX_PRELEN +# undef RX_UTF8 +# undef RX_WRAPLEN +# undef RX_WRAPPED +# undef RX_WRAPPED_const +# undef RXf_BASE_SHIFT +# undef RXf_CHECK_ALL +# undef RXf_COPY_DONE +# undef RXf_EVAL_SEEN +# undef RXf_INTUIT_TAIL +# undef RXf_IS_ANCHORED +# undef RXf_MATCH_UTF8 +# undef RXf_PMf_CHARSET +# undef RXf_PMf_CHARSET_SHIFT_ +# undef RXf_PMf_EXTENDED_MORE +# undef RXf_PMf_NOCAPTURE +# undef RXf_PMf_SHIFT_NEXT_ +# undef RXf_PMf_SPLIT +# undef RXf_PMf_STRICT +# undef RXf_TAINTED +# undef RXf_TAINTED_SEEN +# undef RXf_UNBOUNDED_QUANTIFIER_SEEN +# undef RXf_USE_INTUIT_ML +# undef RXf_USE_INTUIT_NOML +# undef RXp_COMPFLAGS +# undef RXp_ENGINE +# undef RXp_EXTFLAGS +# undef SAVEFREECOPHH +# undef SAVEHINTS +# undef SAVEt_FREECOPHH +# undef SAVEt_FREESV +# undef SETs +# undef sharepvn +# undef shifted_octet_ +# undef strBEGINs +# undef SV_POSBYTES +# undef SVf_BREAK +# undef SvIsCOW_static +# undef SvIsUV_on +# undef SvNVx +# undef SvOK_off +# undef SVpad_OUR +# undef SVpad_STATE +# undef SVpad_TYPED +# undef SVppv_STATIC +# undef SvSetSV_and +# undef SvTIED_mg +# undef to_posix_LOWER +# undef to_posix_UPPER +# undef toFOLD_LC +# undef toFOLD_uni +# undef toLOWER_uni +# undef toTITLE_uni +# undef toU8_LOWER_LC +# undef toU8_UPPER_LC +# undef toUPPER_LC +# undef toUPPER_uni +# undef tryAMAGICunDEREF +# undef TZSET_LOCK +# undef TZSET_UNLOCK +# undef U8TO32_LE +# undef U8TO64_LE +# undef UNICODE_SURROGATE_FIRST +# undef UTF8_ACCUMULATE +# undef UTF8_IS_CONTINUED +# undef UTF8_IS_DOWNGRADEABLE_START +# undef UTF8_IS_START +# undef UTF8_IS_START_base +# undef UTF8_MAX_FOLD_CHAR_EXPAND +# undef utf8_to_utf16 +# undef utf8_to_utf16_reversed +# undef UTF_IS_CONTINUATION_MASK +# undef UTF_MIN_ABOVE_LATIN1_BYTE +# undef UTF_MIN_START_BYTE +# undef UTF_START_BYTE +# undef UTF_START_MASK +# undef want_vtbl_bm +# undef want_vtbl_fm +# undef xlv_targoff +# undef XOPf_xop_dump +# undef XOPf_xop_peep +# undef XPUSHTARG +# undef XS_DYNAMIC_FILENAME +# endif /* !defined(PERL_EXT) */ +# if !defined(PERL_EXT_RE_BUILD) +# undef ANGSTROM_SIGN +# undef ASCII_MORE_RESTRICT_PAT_MODS +# undef ASCII_RESTRICT_PAT_MOD +# undef ASCII_RESTRICT_PAT_MODS +# undef CC_CASED_ +# undef CC_CHARNAME_CONT_ +# undef CC_IS_IN_SOME_FOLD_ +# undef CC_MNEMONIC_CNTRL_ +# undef CC_NONLATIN1_FOLD_ +# undef CC_NONLATIN1_SIMPLE_FOLD_ +# undef CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG_ +# undef CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG_ +# undef CONTINUE_PAT_MOD +# undef DEFAULT_PAT_MOD +# undef DEPENDS_PAT_MOD +# undef DEPENDS_PAT_MODS +# undef FBMcf_TAIL +# undef FBMcf_TAIL_DOLLAR +# undef FBMcf_TAIL_DOLLARM +# undef FBMcf_TAIL_Z +# undef FBMcf_TAIL_z +# undef FBMrf_MULTILINE +# undef FOLD_FLAGS_LOCALE +# undef FOLD_FLAGS_NOMIX_ASCII +# undef HAS_NONLATIN1_FOLD_CLOSURE +# undef HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE +# undef I16_MAX +# undef IGNORE_PAT_MOD +# undef IN_UTF8_TURKIC_LOCALE +# undef is_FOLDS_TO_MULTI_utf8 +# undef IS_IN_SOME_FOLD_L1 +# undef is_LNBREAK_latin1_safe +# undef is_LNBREAK_safe +# undef is_LNBREAK_utf8_safe +# undef is_MULTI_CHAR_FOLD_latin1_safe +# undef is_MULTI_CHAR_FOLD_utf8_safe +# undef is_MULTI_CHAR_FOLD_utf8_safe_part0_ +# undef is_MULTI_CHAR_FOLD_utf8_safe_part1_ +# undef is_MULTI_CHAR_FOLD_utf8_safe_part2_ +# undef is_MULTI_CHAR_FOLD_utf8_safe_part3_ +# undef is_PATWS_safe +# undef is_posix_CASED +# undef is_PROBLEMATIC_LOCALE_FOLD_cp +# undef is_PROBLEMATIC_LOCALE_FOLD_utf8 +# undef is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp +# undef is_THREE_CHAR_FOLD_HEAD_latin1_safe +# undef is_THREE_CHAR_FOLD_HEAD_utf8_safe +# undef is_THREE_CHAR_FOLD_latin1_safe +# undef is_THREE_CHAR_FOLD_utf8_safe +# undef isALPHA_FOLD_EQ +# undef isCHARNAME_CONT +# undef isIDFIRST_lazy_if_safe +# undef isMNEMONIC_CNTRL +# undef isPOWER_OF_2 +# undef isU8_CASED_LC +# undef isWARNf_on +# undef KEEPCOPY_PAT_MOD +# undef KELVIN_SIGN +# undef LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE +# undef LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE +# undef LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE +# undef LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE_UTF8 +# undef LATIN_CAPITAL_LETTER_SHARP_S +# undef LATIN_SMALL_LETTER_A_WITH_RING_ABOVE +# undef LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE +# undef LATIN_SMALL_LETTER_DOTLESS_I +# undef LATIN_SMALL_LETTER_LONG_S +# undef LATIN_SMALL_LETTER_LONG_S_UTF8 +# undef LATIN_SMALL_LETTER_SHARP_S_UTF8 +# undef LATIN_SMALL_LIGATURE_LONG_S_T +# undef LATIN_SMALL_LIGATURE_ST +# undef LOCALE_PAT_MOD +# undef MAX_CHARSET_NAME_LENGTH +# undef MAX_FOLD_FROMS +# undef MAX_LEGAL_CP +# undef MAX_MATCHES +# undef MAX_PRINT_A +# undef MAX_UTF8_TWO_BYTE +# undef memENDPs +# undef MgBYTEPOS +# undef MgBYTEPOS_set +# undef MGf_BYTES +# undef MICRO_SIGN_UTF8 +# undef MSVC_DIAG_IGNORE_STMT +# undef MULTILINE_PAT_MOD +# undef new_XPVMG +# undef NOCAPTURE_PAT_MOD +# undef NON_OTHER_COUNT +# undef NUM_ANYOF_CODE_POINTS +# undef ONCE_PAT_MOD +# undef OP_REFCNT_LOCK +# undef OP_REFCNT_UNLOCK +# undef OP_TYPE_IS_COP_NN +# undef OP_TYPE_IS_NN +# undef PadnameOURSTASH_set +# undef PM_GETRE_raw +# undef PM_SETRE +# undef PM_SETRE_raw +# undef REG_FETCH_ABSOLUTE +# undef ReREFCNT_dec +# undef REXEC_CHECKED +# undef REXEC_FAIL_ON_UNDERFLOW +# undef REXEC_IGNOREPOS +# undef REXEC_NOT_FIRST +# undef RX_PRECOMP_const +# undef RXf_PMf_COMPILETIME +# undef RXf_PMf_FLAGCOPYMASK +# undef RXf_PMf_STD_PMMOD +# undef RXf_USE_INTUIT +# undef RXp_HAS_CUTGROUP +# undef RXp_LASTCLOSEPAREN +# undef RXp_LASTPAREN +# undef RXp_MATCH_COPIED +# undef RXp_MATCH_COPIED_off +# undef RXp_MATCH_COPIED_on +# undef RXp_MATCH_COPY_FREE +# undef RXp_MATCH_TAINTED_off +# undef RXp_MATCH_UTF8 +# undef RXp_MATCH_UTF8_off +# undef RXp_MATCH_UTF8_on +# undef RXp_MATCH_UTF8_set +# undef RXp_OFFSp +# undef RXp_PAREN_NAMES +# undef RXp_SAVED_COPY +# undef RXp_SUBBEG +# undef RXp_SUBCOFFSET +# undef RXp_SUBLEN +# undef RXp_SUBOFFSET +# undef SAVE_FREE_REXC_STATE +# undef SAVE_MASK +# undef SAVE_TIGHT_SHIFT +# undef SAVECOMPPAD +# undef SAVEt_COMPPAD +# undef SAVEt_FREE_REXC_STATE +# undef SAVEt_REGCONTEXT +# undef SAWAMPERSAND_LEFT +# undef SAWAMPERSAND_MIDDLE +# undef SAWAMPERSAND_RIGHT +# undef SINGLE_PAT_MOD +# undef specialWARN +# undef SSGROW +# undef SSPOPINT +# undef SSPOPUV +# undef SSPUSHINT +# undef SSPUSHUV +# undef STD_PAT_MODS +# undef STD_PMMOD_FLAGS_CLEAR +# undef STRLENs +# undef SV_CONST_PUSH +# undef SV_COW_REFCNT_MAX +# undef SvCANCOW +# undef SvPADTMP +# undef SvPEEK +# undef SvTAIL +# undef SvVALID +# undef TWO_BYTE_UTF8_TO_NATIVE +# undef U16_MAX +# undef U32_MAX +# undef U8_MAX +# undef UNICODE_MAJOR_VERSION +# undef UNICODE_PAT_MOD +# undef UNICODE_PAT_MODS +# undef unpackWARN1 +# undef unpackWARN2 +# undef unpackWARN3 +# undef unpackWARN4 +# undef USER_PROP_MUTEX_LOCK +# undef USER_PROP_MUTEX_UNLOCK +# undef UTF8_ALLOW_ANYUV +# undef UTF8_ALLOW_DEFAULT +# undef UTF8_ALLOW_FE_FF +# undef UTF8_DIE_IF_MALFORMED +# undef UTF8_DIE_IF_MALFORMED_BIT_POS_ +# undef UTF8_IS_NEXT_CHAR_DOWNGRADEABLE +# undef UTF8_MIN_CONTINUATION_BYTE +# undef UTF8_NO_CONFIDENCE_IN_CURLEN_ +# undef UTF8_NO_CONFIDENCE_IN_CURLEN_BIT_POS_ +# undef UTF8_TWO_BYTE_HI +# undef vtohs +# undef what_MULTI_CHAR_FOLD_latin1_safe +# undef what_MULTI_CHAR_FOLD_utf8_safe +# undef what_MULTI_CHAR_FOLD_utf8_safe_part0_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part1_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part2_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part3_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part4_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part5_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part6_ +# undef what_MULTI_CHAR_FOLD_utf8_safe_part7_ +# undef withinCOUNT +# undef XDIGIT_VALUE +# undef XTENDED_PAT_MOD +# undef xV_FROM_REF +# endif /* !defined(PERL_EXT_RE_BUILD) */ +# endif /* !defined(PERL_CORE) */ +#else /* if !defined(PERL_DO_UNDEFS) */ -#if !defined(MULTIPLICITY) -/* undefined symbols, point them back at the usual ones */ -# define Perl_deb_nocontext Perl_deb -# define Perl_form_nocontext Perl_form -# define Perl_load_module_nocontext Perl_load_module -# define Perl_mess_nocontext Perl_mess -# define Perl_newSVpvf_nocontext Perl_newSVpvf -# define Perl_sv_catpvf_nocontext Perl_sv_catpvf -# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg -# define Perl_sv_setpvf_nocontext Perl_sv_setpvf -# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg -# define Perl_warn_nocontext Perl_warn -# define Perl_warner_nocontext Perl_warner -#endif /* !defined(MULTIPLICITY) */ -#if !defined(PERL_CORE) -/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to - * disable them. - */ -# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr)) -# define sv_setptrref(rv,ptr) sv_setref_iv(rv,NULL,PTR2IV(ptr)) -# if !defined(PERL_NOCOMPAT) - -/* Compatibility for this renamed function. */ -# define perl_atexit(a,b) Perl_call_atexit(aTHX_ a,b) - -/* Compatibility for these functions that had a 'perl_' prefix before - * 'Perl_' became the standard */ -# define perl_call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c) -# define perl_call_method(a,b) Perl_call_method(aTHX_ a,b) -# define perl_call_pv(a,b) Perl_call_pv(aTHX_ a,b) -# define perl_call_sv(a,b) Perl_call_sv(aTHX_ a,b) -# define perl_eval_pv(a,b) Perl_eval_pv(aTHX_ a,b) -# define perl_eval_sv(a,b) Perl_eval_sv(aTHX_ a,b) -# define perl_get_av(a,b) Perl_get_av(aTHX_ a,b) -# define perl_get_cv(a,b) Perl_get_cv(aTHX_ a,b) -# define perl_get_hv(a,b) Perl_get_hv(aTHX_ a,b) -# define perl_get_sv(a,b) Perl_get_sv(aTHX_ a,b) -# define perl_init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a) -# define perl_require_pv(a) Perl_require_pv(aTHX_ a) - -/* Before C99, macros could not wrap varargs functions. This - provides a set of compatibility functions that don't take an - extra argument but grab the context pointer using the macro dTHX. - */ - -# if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES) && \ - !defined(PERL_WANT_VARARGS) -# define deb Perl_deb_nocontext -# define form Perl_form_nocontext -# define load_module Perl_load_module_nocontext -# define mess Perl_mess_nocontext -# define newSVpvf Perl_newSVpvf_nocontext -# define sv_catpvf Perl_sv_catpvf_nocontext -# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext -# define sv_setpvf Perl_sv_setpvf_nocontext -# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext -# define warn Perl_warn_nocontext -# define warner Perl_warner_nocontext -# endif /* defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES) && - !defined(PERL_WANT_VARARGS) */ -# endif /* !defined(PERL_NOCOMPAT) */ -#endif /* !defined(PERL_CORE) */ -#if !defined(PERL_NO_SHORT_NAMES) - -/* Hide global symbols */ +/* Create short name macros that hide any need for thread context */ # define AvFILL_(a) Perl_AvFILL_(aTHX_ a) # define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b) @@ -910,7 +5474,20 @@ # define sv_setpvf_nocontext Perl_sv_setpvf_nocontext # define warn_nocontext Perl_warn_nocontext # define warner_nocontext Perl_warner_nocontext -# endif /* defined(MULTIPLICITY) */ +# else /* if !defined(MULTIPLICITY) */ +/* undefined symbols, point them back at the usual ones */ +# define Perl_deb_nocontext Perl_deb +# define Perl_form_nocontext Perl_form +# define Perl_load_module_nocontext Perl_load_module +# define Perl_mess_nocontext Perl_mess +# define Perl_newSVpvf_nocontext Perl_newSVpvf +# define Perl_sv_catpvf_nocontext Perl_sv_catpvf +# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg +# define Perl_sv_setpvf_nocontext Perl_sv_setpvf +# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg +# define Perl_warn_nocontext Perl_warn +# define Perl_warner_nocontext Perl_warner +# endif /* !defined(MULTIPLICITY) */ # if !defined(MULTIPLICITY) || defined(PERL_CORE) || \ defined(PERL_WANT_VARARGS) # define deb(...) Perl_deb(aTHX_ __VA_ARGS__) @@ -1831,21 +6408,57 @@ # define quadmath_format_needed Perl_quadmath_format_needed # define quadmath_format_valid Perl_quadmath_format_valid # endif -# if defined(USE_THREADS) -# define Perl_do_aexec(mTHX,a,b,c) do_aexec(a,b,c) -# define Perl_my_lstat(mTHX) my_lstat() -# define Perl_my_stat(mTHX) my_stat() -# else -# define Perl_do_aexec do_aexec -# define Perl_my_lstat my_lstat -# define Perl_my_stat my_stat -# endif # if defined(WIN32) # define get_win32_message_utf8ness(a) Perl_get_win32_message_utf8ness(aTHX_ a) # else # define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c) # endif -# endif /* defined(PERL_CORE) */ +# else /* if !defined(PERL_CORE) */ +/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to + * disable them. + */ +# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr)) +# define sv_setptrref(rv,ptr) sv_setref_iv(rv,NULL,PTR2IV(ptr)) +# if !defined(PERL_NOCOMPAT) + +/* Compatibility for this renamed function. */ +# define perl_atexit(a,b) Perl_call_atexit(aTHX_ a,b) + +/* Compatibility for these functions that had a 'perl_' prefix before + * 'Perl_' became the standard */ +# define perl_call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c) +# define perl_call_method(a,b) Perl_call_method(aTHX_ a,b) +# define perl_call_pv(a,b) Perl_call_pv(aTHX_ a,b) +# define perl_call_sv(a,b) Perl_call_sv(aTHX_ a,b) +# define perl_eval_pv(a,b) Perl_eval_pv(aTHX_ a,b) +# define perl_eval_sv(a,b) Perl_eval_sv(aTHX_ a,b) +# define perl_get_av(a,b) Perl_get_av(aTHX_ a,b) +# define perl_get_cv(a,b) Perl_get_cv(aTHX_ a,b) +# define perl_get_hv(a,b) Perl_get_hv(aTHX_ a,b) +# define perl_get_sv(a,b) Perl_get_sv(aTHX_ a,b) +# define perl_init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a) +# define perl_require_pv(a) Perl_require_pv(aTHX_ a) + +/* Before C99, macros could not wrap varargs functions. This + provides a set of compatibility functions that don't take an + extra argument but grab the context pointer using the macro dTHX. + */ + +# if defined(MULTIPLICITY) && !defined(PERL_WANT_VARARGS) +# define deb Perl_deb_nocontext +# define form Perl_form_nocontext +# define load_module Perl_load_module_nocontext +# define mess Perl_mess_nocontext +# define newSVpvf Perl_newSVpvf_nocontext +# define sv_catpvf Perl_sv_catpvf_nocontext +# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext +# define sv_setpvf Perl_sv_setpvf_nocontext +# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext +# define warn Perl_warn_nocontext +# define warner Perl_warner_nocontext +# endif /* defined(MULTIPLICITY) && !defined(PERL_WANT_VARARGS) */ +# endif /* !defined(PERL_NOCOMPAT) */ +# endif /* !defined(PERL_CORE) */ # if defined(PERL_CORE) || defined(PERL_EXT) # define append_utf8_from_native_byte Perl_append_utf8_from_native_byte # define av_reify(a) Perl_av_reify(aTHX_ a) @@ -2300,7 +6913,6 @@ # define Perl_hv_store(mTHX,a,b,c,d,e) hv_store(a,b,c,d,e) # define Perl_hv_store_ent(mTHX,a,b,c,d) hv_store_ent(a,b,c,d) # define Perl_hv_store_flags(mTHX,a,b,c,d,e,f) hv_store_flags(a,b,c,d,e,f) -# define Perl_hv_stores(mTHX,a,b,c) hv_stores(a,b,c) # define Perl_hv_undef(mTHX,a) hv_undef(a) # define Perl_ibcmp(mTHX,a,b,c) ibcmp(a,b,c) # define Perl_ibcmp_locale(mTHX,a,b,c) ibcmp_locale(a,b,c) @@ -2401,7 +7013,6 @@ # define Perl_hv_store hv_store # define Perl_hv_store_ent hv_store_ent # define Perl_hv_store_flags hv_store_flags -# define Perl_hv_stores hv_stores # define Perl_hv_undef hv_undef # define Perl_ibcmp ibcmp # define Perl_ibcmp_locale ibcmp_locale @@ -2487,6 +7098,6 @@ # else # define get_context Perl_get_context # endif -#endif /* !defined(PERL_NO_SHORT_NAMES) */ +#endif /* !defined(PERL_DO_UNDEFS) */ /* ex: set ro ft=c: */ diff --git a/handy.h b/handy.h index d06292dd6ca9..142dacad54f9 100644 --- a/handy.h +++ b/handy.h @@ -450,7 +450,7 @@ a string/length pair. /* -=for apidoc_defn mx|void|lex_stuff_pvs|"pv"|U32 flags +=for apidoc_defn Emx|void|lex_stuff_pvs|"pv"|U32 flags =cut */ diff --git a/hv.h b/hv.h index f83dcc1b5ccf..ca055c9342e1 100644 --- a/hv.h +++ b/hv.h @@ -584,6 +584,7 @@ whether it is valid to call C. =for apidoc_defn Am|SV**|hv_fetchs|HV* hv|"key"|I32 lval =for apidoc_defn Am|SV *|hv_deletes|HV *hv|"key"|U32 flags =for apidoc_defn Am|void|hv_name_sets|HV *hv|"name"|U32 flags +=for apidoc_defn Am|SV**|hv_stores|HV *hv|"name"|U32 flags =cut */ #define hv_fetchs(hv, key, lval) \ diff --git a/mathoms.c b/mathoms.c index 7bc47bf8dea5..cfce11e6e33f 100644 --- a/mathoms.c +++ b/mathoms.c @@ -27,6 +27,9 @@ * 1) A function has been replaced by a macro within a minor release, * so XS modules compiled against an older release will expect to * still be able to link against the function + * 2) A function is deprecated, and so placing it here will cause a compiler + * warning to be generated (for participating compilers). + * 3) A few other reasons, documented with the functions below * * It used to be that this was the way to handle the case were a function * Perl_foo(...) had been replaced by a macro. But see the 'm' flag discussion diff --git a/perl.h b/perl.h index f63e298a3240..1a55712111f3 100644 --- a/perl.h +++ b/perl.h @@ -9349,6 +9349,16 @@ END_EXTERN_C */ +START_EXTERN_C + +/* #including a second time causes it to #undef any unwanted symbols to avoid + * polluting the user name space */ +# define PERL_DO_UNDEFS +# include "embed.h" +# undef PERL_DO_UNDEFS + +END_EXTERN_C + #endif /* Include guard */ /* diff --git a/proto.h b/proto.h index 0703f6997a28..b9e582f172e3 100644 --- a/proto.h +++ b/proto.h @@ -55,9 +55,6 @@ Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag) #define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC \ assert(file) -/* PERL_CALLCONV const XOP * -Perl_custom_op_xop(pTHX_ const OP *o); */ - PERL_CALLCONV const char * Perl_langinfo(const nl_item item); #define PERL_ARGS_ASSERT_PERL_LANGINFO @@ -791,9 +788,6 @@ Perl_die_unwind(pTHX_ SV *msv) #define PERL_ARGS_ASSERT_DIE_UNWIND \ assert(msv) -/* PERL_CALLCONV bool -Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp); */ - PERL_CALLCONV bool Perl_do_aexec5(pTHX_ SV *really, SV **mark, SV **sp, int fd, int do_report) __attribute__visibility__("hidden"); @@ -1711,9 +1705,6 @@ Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash); */ /* PERL_CALLCONV SV ** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags); */ -/* PERL_CALLCONV SV ** -Perl_hv_stores(pTHX_ HV *hv, const char * const key, SV *val); */ - /* PERL_CALLCONV void Perl_hv_undef(pTHX_ HV *hv); */ @@ -2648,9 +2639,6 @@ PERL_CALLCONV Pid_t Perl_my_fork(void); #define PERL_ARGS_ASSERT_MY_FORK -/* PERL_CALLCONV I32 -Perl_my_lstat(pTHX); */ - PERL_CALLCONV I32 Perl_my_lstat_flags(pTHX_ const U32 flags); #define PERL_ARGS_ASSERT_MY_LSTAT_FLAGS @@ -2688,9 +2676,6 @@ PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]); #define PERL_ARGS_ASSERT_MY_SOCKETPAIR -/* PERL_CALLCONV I32 -Perl_my_stat(pTHX); */ - PERL_CALLCONV I32 Perl_my_stat_flags(pTHX_ const U32 flags); #define PERL_ARGS_ASSERT_MY_STAT_FLAGS @@ -3574,8 +3559,8 @@ PERL_CALLCONV Signal_t Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe); #define PERL_ARGS_ASSERT_PERLY_SIGHANDLER -/* PERL_CALLCONV const char * const -Perl_phase_name(pTHX_ enum perl_phase); */ +/* PERL_CALLCONV const char * +Perl_phase_name(pTHX_ enum perl_phase phase); */ PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP *pm); @@ -6187,10 +6172,16 @@ Perl_invlist_search_(SV * const invlist, const UV cp) PERL_CALLCONV SV * Perl_add_range_to_invlist_(pTHX_ SV *invlist, UV start, UV end) __attribute__warn_unused_result__; +/* PERL_CALLCONV void +invlist_intersection_(pTHX_ SV * const a, SV * const b, SV **i); */ PERL_CALLCONV void Perl_invlist_intersection_maybe_complement_2nd_(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **i); PERL_CALLCONV void Perl_invlist_invert_(pTHX_ SV * const invlist); +/* PERL_CALLCONV void +invlist_subtract_(pTHX_ SV * const a, SV * const b, SV **result); */ +/* PERL_CALLCONV void +invlist_union_(pTHX_ SV * const a, SV * const b, SV **output); */ PERL_CALLCONV void Perl_invlist_union_maybe_complement_2nd_(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **output); PERL_CALLCONV SV * @@ -6894,21 +6885,12 @@ S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl) defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) # define PERL_ARGS_ASSERT_ADD_RANGE_TO_INVLIST_ -/* PERL_CALLCONV void -invlist_intersection_(pTHX_ SV * const a, SV * const b, SV **i); */ - # define PERL_ARGS_ASSERT_INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND_ \ assert(b); assert(i) # define PERL_ARGS_ASSERT_INVLIST_INVERT_ \ assert(invlist) -/* PERL_CALLCONV void -invlist_subtract_(pTHX_ SV * const a, SV * const b, SV **result); */ - -/* PERL_CALLCONV void -invlist_union_(pTHX_ SV * const a, SV * const b, SV **output); */ - # define PERL_ARGS_ASSERT_INVLIST_UNION_MAYBE_COMPLEMENT_2ND_ \ assert(b); assert(output) @@ -10755,9 +10737,6 @@ Perl_dump_c_backtrace(pTHX_ PerlIO *fp, int max_depth, int skip); # define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE \ assert(fp) -/* PERL_CALLCONV void -free_c_backtrace(pTHX_ Perl_c_backtrace *bt); */ - PERL_CALLCONV Perl_c_backtrace * Perl_get_c_backtrace(pTHX_ int max_depth, int skip) __attribute__visibility__("hidden"); diff --git a/regen/embed.pl b/regen/embed.pl index 98090467fba2..4b82a91b846b 100755 --- a/regen/embed.pl +++ b/regen/embed.pl @@ -16,6 +16,16 @@ # Accepts the standard regen_lib -q and -v args. # # This script is normally invoked from regen.pl. +# +# We strive to not pollute the namespace of XS modules. To that end, embed.h +# (in cooperation with perl.h) keeps all macro names out of that namespace +# that this program thinks shouldn't be in it. The way that works is that +# perl.h #includes embed.h twice. The first time is to #define everything +# needed. And the second time, to #undef those elements that aren't needed +# for the #including file. For the perl core, everything is retained; for +# perl extensions, much is retained; for the rest, only expected things are +# retained. The #undef'ing is done after any inline functions are processed, +# so they always have access to everything. require 5.004; # keep this compatible, an old perl is all we may have before # we build the new one @@ -28,6 +38,8 @@ BEGIN require './regen/embed_lib.pl'; } +my @az = ('a'..'z'); + # This program has historically generated compatibility macros for a few # functions of the form Perl_FOO(pTHX_ ...). Those macros would be named # FOO(...), and would expand outside the core to Perl_FOO_nocontext(...) @@ -57,10 +69,1675 @@ BEGIN $has_compat_macro{$_} = 1 for @have_compatibility_macros; my %perl_compats; # Have 'perl_' prefix -my $unflagged_pointers; -my @az = ('a'..'z'); - +# This program inspects various top-level header files, except those on this +# list. +my %skip_files; +$skip_files{$_} = 1 for qw( + charclass_invlists.inc + config.h + embed.h + fakesdio.h + nostdio.h + perl_langinfo.h + perlio.h + proto.h + XSUB.h + ); + +# Items that are marked as being in the API are, by definition, not namespace +# pollutants. To find those, this program looks for API declarations. These +# are in embed.fnc, any top-level dot c file, and certain pod files. In order +# to save a bit of run time, this static list are the pod files known to have +# such defintions. It is not expected this will change often. +my @pod_list = qw( + INSTALL + pod/perlguts.pod + pod/perlinterp.pod + pod/perlapio.pod + pod/perlhacktips.pod + pod/perlcall.pod + pod/perlreguts.pod + pod/perlmroapi.pod + pod/perlembed.pod + dist/ExtUtils-ParseXS/lib/perlxs.pod + pod/perliol.pod + pod/perlreapi.pod + ); + +# This is a list of symbols that are not documented to be available for +# modules to use, but are nevertheless known to be used by at least one module +# that is not a Perl extension. # +# Strive to make this list empty. +# +# The list does not include symbols that we have documented as being reserved +# for perl's use, namely those that begin with 'PL_' or contain qr/perl/i. +# There are two parts of the list; the second part contains the symbols which +# have a trailing underscore; the first part those without. +# +# For all modules that aren't deliberating using particular names, all the +# other symbols on it are namespace pollutants. + +my @unexpectedly_used_outside_core = qw( + ASCII_PLATFORM_UTF8_MAXBYTES + ASCTIME_LOCK + ASCTIME_UNLOCK + ASSERT_IS_LITERAL + ASSERT_IS_PTR + assert_not_glob + ASSERT_NOT_PTR + assert_not_ROK + AvMAX + AvREAL + AvREAL_off + blk_oldcop + blk_sub + CALLRUNOPS + CAN_PROTOTYPE + CLANG_DIAG_IGNORE + CLANG_DIAG_IGNORE_DECL + CLANG_DIAG_IGNORE_STMT + CLANG_DIAG_PRAGMA + CLANG_DIAG_RESTORE + CLANG_DIAG_RESTORE_DECL + CLANG_DIAG_RESTORE_STMT + cLOGOPx + CLONEf_CLONE_HOST + CLONEf_COPY_STACKS + CLONEf_JOIN_IN + CLONEf_KEEP_PTR_TABLE + CopHINTS_get + CTIME_LOCK + CTIME_UNLOCK + cUNOPx + CvCONST_off + CvCONST_on + CVf_CONST + CVf_ISXSUB + CvFLAGS + CvISXSUB + CvXSUB + CvXSUBANY + CxTYPE + CXTYPEMASK + DEBUG_l + DEBUG_l_FLAG + DEBUG_l_TEST + DEBUG_s + DEBUG_SCOPE + DEBUG_s_FLAG + DEBUG_s_TEST + DEBUG_v + DEBUG_v_FLAG + DEBUG_v_TEST + dJMPENV + DOSISH + dSAVE_ERRNO + dTARG + EIGHT_BIT_UTF8_TO_NATIVE + ENV_LOCK + ENV_READ_LOCK + ENV_READ_UNLOCK + ENVr_LOCALEr_LOCK + ENVr_LOCALEr_UNLOCK + ENV_UNLOCK + ESC_NATIVE + EXPECT + EXTEND_HWM_SET + FALSE + FILTER_DATA + FILTER_READ + FITS_IN_8_BITS + FOLD_FLAGS_FULL + G_ARRAY + GETENV_LOCK + GETENV_UNLOCK + GETHOSTBYADDR_LOCK + GETHOSTBYADDR_UNLOCK + GETHOSTBYNAME_LOCK + GETHOSTBYNAME_UNLOCK + GETNETBYADDR_LOCK + GETNETBYADDR_UNLOCK + GETNETBYNAME_LOCK + GETNETBYNAME_UNLOCK + GETPROTOBYNAME_LOCK + GETPROTOBYNAME_UNLOCK + GETPROTOBYNUMBER_LOCK + GETPROTOBYNUMBER_UNLOCK + GETPROTOENT_LOCK + GETPROTOENT_UNLOCK + GETPWNAM_LOCK + GETPWNAM_UNLOCK + GETPWUID_LOCK + GETPWUID_UNLOCK + GETSERVBYNAME_LOCK + GETSERVBYNAME_UNLOCK + GETSERVBYPORT_LOCK + GETSERVBYPORT_UNLOCK + GETSERVENT_LOCK + GETSERVENT_UNLOCK + GETSPNAM_LOCK + GETSPNAM_UNLOCK + GMTIME_LOCK + GMTIME_UNLOCK + Gv_AMG + GvCVGEN + GVf_MULTI + GvGP + GvIO + GvIOp + GvNAME + GvNAME_get + GvNAME_HEK + GvNAMELEN + GvNAMELEN_get + GvNAMEUTF8 + GvSTASH + GvXPVGV + G_WANT + G_WARN_ON + gwENVr_LOCALEr_LOCK + gwENVr_LOCALEr_UNLOCK + gwLOCALE_LOCK + gwLOCALEr_LOCK + gwLOCALEr_UNLOCK + gwLOCALE_UNLOCK + HAS_PASSWD + HeKEY_hek + HeKEY_sv + HEKfARG + HEK_FLAGS + HEK_HASH + HEK_KEY + HEK_LEN + HeKUTF8 + HEK_UTF8 + HEK_WASUTF8 + HeNEXT + HINT_BYTES + HINT_LOCALE + HINTS_REFCNT_LOCK + HINTS_REFCNT_UNLOCK + HS_APIVERLEN_MAX + HS_CXT + HSf_IMP_CXT + HSf_POPMARK + HSf_SETXSUBFN + HS_KEY + HS_KEYp + HSm_APIVERLEN + HS_XSVERLEN_MAX + HvAMAGIC + HvAMAGIC_off + HvARRAY + HvAUX + HV_DELETE + HvEITER_get + HvEITER_set + HvENAME_HEK + HvENAME_HEK_NN + HV_FETCH_ISEXISTS + HV_FETCH_ISSTORE + HV_FETCH_JUST_SV + HV_FETCH_LVALUE + HvHasENAME_HEK + HvHASKFLAGS + HvHasNAME + HVhek_PLACEHOLD + HVhek_UTF8 + HVhek_WASUTF8 + HvMAX + HvNAME_HEK_NN + HvPLACEHOLDERS + HvPLACEHOLDERS_get + HvRITER_get + HvRITER_set + HvTOTALKEYS + HvUSEDKEYS + I32_MAX + I8_TO_NATIVE_UTF8 + IN_BYTES + inRANGE + IN_SOME_LOCALE_FORM_COMPILETIME + IN_SOME_LOCALE_FORM_RUNTIME + IN_UTF8_CTYPE_LOCALE + IOf_FAKE_DIRP + isGV + is_HORIZWS_cp_high + is_HORIZWS_high + is_posix_ALPHA + is_posix_ALPHANUMERIC + is_posix_BLANK + is_posix_CNTRL + is_posix_DIGIT + is_posix_GRAPH + is_posix_IDFIRST + is_posix_LOWER + is_posix_PRINT + is_posix_PUNCT + is_posix_SPACE + is_posix_UPPER + is_posix_WORDCHAR + is_posix_XDIGIT + IS_SAFE_SYSCALL + isU8_ALPHA_LC + isU8_ALPHANUMERIC_LC + isU8_BLANK_LC + isU8_CNTRL_LC + isU8_DIGIT_LC + isU8_GRAPH_LC + isU8_IDFIRST_LC + isU8_LOWER_LC + isU8_PRINT_LC + isU8_PUNCT_LC + isU8_SPACE_LC + isU8_UPPER_LC + isU8_WORDCHAR_LC + isU8_XDIGIT_LC + is_XDIGIT_cp_high + is_XDIGIT_high + JE_OLD_STACK_HWM_restore + JE_OLD_STACK_HWM_save + JMPENV_POP + KEY_abs + KEY_accept + KEY_ADJUST + KEY_alarm + KEY_all + KEY_and + KEY_any + KEY_atan2 + KEY_AUTOLOAD + KEY_BEGIN + KEY_bind + KEY_binmode + KEY_bless + KEY_break + KEY_caller + KEY_catch + KEY_chdir + KEY_CHECK + KEY_chmod + KEY_chomp + KEY_chop + KEY_chown + KEY_chr + KEY_chroot + KEY_class + KEY_close + KEY_closedir + KEY_cmp + KEY_connect + KEY_continue + KEY_cos + KEY_crypt + KEY_dbmclose + KEY_dbmopen + KEY_default + KEY_defer + KEY_defined + KEY_delete + KEY_DESTROY + KEY_die + KEY_do + KEY_dump + KEY_each + KEY_else + KEY_elsif + KEY_END + KEY_endgrent + KEY_endhostent + KEY_endnetent + KEY_endprotoent + KEY_endpwent + KEY_endservent + KEY_eof + KEY_eq + KEY_eval + KEY_evalbytes + KEY_exec + KEY_exists + KEY_exit + KEY_exp + KEY_fc + KEY_fcntl + KEY_field + KEY_fileno + KEY_finally + KEY_flock + KEY_for + KEY_foreach + KEY_fork + KEY_format + KEY_formline + KEY_ge + KEY_getc + KEY_getgrent + KEY_getgrgid + KEY_getgrnam + KEY_gethostbyaddr + KEY_gethostbyname + KEY_gethostent + KEY_getlogin + KEY_getnetbyaddr + KEY_getnetbyname + KEY_getnetent + KEY_getpeername + KEY_getpgrp + KEY_getppid + KEY_getpriority + KEY_getprotobyname + KEY_getprotobynumber + KEY_getprotoent + KEY_getpwent + KEY_getpwnam + KEY_getpwuid + KEY_getservbyname + KEY_getservbyport + KEY_getservent + KEY_getsockname + KEY_getsockopt + KEY_getspnam + KEY_given + KEY_glob + KEY_gmtime + KEY_goto + KEY_grep + KEY_gt + KEY_hex + KEY_if + KEY_index + KEY_INIT + KEY_int + KEY_ioctl + KEY_isa + KEY_join + KEY_keys + KEY_kill + KEY_last + KEY_lc + KEY_lcfirst + KEY_le + KEY_length + KEY_link + KEY_listen + KEY_local + KEY_localtime + KEY_lock + KEY_log + KEY_lstat + KEY_lt + KEY_m + KEY_map + KEY_method + KEY_mkdir + KEY_msgctl + KEY_msgget + KEY_msgrcv + KEY_msgsnd + KEY_my + KEY_ne + KEY_next + KEY_no + KEY_not + KEY_NULL + KEY_oct + KEY_open + KEY_opendir + KEY_or + KEY_ord + KEY_our + KEY_pack + KEY_package + KEY_pipe + KEY_pop + KEY_pos + KEY_print + KEY_printf + KEY_prototype + KEY_push + KEY_q + KEY_qq + KEY_qr + KEY_quotemeta + KEY_qw + KEY_qx + KEY_rand + KEY_read + KEY_readdir + KEY_readline + KEY_readlink + KEY_readpipe + KEY_recv + KEY_redo + KEY_ref + KEY_rename + KEY_require + KEY_reset + KEY_return + KEY_reverse + KEY_rewinddir + KEY_rindex + KEY_rmdir + KEY_s + KEY_say + KEY_scalar + KEY_seek + KEY_seekdir + KEY_select + KEY_semctl + KEY_semget + KEY_semop + KEY_send + KEY_setgrent + KEY_sethostent + KEY_setnetent + KEY_setpgrp + KEY_setpriority + KEY_setprotoent + KEY_setpwent + KEY_setservent + KEY_setsockopt + KEY_shift + KEY_shmctl + KEY_shmget + KEY_shmread + KEY_shmwrite + KEY_shutdown + KEY_sigvar + KEY_sin + KEY_sleep + KEY_socket + KEY_socketpair + KEY_sort + KEY_splice + KEY_split + KEY_sprintf + KEY_sqrt + KEY_srand + KEY_stat + KEY_state + KEY_study + KEY_sub + KEY_substr + KEY_symlink + KEY_syscall + KEY_sysopen + KEY_sysread + KEY_sysseek + KEY_system + KEY_syswrite + KEY_tell + KEY_telldir + KEY_tie + KEY_tied + KEY_time + KEY_times + KEY_tr + KEY_truncate + KEY_try + KEY_uc + KEY_ucfirst + KEY_umask + KEY_undef + KEY_UNITCHECK + KEY_unless + KEY_unlink + KEY_unpack + KEY_unshift + KEY_untie + KEY_until + KEY_use + KEY_utime + KEY_values + KEY_vec + KEY_wait + KEY_waitpid + KEY_wantarray + KEY_warn + KEY_when + KEY_while + KEYWORD_PLUGIN_MUTEX_LOCK + KEYWORD_PLUGIN_MUTEX_UNLOCK + LC_COLLATE_LOCK + LC_COLLATE_UNLOCK + LC_NUMERIC_UNLOCK + LOCALE_LOCK + LOCALE_READ_LOCK + LOCALE_READ_UNLOCK + LOCALE_UNLOCK + LOCALTIME_LOCK + LOCALTIME_UNLOCK + MALFORMED_UTF8_DIE + MAXO + MEM_SIZE + MEM_SIZE_MAX + MEM_WRAP_CHECK + MIN_OFFUNI_VARIANT_CP + MKTIME_LOCK + MKTIME_UNLOCK + msbit_pos + MY_CXT_INDEX + MY_CXT_INIT_ARG + nBIT_MASK + nBIT_UMAX + New + Newc + NewOp + Newz + newRV_inc + NEWSV + NORMAL + Null + OCSHIFT + OFFUNI_IS_INVARIANT + OFFUNISKIP + ONE_IF_EBCDIC_ZERO_IF_NOT + OP_CHECK_MUTEX_LOCK + OP_CHECK_MUTEX_UNLOCK + OPf_MOD + OPf_REF + OPf_STACKED + OPf_WANT_LIST + OPf_WANT_SCALAR + OPf_WANT_VOID + OPpENTERSUB_HASTARG + OP_REFCNT_LOCK + OP_REFCNT_UNLOCK + PAD_SV + POPMARK + POPSTACK + POSIX_SETLOCALE_LOCK + POSIX_SETLOCALE_UNLOCK + pthread_condattr_default + PTHREAD_GETSPECIFIC + pthread_mutexattr_default + PUSHSTACKi + PUSHTARG + RESTORE_ERRNO + safefree + SAVEOP + SAVEt_FREEPV + SAVEt_OP + SAVEVPTR + S_IWOTH + S_IXOTH + SSize_t_MAX + Stack_off_t_MAX + Stat + Stat_t + STATUS_CURRENT + STATUS_EXIT + STATUS_UNIX + Strerror + STRFMON_LOCK + STRFMON_UNLOCK + STRFTIME_LOCK + STRFTIME_UNLOCK + STRUCT_OFFSET + SvANY + SV_CONST_RETURN + SVf_AMAGIC + SVf_FAKE + SVf_IOK + SVf_IsCOW + SVf_IVisUV + SvFLAGS + SVf_NOK + SVf_OK + SVf_OOK + SVf_POK + SVf_PROTECT + SVf_READONLY + SVf_ROK + SVf_THINKFIRST + SvGMAGICAL + Sv_Grow + SvIsUV + SvIV_please + SvIVx + SvMAGIC + SvMAGICAL + SvOBJECT + SvOBJECT_off + SvOBJECT_on + SvPADMY + SVpav_REAL + SVpgv_GP + SVphv_HasAUX + SVphv_HASKFLAGS + SVp_IOK + SVp_NOK + SVp_POK + SVprv_WEAKREF + SVp_SCREAM + SvPV_flags_const_nolen + SvRMAGICAL + SvRMAGICAL_on + SVs_GMG + SvSHARED_HEK_FROM_PV + SvSMAGICAL + SVs_OBJECT + SVs_RMG + SVs_SMG + SvTEMP_off + SvTHINKFIRST + SVt_MASK + SVt_RV + SVTYPEMASK + SvUVx + SvWEAKREF + TARGi + TARGn + TARGu + TRUE + tTHX + TZSET_LOCK + TZSET_UNLOCK + UNI_IS_INVARIANT + UNOP_AUX_item_sv + USER_PROP_MUTEX_LOCK + USER_PROP_MUTEX_UNLOCK + UTF8_ALLOW_ANY + UTF8_EIGHT_BIT_HI + UTF8_EIGHT_BIT_LO + UTF8_IS_ABOVE_LATIN1 + UTF8_IS_ABOVE_LATIN1_START + UTF8_IS_CONTINUATION + UTF8_MAXLEN + UTF_ACCUMULATION_SHIFT + UTF_CONTINUATION_BYTE_INFO_BITS + UTF_CONTINUATION_MARK + UTF_CONTINUATION_MASK + UTF_EBCDIC_CONTINUATION_BYTE_INFO_BITS + UTF_MIN_CONTINUATION_BYTE + UTF_START_MARK + UTF_TO_NATIVE + vTHX + WSETLOCALE_LOCK + WSETLOCALE_UNLOCK + xiv_iv + XOPf_xop_class + XOPf_xop_desc + XOPf_xop_name + xpv_len + xuv_uv + BASE_TWO_BYTE_HI_ + BASE_TWO_BYTE_LO_ + CC_ALPHA_ + CC_ALPHANUMERIC_ + CC_ASCII_ + CC_BINDIGIT_ + CC_BLANK_ + CC_CNTRL_ + CC_DIGIT_ + CC_GRAPH_ + CC_IDFIRST_ + CC_LOWER_ + CC_mask_ + CC_mask_A_ + CC_OCTDIGIT_ + CC_PRINT_ + CC_PUNCT_ + CC_SPACE_ + CC_UPPER_ + CC_WORDCHAR_ + CC_XDIGIT_ + DEBUG__ + DEBUG_l_TEST_ + DEBUG_s_TEST_ + DEBUG_v_TEST_ + EXTEND_NEEDS_GROW_ + EXTEND_SAFE_N_ + generic_func_utf8_safe_ + generic_invlist_utf8_safe_ + generic_invlist_uvchr_ + generic_isCC_ + generic_isCC_A_ + generic_LC_ + generic_LC_base_ + generic_LC_func_utf8_safe_ + generic_LC_invlist_utf8_safe_ + generic_LC_non_invlist_utf8_safe_ + generic_LC_utf8_safe_ + generic_non_invlist_utf8_safe_ + generic_utf8_safe_ + generic_utf8_safe_no_upper_latin1_ + generic_uvchr_ + inRANGE_helper_ + KEY___CLASS__ + KEY___DATA__ + KEY___END__ + KEY___FILE__ + KEY___LINE__ + KEY___PACKAGE__ + KEY___SUB__ + LOCALE_LOCK_ + LOCALE_UNLOCK_ + MBLEN_LOCK_ + MBLEN_UNLOCK_ + MBRLEN_LOCK_ + MBRLEN_UNLOCK_ + MBRTOWC_LOCK_ + MBRTOWC_UNLOCK_ + MBTOWC_LOCK_ + MBTOWC_UNLOCK_ + MEM_WRAP_CHECK_ + MEM_WRAP_NEEDS_RUNTIME_CHECK_ + MEM_WRAP_WILL_WRAP_ + OFFUNISKIP_helper_ + SAFE_FUNCTION__ + STATIC_ASSERT_STRUCT_BODY_ + STATIC_ASSERT_STRUCT_NAME_ + toFOLD_utf8_flags_ + toLOWER_utf8_flags_ + toTITLE_utf8_flags_ + toUPPER_utf8_flags_ + UNISKIP_BY_MSB_ + UTF8_CHECK_ONLY_BIT_POS_ + UTF8_GOT_CONTINUATION_BIT_POS_ + UTF8_GOT_LONG_BIT_POS_ + UTF8_GOT_NONCHAR_BIT_POS_ + UTF8_GOT_NON_CONTINUATION_BIT_POS_ + UTF8_GOT_OVERFLOW_BIT_POS_ + UTF8_GOT_SHORT_BIT_POS_ + UTF8_GOT_SUPER_BIT_POS_ + UTF8_GOT_SURROGATE_BIT_POS_ + utf8_safe_assert_ + UTF8_WARN_NONCHAR_BIT_POS_ + UTF8_WARN_SUPER_BIT_POS_ + UTF8_WARN_SURROGATE_BIT_POS_ + WCRTOMB_LOCK_ + WCRTOMB_UNLOCK_ + WCTOMB_LOCK_ + WCTOMB_UNLOCK_ + withinCOUNT_KNOWN_VALID_ + WRAP_U8_LC_ +); + +# This is a list of symbols that are used by the OS and which perl may need to +# define or redefine, and which aren't otherwise currently detectable by this +# program's algorithms as being such. They are not namespace pollutants +my @system_symbols = qw( + O_CREAT + O_RDWR + O_WRONLY + S_IWGRP + S_IWUSR + S_IXGRP + S_IXUSR + __setfdccsid + __attribute__format__null_ok__ +); + +# This is a list of symbols that are needed by the ext/re module, and are not +# documented. They become undefined for any other modules. +my @needed_by_ext_re = qw( + ANGSTROM_SIGN + ASCII_MORE_RESTRICT_PAT_MODS + ASCII_RESTRICT_PAT_MOD + ASCII_RESTRICT_PAT_MODS + CC_CASED_ + CC_CHARNAME_CONT_ + CC_IS_IN_SOME_FOLD_ + CC_MNEMONIC_CNTRL_ + CC_NONLATIN1_FOLD_ + CC_NONLATIN1_SIMPLE_FOLD_ + CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG_ + CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG_ + CONTINUE_PAT_MOD + DEFAULT_PAT_MOD + DEPENDS_PAT_MOD + DEPENDS_PAT_MODS + FBMcf_TAIL + FBMcf_TAIL_DOLLAR + FBMcf_TAIL_DOLLARM + FBMcf_TAIL_z + FBMcf_TAIL_Z + FBMrf_MULTILINE + FOLD_FLAGS_LOCALE + FOLD_FLAGS_NOMIX_ASCII + HAS_NONLATIN1_FOLD_CLOSURE + HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE + I16_MAX + IGNORE_PAT_MOD + IN_UTF8_TURKIC_LOCALE + isALPHA_FOLD_EQ + isCHARNAME_CONT + is_FOLDS_TO_MULTI_utf8 + isIDFIRST_lazy_if_safe + IS_IN_SOME_FOLD_L1 + is_LNBREAK_latin1_safe + is_LNBREAK_safe + is_LNBREAK_utf8_safe + isMNEMONIC_CNTRL + is_MULTI_CHAR_FOLD_latin1_safe + is_MULTI_CHAR_FOLD_utf8_safe + is_MULTI_CHAR_FOLD_utf8_safe_part0_ + is_MULTI_CHAR_FOLD_utf8_safe_part1_ + is_MULTI_CHAR_FOLD_utf8_safe_part2_ + is_MULTI_CHAR_FOLD_utf8_safe_part3_ + is_PATWS_safe + is_posix_CASED + isPOWER_OF_2 + is_PROBLEMATIC_LOCALE_FOLD_cp + is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp + is_PROBLEMATIC_LOCALE_FOLD_utf8 + is_THREE_CHAR_FOLD_HEAD_latin1_safe + is_THREE_CHAR_FOLD_HEAD_utf8_safe + is_THREE_CHAR_FOLD_latin1_safe + is_THREE_CHAR_FOLD_utf8_safe + isU8_CASED_LC + isWARNf_on + KEEPCOPY_PAT_MOD + KELVIN_SIGN + LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE + LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE + LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE + LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE_UTF8 + LATIN_CAPITAL_LETTER_SHARP_S + LATIN_SMALL_LETTER_A_WITH_RING_ABOVE + LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE + LATIN_SMALL_LETTER_DOTLESS_I + LATIN_SMALL_LETTER_LONG_S + LATIN_SMALL_LETTER_LONG_S_UTF8 + LATIN_SMALL_LETTER_SHARP_S_UTF8 + LATIN_SMALL_LIGATURE_LONG_S_T + LATIN_SMALL_LIGATURE_ST + LOCALE_PAT_MOD + MAX_CHARSET_NAME_LENGTH + MAX_FOLD_FROMS + MAX_LEGAL_CP + MAX_MATCHES + MAX_PRINT_A + MAX_UTF8_TWO_BYTE + memENDPs + MgBYTEPOS + MgBYTEPOS_set + MGf_BYTES + MICRO_SIGN_UTF8 + MSVC_DIAG_IGNORE_STMT + MULTILINE_PAT_MOD + new_XPVMG + NOCAPTURE_PAT_MOD + NON_OTHER_COUNT + NUM_ANYOF_CODE_POINTS + ONCE_PAT_MOD + OP_REFCNT_LOCK + OP_REFCNT_UNLOCK + OP_TYPE_IS_COP_NN + OP_TYPE_IS_NN + PadnameOURSTASH_set + PM_GETRE_raw + PM_SETRE + PM_SETRE_raw + REG_FETCH_ABSOLUTE + ReREFCNT_dec + REXEC_CHECKED + REXEC_FAIL_ON_UNDERFLOW + REXEC_IGNOREPOS + REXEC_NOT_FIRST + RXf_PMf_COMPILETIME + RXf_PMf_FLAGCOPYMASK + RXf_PMf_STD_PMMOD + RXf_USE_INTUIT + RXp_HAS_CUTGROUP + RXp_LASTCLOSEPAREN + RXp_LASTPAREN + RXp_MATCH_COPIED + RXp_MATCH_COPIED_off + RXp_MATCH_COPIED_on + RXp_MATCH_COPY_FREE + RXp_MATCH_TAINTED_off + RXp_MATCH_UTF8 + RXp_MATCH_UTF8_off + RXp_MATCH_UTF8_on + RXp_MATCH_UTF8_set + RXp_OFFSp + RXp_PAREN_NAMES + RX_PRECOMP_const + RXp_SAVED_COPY + RXp_SUBBEG + RXp_SUBCOFFSET + RXp_SUBLEN + RXp_SUBOFFSET + SAVECOMPPAD + SAVE_FREE_REXC_STATE + SAVE_MASK + SAVEt_COMPPAD + SAVEt_FREE_REXC_STATE + SAVE_TIGHT_SHIFT + SAVEt_REGCONTEXT + SAWAMPERSAND_LEFT + SAWAMPERSAND_MIDDLE + SAWAMPERSAND_RIGHT + SINGLE_PAT_MOD + specialWARN + SSGROW + SSPOPINT + SSPOPUV + SSPUSHINT + SSPUSHUV + STD_PAT_MODS + STD_PMMOD_FLAGS_CLEAR + STRLENs + SvCANCOW + SV_CONST_PUSH + SV_COW_REFCNT_MAX + SvPADTMP + SvPEEK + SvTAIL + SvVALID + TWO_BYTE_UTF8_TO_NATIVE + U16_MAX + U32_MAX + U8_MAX + UNICODE_MAJOR_VERSION + UNICODE_PAT_MOD + UNICODE_PAT_MODS + unpackWARN1 + unpackWARN2 + unpackWARN3 + unpackWARN4 + USER_PROP_MUTEX_LOCK + USER_PROP_MUTEX_UNLOCK + UTF8_ALLOW_ANYUV + UTF8_ALLOW_DEFAULT + UTF8_ALLOW_FE_FF + UTF8_DIE_IF_MALFORMED + UTF8_DIE_IF_MALFORMED_BIT_POS_ + UTF8_IS_NEXT_CHAR_DOWNGRADEABLE + UTF8_MIN_CONTINUATION_BYTE + UTF8_NO_CONFIDENCE_IN_CURLEN_ + UTF8_NO_CONFIDENCE_IN_CURLEN_BIT_POS_ + UTF8_TWO_BYTE_HI + vtohs + what_MULTI_CHAR_FOLD_latin1_safe + what_MULTI_CHAR_FOLD_utf8_safe + what_MULTI_CHAR_FOLD_utf8_safe_part0_ + what_MULTI_CHAR_FOLD_utf8_safe_part1_ + what_MULTI_CHAR_FOLD_utf8_safe_part2_ + what_MULTI_CHAR_FOLD_utf8_safe_part3_ + what_MULTI_CHAR_FOLD_utf8_safe_part4_ + what_MULTI_CHAR_FOLD_utf8_safe_part5_ + what_MULTI_CHAR_FOLD_utf8_safe_part6_ + what_MULTI_CHAR_FOLD_utf8_safe_part7_ + withinCOUNT + XDIGIT_VALUE + XTENDED_PAT_MOD + xV_FROM_REF +); + +# This is a list of symbols that are needed by various ext/ modules, and are +# not documented. They become undefined for any other modules. +my @needed_by_ext = qw( + AMG_CALLun + AMG_CALLunary + AMGf_assign + AMGf_noright + AMGf_unary + ASCTIME_LOCK + ASCTIME_UNLOCK + av_tindex_skip_len_mg + av_top_index_skip_len_mg + BhkENTRY + BHKf_bhk_eval + BHKf_bhk_post_end + BHKf_bhk_pre_end + BHKf_bhk_start + BhkFLAGS + blk_gimme + blk_oldsaveix + BmPREVIOUS + BmRARE + BmUSEFUL + CALLREGCOMP_ENG + CALLREGEXEC + CALLREG_NAMED_BUFF_ALL + CALLREG_NAMED_BUFF_FETCH + CALLREG_NAMED_BUFF_NEXTKEY + CAN_COW_FLAGS + CAN_COW_MASK + CASE_STD_PMMOD_FLAGS_PARSE_SET + CATCH_GET + CATCH_SET + cBINOPx + cCOPo + cCOPx + CC_QUOTEMETA_ + CC_VERTSPACE_ + CHANGE_MULTICALL_FLAGS + CHECK_AND_WARN_PROBLEMATIC_LOCALE_ + ckDEAD + cLISTOPo + cLISTOPx + cLOGOPo + cLOOPo + cLOOPx + cMETHOPo + cMETHOPx + COP_FEATURE_SIZE + CopHINTHASH_get + CowREFCNT + cPMOPo + cPMOPx + cPVOPo + cPVOPx + cSVOPo + cSVOPo_sv + cSVOPx + cSVOPx_sv + cUNOP_AUXo + cUNOP_AUXx + cUNOPo + CvANON + CvANONCONST + CvANONCONST_off + CvANONCONST_on + CvANON_off + CvCLONED + CvCONST + CVf_ANON + CVf_ANONCONST + CVf_AUTOLOAD + CVf_CLONE + CVf_CLONED + CVf_CVGV_RC + CVf_DYNFILE + CVf_EVAL_COMPILED + CVf_HASEVAL + CVf_IsMETHOD + CVf_LEXICAL + CVf_LVALUE + CVf_NAMED + CVf_NODEBUG + CVf_NOWARN_AMBIGUOUS + CVf_REFCOUNTED_ANYSV + CVf_SIGNATURE + CVf_UNIQUE + CVf_WEAKOUTSIDE + CVf_XS_RCSTACK + CvGV_set + CvHSCXT + CvISXSUB_on + CvLVALUE + CvLVALUE_on + CvNAMED + CvREFCOUNTED_ANYSV_on + CvXS_RCSTACK_off + CvXS_RCSTACK_on + CxMULTICALL + CXp_EVALBLOCK + CXp_FINALLY + CXp_FOR_DEF + CXp_FOR_GV + CXp_FOR_LVREF + CXp_FOR_PAD + CXp_HASARGS + CXp_MULTICALL + CXp_ONCE + CXp_REAL + CXp_SUB_RE + CXp_SUB_RE_FAKE + CXp_TRY + CXt_DEFER + DEBUG_BOTH_FLAGS_TEST_ + DEBUG_C + DEBUG_C_FLAG + DEBUG_C_TEST + DEBUG_C_TEST_ + DEBUG_L_FLAG + DEBUG_Lv + DEBUG_Lv_TEST + DEBUG_Lv_TEST_ + DEBUG_r + DEBUG_r_FLAG + DEBUG_X_FLAG + DEBUG_Xv + DEBUG_Xv_TEST + DEBUG_Xv_TEST_ + DEBUG_y_TEST_ + dMY_CXT_INTERP + DOUBLE_HAS_NAN + DPTR2FPTR + ENV_LOCK + ENV_READ_LOCK + ENV_READ_UNLOCK + ENVr_LOCALEr_LOCK + ENVr_LOCALEr_UNLOCK + ENV_UNLOCK + EVAL_INEVAL + EVAL_INREQUIRE + EVAL_KEEPERR + EVAL_NULL + EVAL_RE_REPARSING + EVAL_WARNONLY + FPTR2DPTR + FreeOp + GCC_DIAG_IGNORE + GCC_DIAG_IGNORE_STMT + GCC_DIAG_PRAGMA + GCC_DIAG_RESTORE + GCC_DIAG_RESTORE_STMT + generic_LC_invlist_uvchr_ + generic_LC_uvchr_ + G_FAKINGEVAL + GLOBAL_PAT_MOD + G_NODEBUG + GREEK_CAPITAL_LETTER_MU + GREEK_SMALL_LETTER_MU + G_RE_REPARSING + G_UNDEF_FILL + GvAVn + GvCVu + GvEGV + GvESTASH + GVf_ASSUMECV + gv_fetchmethod_flags + GvFILEGV + GvFILE_HEK + GvFILEx + GVf_IMPORTED + GVf_IMPORTED_AV + GVf_IMPORTED_CV + GVf_IMPORTED_HV + GVf_IMPORTED_SV + GVf_INTRO + GVf_ONCE_FATAL + GVf_RESERVED + GvGPFLAGS + GvHVn + GvLINE + gwENVr_LOCALEr_LOCK + gwENVr_LOCALEr_UNLOCK + G_WRITING_TO_STDERR + hasWARNBIT + HE_ARENA_ROOT_IX + HIGHEST_REGCOMP_DOT_H_SYNC_ + HINT_BLOCK_SCOPE + HINT_INTEGER + HINT_LOCALIZE_HH + HINT_RE_EVAL + HINT_STRICT_REFS + HSf_NOCHK + HSm_INTRPSIZE + HSm_KEY_MATCH + HV_DISABLE_UVAR_XKEY + HvENAME_get + HvENAMELEN_get + HvHasENAME + HvRAND_get + HvRITER + I32_MIN + INT32_MIN + isALNUM_uni + isALPHANUMERIC_uni + isALPHA_uni + isASCII_uni + isBLANK_uni + isCNTRL_uni + isDIGIT_uni + isGRAPH_uni + isIDCONT_uni + isIDFIRST_uni + isLOWER_uni + is_posix_ASCII + isPRINT_uni + isPSXSPC_uni + isPUNCT_uni + isQUOTEMETA + isREGEXP + isSPACE_uni + isU8_ASCII_LC + isUPPER_uni + isUTF8_POSSIBLY_PROBLEMATIC + is_VERTWS_cp_high + is_VERTWS_high + isVERTWS_uni + isVERTWS_utf8_safe + isVERTWS_uvchr + isWORDCHAR_uni + isXDIGIT_uni + KEYWORD_PLUGIN_EXPR + KEYWORD_PLUGIN_STMT + kUNOP + LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS + LATIN_SMALL_LETTER_SHARP_S + LATIN_SMALL_LETTER_SHARP_S_NATIVE + LATIN_SMALL_LETTER_Y_WITH_DIAERESIS + LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE + LATIN_SMALL_LIGATURE_ST_UTF8 + LC_COLLATE_LOCK + LC_COLLATE_UNLOCK + LC_NUMERIC_UNLOCK + LDBL_DIG + LEAVE_SCOPE + LINE_Tf + LOCALE_LOCK + LOCALE_READ_LOCK + LOCALE_READ_UNLOCK + LOCALE_UNLOCK + LvTARG + LvTARGLEN + LvTARGOFF + LvTYPE + MAX_UNICODE_UTF8_BYTES + MDEREF_ACTION_MASK + MDEREF_AV_gvav_aelem + MDEREF_AV_gvsv_vivify_rv2av_aelem + MDEREF_AV_padav_aelem + MDEREF_AV_padsv_vivify_rv2av_aelem + MDEREF_AV_pop_rv2av_aelem + MDEREF_AV_vivify_rv2av_aelem + MDEREF_FLAG_last + MDEREF_HV_gvhv_helem + MDEREF_HV_gvsv_vivify_rv2hv_helem + MDEREF_HV_padhv_helem + MDEREF_HV_padsv_vivify_rv2hv_helem + MDEREF_HV_pop_rv2hv_helem + MDEREF_HV_vivify_rv2hv_helem + MDEREF_INDEX_const + MDEREF_INDEX_gvsv + MDEREF_INDEX_MASK + MDEREF_INDEX_none + MDEREF_INDEX_padsv + MDEREF_MASK + MDEREF_reload + MDEREF_SHIFT + memBEGINPs + memBEGINs + MGf_REFCOUNTED + MGf_REQUIRE_GV + MICRO_SIGN + MICRO_SIGN_NATIVE + MKTIME_LOCK + MKTIME_UNLOCK + NATIVE_UTF8_TO_I8 + NOT_IN_NUMERIC_UNDERLYING_ + NOT_REACHED + NV_BIG_ENDIAN + NV_BODYLESS_UNION_ + NV_DIG + NV_EPSILON + NV_IMPLICIT_BIT + NV_LITTLE_ENDIAN + NV_MANT_DIG + NV_MAX + NV_MAX_10_EXP + NV_MAX_EXP + NV_MIN + NV_MIN_10_EXP + NV_MIN_EXP + NV_MIX_ENDIAN + NV_NAN_BITS + NV_NAN_IS_QUIET + NV_NAN_IS_SIGNALING + NV_NAN_PAYLOAD_MASK + NV_NAN_PAYLOAD_MASK_IEEE_754_128_BE + NV_NAN_PAYLOAD_MASK_IEEE_754_128_LE + NV_NAN_PAYLOAD_MASK_IEEE_754_64_BE + NV_NAN_PAYLOAD_MASK_IEEE_754_64_LE + NV_NAN_PAYLOAD_MASK_SKIP_EIGHT + NV_NAN_PAYLOAD_PERM + NV_NAN_PAYLOAD_PERM_0_TO_7 + NV_NAN_PAYLOAD_PERM_7_TO_0 + NV_NAN_PAYLOAD_PERM_IEEE_754_128_BE + NV_NAN_PAYLOAD_PERM_IEEE_754_128_LE + NV_NAN_PAYLOAD_PERM_IEEE_754_64_BE + NV_NAN_PAYLOAD_PERM_IEEE_754_64_LE + NV_NAN_PAYLOAD_PERM_SKIP_EIGHT + NV_NAN_QS_BIT + NV_NAN_QS_BIT_OFFSET + NV_NAN_QS_BIT_SHIFT + NV_NAN_QS_BYTE + NV_NAN_QS_BYTE_OFFSET + NV_NAN_QS_QUIET + NV_NAN_QS_SIGNALING + NV_NAN_QS_TEST + NV_NAN_QS_XOR + NV_NAN_SET_QUIET + NV_NAN_SET_SIGNALING + NV_VAX_ENDIAN + NV_WITHIN_IV + NV_WITHIN_UV + NV_X86_80_BIT + OA_AVREF + OA_BASEOP_OR_UNOP + OA_CLASS_MASK + OA_CVREF + OA_DANGEROUS + OA_DEFGV + OA_FILEREF + OA_FILESTATOP + OA_FOLDCONST + OA_HVREF + OA_LIST + OA_LOOPEXOP + OA_MARK + OA_METHOP + OA_OPTIONAL + OA_OTHERINT + OA_RETSCALAR + OA_SCALAR + OA_SCALARREF + OASHIFT + OA_TARGET + OA_TARGLEX + OA_UNOP_AUX + OPCODE + OPf_FOLDED + OPf_PARENS + OPf_SPECIAL + OPf_WANT + OP_LVALUE_NO_CROAK + OPpALLOW_FAKE + OPpARG1_MASK + OPpARG2_MASK + OPpARG3_MASK + OPpARG4_MASK + OPpARGELEM_AV + OPpARGELEM_HV + OPpARGELEM_MASK + OPpARGELEM_SV + OPpARG_IF_FALSE + OPpARG_IF_UNDEF + OPpASSIGN_BACKWARDS + OPpASSIGN_COMMON_AGG + OPpASSIGN_COMMON_RC1 + OPpASSIGN_COMMON_SCALAR + OPpASSIGN_CV_TO_GV + OPpASSIGN_TRUEBOOL + OPpAVHVSWITCH_MASK + OPpCONCAT_NESTED + OPpCONST_BARE + OPpCONST_ENTERED + OPpCONST_NOVER + OPpCONST_SHORTCIRCUIT + OPpCONST_STRICT + OPpCONST_TOKEN_BITS + OPpCONST_TOKEN_FILE + OPpCONST_TOKEN_LINE + OPpCONST_TOKEN_MASK + OPpCONST_TOKEN_PACKAGE + OPpCONST_TOKEN_SHIFT + OPpCOREARGS_DEREF1 + OPpCOREARGS_DEREF2 + OPpCOREARGS_PUSHMARK + OPpCOREARGS_SCALARMOD + OPpDEFER_FINALLY + OPpDEREF + OPpDEREF_AV + OPpDEREF_HV + OPpDEREF_SV + OPpDONT_INIT_GV + OPpEARLY_CV + OPpEMPTYAVHV_IS_HV + OPpENTERSUB_AMPER + OPpENTERSUB_DB + OPpENTERSUB_INARGS + OPpENTERSUB_LVAL_MASK + OPpENTERSUB_NOPAREN + OPpEVAL_BYTES + OPpEVAL_COPHH + OPpEVAL_EVALSV + OPpEVAL_HAS_HH + OPpEVAL_RE_REPARSING + OPpEVAL_UNICODE + OPpEXISTS_SUB + OPpFLIP_LINENUM + OPpFT_ACCESS + OPpFT_AFTER_t + OPpFT_STACKED + OPpFT_STACKING + OPpHELEMEXISTSOR_DELETE + OPpHINT_STRICT_REFS + OPpHUSH_VMSISH + OPpINDEX_BOOLNEG + OPpINITFIELD_AV + OPpINITFIELD_HV + OPpINITFIELDS + OPpITER_DEF + OPpITER_INDEXED + OPpITER_REVERSED + OPpKVSLICE + OPpLIST_GUESSED + OPpLVAL_DEFER + OPpLVAL_INTRO + OPpLVALUE + OPpLVREF_AV + OPpLVREF_CV + OPpLVREF_ELEM + OPpLVREF_HV + OPpLVREF_ITER + OPpLVREF_SV + OPpLVREF_TYPE + OPpMAYBE_LVSUB + OPpMAYBE_TRUEBOOL + OPpMAY_RETURN_CONSTANT + OPpMETH_NO_BAREWORD_IO + op_pmflags + op_pmoffset + OPpMULTICONCAT_APPEND + OPpMULTICONCAT_FAKE + OPpMULTICONCAT_STRINGIFY + OPpMULTIDEREF_DELETE + OPpMULTIDEREF_EXISTS + OPpOFFBYONE + OPpOPEN_IN_CRLF + OPpOPEN_IN_RAW + OPpOPEN_OUT_CRLF + OPpOPEN_OUT_RAW + OPpOUR_INTRO + OPpPADHV_ISKEYS + OPpPADRANGE_COUNTMASK + OPpPADRANGE_COUNTSHIFT + OPpPAD_STATE + OPpPARAM_IF_FALSE + OPpPARAM_IF_UNDEF + OPpPV_IS_UTF8 + OPpREFCOUNTED + OPpREPEAT_DOLIST + OPpREVERSE_INPLACE + OPpRV2HV_ISKEYS + OPpSELF_IN_PAD + OPpSLICE + OPpSLICEWARNING + OPpSORT_DESCEND + OPpSORT_INPLACE + OPpSORT_INTEGER + OPpSORT_NUMERIC + OPpSORT_REVERSE + OPpSPLIT_ASSIGN + OPpSPLIT_IMPLIM + OPpSPLIT_LEX + OPpSUBSTR_REPL_FIRST + OPpTARGET_MY + OPpTRANS_ALL + OPpTRANS_BITS + OPpTRANS_CAN_FORCE_UTF8 + OPpTRANS_COMPLEMENT + OPpTRANS_DELETE + OPpTRANS_FROM_UTF + OPpTRANS_GROWS + OPpTRANS_IDENTICAL + OPpTRANS_MASK + OPpTRANS_ONLY_UTF8_INVARIANTS + OPpTRANS_SHIFT + OPpTRANS_SQUASH + OPpTRANS_TO_UTF + OPpTRANS_USE_SVOP + OPpTRUEBOOL + OPpUNDEF_KEEP_PV + OPpUSEINT + padadd_NO_DUP_CHECK + padadd_STATE + PAD_COMPNAME_FLAGS_isOUR + PAD_COMPNAME_SV + PAD_FAKELEX_ANON + PAD_FAKELEX_MULTI + PADNAMEf_FIELD + PadnameFLAGS + PADNAMEf_LVALUE + PADNAMEf_OUR + PADNAMEf_STATE + PADNAMEf_TYPED + PadnameIsOUR + PadnameOUTER + PAD_SET_CUR_NOSAVE + PAD_SVl + PMf_BASE_SHIFT + PMf_CHARSET + PMf_CODELIST_PRIVATE + PMf_CONST + PMf_CONTINUE + PMf_EVAL + PMf_EXTENDED + PMf_EXTENDED_MORE + PMf_FOLD + PMf_GLOBAL + PMf_HAS_CV + PMf_HAS_ERROR + PMf_IS_QR + PMf_KEEP + PMf_KEEPCOPY + PMf_MULTILINE + PMf_NOCAPTURE + PMf_NONDESTRUCT + PMf_ONCE + PMf_RETAINT + PMf_SINGLELINE + PMf_SPLIT + PMf_STRICT + PMf_USED + PMf_USE_RE_EVAL + PMf_WILDCARD + PM_GETRE + PmopSTASH + PmopSTASHPV + POPSTACK_TO + PUSH_MULTICALL_FLAGS + PUSHSTACK + pWARN_ALL + pWARN_NONE + pWARN_STD + RCPVf_ALLOW_EMPTY + RCPVf_NO_COPY + RCPVf_USE_STRLEN + REFCOUNTED_HE_KEY_UTF8 + RETURN + ROTL64 + ROTR32 + ROTR64 + RV2CVOPCV_FLAG_MASK + RV2CVOPCV_MAYBE_NAME_GV + RV2CVOPCV_RETURN_STUB + RX_COMPFLAGS + RX_ENGINE + RX_EXTFLAGS + RXf_BASE_SHIFT + RXf_CHECK_ALL + RXf_COPY_DONE + RXf_EVAL_SEEN + RXf_INTUIT_TAIL + RXf_IS_ANCHORED + RXf_MATCH_UTF8 + RXf_PMf_CHARSET + RXf_PMf_CHARSET_SHIFT_ + RXf_PMf_EXTENDED_MORE + RXf_PMf_NOCAPTURE + RXf_PMf_SHIFT_NEXT_ + RXf_PMf_SPLIT + RXf_PMf_STRICT + RXf_TAINTED + RXf_TAINTED_SEEN + RXf_UNBOUNDED_QUANTIFIER_SEEN + RXf_USE_INTUIT_ML + RXf_USE_INTUIT_NOML + RXp_COMPFLAGS + RXp_ENGINE + RXp_EXTFLAGS + RX_PRECOMP + RX_PRELEN + RX_UTF8 + RX_WRAPLEN + RX_WRAPPED + RX_WRAPPED_const + SAVEFREECOPHH + SAVEHINTS + SAVEt_FREECOPHH + SAVEt_FREESV + SETs + sharepvn + shifted_octet_ + strBEGINs + SVf_BREAK + SvIsCOW_static + SvIsUV_on + SvNVx + SvOK_off + SVpad_OUR + SVpad_STATE + SVpad_TYPED + SV_POSBYTES + SVppv_STATIC + SvSetSV_and + SvTIED_mg + toFOLD_LC + toFOLD_uni + toLOWER_uni + to_posix_LOWER + to_posix_UPPER + toTITLE_uni + toU8_LOWER_LC + toU8_UPPER_LC + toUPPER_LC + toUPPER_uni + tryAMAGICunDEREF + TZSET_LOCK + TZSET_UNLOCK + U8TO32_LE + U8TO64_LE + UNICODE_SURROGATE_FIRST + UTF8_ACCUMULATE + UTF8_IS_CONTINUED + UTF8_IS_DOWNGRADEABLE_START + UTF8_IS_START + UTF8_IS_START_base + UTF8_MAX_FOLD_CHAR_EXPAND + utf8_to_utf16 + utf8_to_utf16_reversed + UTF_IS_CONTINUATION_MASK + UTF_MIN_ABOVE_LATIN1_BYTE + UTF_MIN_START_BYTE + UTF_START_BYTE + UTF_START_MASK + want_vtbl_bm + want_vtbl_fm + xlv_targoff + XOPf_xop_dump + XOPf_xop_peep + XPUSHTARG + XS_DYNAMIC_FILENAME +); + +my %unexpectedly_used_outside_core; +$unexpectedly_used_outside_core{$_} = 1 for @unexpectedly_used_outside_core; + +my %system_symbols; +$system_symbols{$_} = 1 for @system_symbols; + +my %needed_by_ext_re; +$needed_by_ext_re{$_} = 1 for @needed_by_ext_re; + +my %needed_by_ext; +$needed_by_ext{$_} = 1 for @needed_by_ext; + +# Keep lists of symbols to undef under various conditions. We can initialize +# the two ones for perl extensions with the lists above. +my %always_undefs; +my %non_ext_re_undefs = %needed_by_ext_re; +my %non_ext_undefs = %needed_by_ext; + # See database of global and static function prototypes in embed.fnc # This is used to generate prototype headers under various configurations, # export symbols lists for different platforms, and macros to provide an @@ -131,6 +1808,10 @@ sub open_buf_out { # take non-initialised GV pointers ); +# Pointer arguments that erroneously don't indicate whether they can be NULL, +# etc. +my $unflagged_pointers; + # generate proto.h sub generate_proto_h { my ($all)= @_; @@ -191,6 +1872,13 @@ sub generate_proto_h { die_at_end "$plain_func: m and S flags are mutually exclusive"; } + + # Don't generate a prototype for a macro that is not usable by the + # outside world. + next unless $flags =~ /[ACE]/; + + # Nor one that is weird, which would likely be a syntax error. + next if $flags =~ /u/; } else { die_at_end "$plain_func: u flag only usable with m" @@ -367,7 +2055,8 @@ sub generate_proto_h { my $temp_arg = $arg; $temp_arg =~ s/\*//g; - $temp_arg =~ s/\s*\bstruct\b\s*/ /g; + $temp_arg =~ + s/ \s* \b ( struct | enum | union ) \b \s*/ /xg; if ( ($temp_arg ne "...") && ($temp_arg !~ /\w+\s+(\w+)(?:\[\d+\])?\s*$/) ) { die_at_end "$func: $arg ($n) doesn't have a name\n"; @@ -767,6 +2456,15 @@ sub embed_h { my $embed= $_->{embed} or next; my ($flags,$retval,$func,$args) = @{$embed}{qw(flags return_type name args)}; + if ($flags =~ /m/ && $flags !~ /p/) { + if ($flags !~ /[ACE]/) { # No external visibility + $always_undefs{$func} = 1; + } + elsif ($flags =~ /E/) { # Visible to perl extensions + $non_ext_undefs{$func} = 1; + } + } + my $full_name = full_name($func, $flags); next if $full_name eq $func; # Don't output a no-op. @@ -899,15 +2597,11 @@ sub generate_embed_h { print $em <<~'END'; /* (Doing namespace management portably in C is really gross.) */ - /* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms - * (like warn instead of Perl_warn) for the API are not defined. - * Not defining the short forms is a good thing for cleaner embedding. - * BEWARE that a bunch of macros don't have long names, so either must be - * added or don't use them if you define this symbol */ + /* When this symbol is defined, we undef various symbols we have defined + * before when this file was #included with the symbol undefined */ + #if ! defined(PERL_DO_UNDEFS) - #ifndef PERL_NO_SHORT_NAMES - - /* Hide global symbols */ + /* Create short name macros that hide any need for thread context */ END @@ -917,8 +2611,6 @@ sub generate_embed_h { print $em <<~'END'; - #endif /* #ifndef PERL_NO_SHORT_NAMES */ - #if !defined(PERL_CORE) /* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to * disable them. @@ -945,9 +2637,7 @@ sub generate_embed_h { provides a set of compatibility functions that don't take an extra argument but grab the context pointer using the macro dTHX. */ - #if defined(MULTIPLICITY) \ - && !defined(PERL_NO_SHORT_NAMES) \ - && !defined(PERL_WANT_VARARGS) + #if defined(MULTIPLICITY) && !defined(PERL_WANT_VARARGS) END foreach (@have_compatibility_macros) { @@ -967,7 +2657,35 @@ sub generate_embed_h { print $em indent_define("Perl_${_}_nocontext", "Perl_$_", " "); } + print $em <<~EOT; + #endif /* !defined(MULTIPLICITY) */ + #elif ! defined(PERL_CORE) + EOT + + # We undefine all elements on the list of symbol names to keep from user + # name space if PERL_NO_SHORT_NAMES is in effect (which requests this), + # but override it if are compiling the core. + for my $i ( + [ "", \%always_undefs ], + [ '#ifndef PERL_EXT_RE_BUILD', \%non_ext_re_undefs ], + [ '#ifndef PERL_EXT', \%non_ext_undefs ], + ) + { + my $ifdef = $i->[0]; + my $hash = $i->[1]; + + print $em $ifdef, "\n" if $ifdef; + for my $name ( sort { lc $a cmp lc $b + or $a cmp $b + } keys %{$hash}) + { + print $em "#undef $name\n"; + } + print $em "#endif\n" if $ifdef; + } + print $em "#endif\n"; + close $em; normalize_and_print('embed.h',$embed_buffer) @@ -1005,11 +2723,203 @@ sub generate_embedvar_h { unless $error_count; } +sub recurse_conds { + + # Look through the list of conditionals that HeaderParser generates, + # looking for occurrences of the regex $pattern, returning true if found; + # false otherwise. + + my $status = 0; + my ($pattern, @conds) = @_; + for my $this_cond (@conds) { + + # Recurse if necessary + if (ref $this_cond eq 'ARRAY') { + $status |= recurse_conds($pattern, $this_cond->@*); + return $status if $status; # Early return if found + } + else { + $status |= $this_cond =~ $pattern; + return $status if $status; # Early return if found + } + } + + return 0; +} + +my %visibility; + +sub process_apidoc_lines { + + # Look through the input array of lines for ones that can declare the + # visibility of a symbol, and add those that are visible externally to + # that list; and those that are visible to perl extensions to that list + + my $group_flags; + for my $individual_line (@_) { + next unless $individual_line =~ + m/ ^=for \s+ apidoc (\b | _defn | _item) \s* (.+) /x; + my $type = $1; + + # A full-blown declaration has all these fields + my ($flags, $return_type, $name, @rest) = split /\s*\|\s*/, $2; + + # But some lines look like '=for apidoc foo' where the rest of the + # data comes from elsewhere. For these, shift. + if (! defined $return_type) { + $name = $flags; + $flags = ""; + } + + # These declarations may come in groups with the first line being + # 'apidoc', and the remaining ones 'apidoc_item'. The flags parameter + # of the 'apidoc' line applies to the rest, though those may add flags + # individually. + if ($type ne "_item" ) { + $group_flags = $flags; + } + elsif ($flags) { + $flags .= $group_flags; + } + else { + $flags = $group_flags; + } + + # If no flag indicates any external visibility, we are done with this + # one. + $flags =~ s/[^ACE]//g; + next unless $flags; + + #next if defined $needed_by_ext{$name}; + #next if defined $needed_by_ext_re{$name}; + + #die_at_end "${name}'s visibility is declared more than once" + #if defined $visibility{$name}; + $visibility{$name} = $flags; + } +} + +sub find_undefs { + + # Find all the #defines that are visible to modules and which aren't + # marked as such nor whose names indicate they are reserved for Perl's + # use. + # + # First examine the passed in data from embed.fnc; + my $all = shift; + foreach my $entry ($all->@*) { + next unless $entry->embed; + my $flags = $entry->embed->{flags}; + $flags =~ s/[^ACE]//g; + next unless $flags; # No visibility + $visibility{$entry->embed->{name}} = $flags; + } + + # Then examine every top-level header. And we also examine the top + # level dot c files looking for symbols that are supposed to be visible. + my @header_list; + my @c_list; + open my $mf, "<", "MANIFEST" or die "Can't open MANIFEST: $!"; + while (defined (my $file = <$mf>)) { + chomp $file;; + $file =~ s/ \s .* //x; + next if $file =~ m,/,; + next if defined $skip_files{$file}; + + push @header_list, $file if $file =~ / ( \.h | \.inc ) \b /x; + push @c_list, $file if $file =~ / \.c \b /x; + } + close $mf or die "Can't close MANIFEST: $!"; + + # There are a few cases where we redefine a system function to use the + # 64-bit equivalent one that has a different name. They currenty all look + # like this. These symbols would show up as #defines that shouldn't have + # external visibility. + my $has_64_pattern = qr / ( HAS | USE ) _ \w* 64 /x; + + foreach my $hdr (@header_list) { + + # Parse the header + my $lines = HeaderParser->new()->read_file($hdr)->lines(); + foreach my $line ($lines->@*) { + + # We are here looking only for #defines and visibility + # declarations + next unless $line->{type} eq 'content'; + + # First, for #defines. + if ($line->{sub_type} eq '#define') { + + # HeaderParser stripped of most everything. + my $flat = $line->{flat}; + + # Just the symbol and its definition + $flat =~ s/ ^ \s* \# \s* define \s+ //x; + + # Just the symbol, no arglist nor definition + $flat =~ s/ (?: \s | \( ) .* //x; + + # These are reserved for Perl's use, so not a problem. + next if $flat =~ / ^ PL_ /x; + next if $flat =~ /perl/i; + + # Presume that we are to keep this out of the user's namespace + $always_undefs{$flat} = 1; + + # Often perl has code to make sure various symbols that are + # always expected by the system to be defined, in fact are. + # These don't constitute namespace pollution. So, if perl + # defines a symbol only if it already isn't defined, we add it + # to the list of system symbols + my $pattern = qr/ ! \s* defined\($flat\)/x; + if ( recurse_conds($pattern, $line->{cond}->@*) + || recurse_conds($has_64_pattern, $line->{cond}->@*)) + { + $system_symbols{$flat} = 1; + } + } + else { + + # Otherwise check for a visibility declaration. + next unless $line->{sub_type} eq 'text'; + + # Only comments have apidoc lines. + next unless $line->{flat} eq ""; + + next unless $line->{line} =~ / ^ =for \s+ apidoc /mx; + process_apidoc_lines(split /\n/, $line->{line}); + } + } + } # Done with headrs + + # Now look through the C and pod files + foreach my $pod (@c_list, @pod_list) { + open my $pfh, "<", $pod or die "Can't open $pod: $!"; + process_apidoc_lines(<$pfh>); + close $pfh or die "Can't close $pod: $!"; + } + + # Here, have found all the externally visible macro definitions. We will + # undef all of them that aren't expected to be visible and aren't + # otherwise needed to be visible. + foreach my $entry (keys %system_symbols, + %needed_by_ext, + %needed_by_ext_re, + %visibility, + %unexpectedly_used_outside_core + ) + { + delete $always_undefs{$entry}; + } + +} + sub update_headers { my ($all, $api, $ext, $core) = setup_embed(); # see regen/embed_lib.pl generate_proto_h($all); die_at_end "$unflagged_pointers pointer arguments to clean up\n" if $unflagged_pointers; + find_undefs($all); generate_embed_h($all, $api, $ext, $core); generate_embedvar_h(); die "$error_count errors found" if $error_count; diff --git a/util.h b/util.h index 386f38935621..a339bbdf6be0 100644 --- a/util.h +++ b/util.h @@ -252,7 +252,7 @@ returning NULL if not found. The terminating NUL bytes are not compared. */ -#define instr(haystack, needle) strstr(haystack, needle) +#define instr(haystack, needle) strstr((char *) haystack, (char *) needle) #ifdef HAS_MEMMEM # define ninstr(big, bigend, little, lend) \