diff --git a/ByteLoader/bytecode.h b/ByteLoader/bytecode.h index abd37525b..9aeff0708 100644 --- a/ByteLoader/bytecode.h +++ b/ByteLoader/bytecode.h @@ -122,7 +122,7 @@ static int bget_swab = 0; if (BGET_FREAD(&arg, sizeof(type), 1) < 1) { \ Perl_croak(aTHX_ \ "EOF or error while trying to read %lu bytes for %s", \ - sizeof(type), STRINGIFY(type)); \ + (unsigned long)sizeof(type), STRINGIFY(type)); \ } \ } STMT_END @@ -237,7 +237,7 @@ static int bget_swab = 0; BSET_OBJ_STOREX(sv); \ } STMT_END #define BSET_gv_fetchpvn_flags(sv, arg) STMT_START { \ - int flags = (arg & 0xff80) >> 7; SVTYPE_t type = arg & 0x7f; \ + int flags = (arg & 0xff80) >> 7; SVTYPE_t type = (SVTYPE_t)(arg & 0x7f); \ sv = (SV*)gv_fetchpv(savepv(bstate->bs_pv.pv), flags, type); \ BSET_OBJ_STOREX(sv); \ } STMT_END diff --git a/ByteLoader/ppport.h b/ByteLoader/ppport.h index f8117f4af..df65afb5d 100644 --- a/ByteLoader/ppport.h +++ b/ByteLoader/ppport.h @@ -4,9 +4,9 @@ /* ---------------------------------------------------------------------- - ppport.h -- Perl/Pollution/Portability Version 3.13 + ppport.h -- Perl/Pollution/Portability Version 3.33_02 - Automatically created by Devel::PPPort running under perl 5.010000. + Automatically created by Devel::PPPort running under perl 5.024000. Do NOT edit this file directly! -- Edit PPPort_pm.PL and the includes in parts/inc/ instead. @@ -21,7 +21,7 @@ SKIP =head1 NAME -ppport.h - Perl/Pollution/Portability version 3.13 +ppport.h - Perl/Pollution/Portability version 3.33_02 =head1 SYNOPSIS @@ -56,7 +56,7 @@ ppport.h - Perl/Pollution/Portability version 3.13 =head1 COMPATIBILITY This version of F is designed to support operation with Perl -installations back to 5.003, and has been tested up to 5.10.0. +installations back to 5.003, and has been tested up to 5.20. =head1 OPTIONS @@ -79,7 +79,7 @@ to be installed on your system. If this option is given, a copy of each file will be saved with the given suffix that contains the suggested changes. This does not require any external programs. Note that this does not -automagially add a dot between the original filename and the +automagically add a dot between the original filename and the suffix. If you want the dot, you have to include it in the option argument. @@ -217,20 +217,31 @@ same function or variable in your project. Function / Variable Static Request Global Request ----------------------------------------------------------------------------------------- + PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL + SvRX() NEED_SvRX NEED_SvRX_GLOBAL + caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL grok_number() NEED_grok_number NEED_grok_number_GLOBAL grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL + gv_fetchpvn_flags() NEED_gv_fetchpvn_flags NEED_gv_fetchpvn_flags_GLOBAL load_module() NEED_load_module NEED_load_module_GLOBAL + mg_findext() NEED_mg_findext NEED_mg_findext_GLOBAL my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL + my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL + newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL + newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL + pv_display() NEED_pv_display NEED_pv_display_GLOBAL + pv_escape() NEED_pv_escape NEED_pv_escape_GLOBAL + pv_pretty() NEED_pv_pretty NEED_pv_pretty_GLOBAL sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL @@ -238,6 +249,7 @@ same function or variable in your project. sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL + sv_unmagicext() NEED_sv_unmagicext NEED_sv_unmagicext_GLOBAL vload_module() NEED_vload_module NEED_vload_module_GLOBAL vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL warner() NEED_warner NEED_warner_GLOBAL @@ -318,7 +330,7 @@ before sending a bug report. If F was generated using the latest version of C and is causing failure of this module, please -file a bug report using the CPAN Request Tracker at L. +file a bug report here: L Please include the following information: @@ -351,7 +363,7 @@ module from CPAN. =head1 COPYRIGHT -Version 3.x, Copyright (c) 2004-2007, Marcus Holland-Moritz. +Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. @@ -371,7 +383,7 @@ use strict; # Disable broken TRIE-optimization BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 } -my $VERSION = 3.13; +my $VERSION = 3.33_02; my %opt = ( quiet => 0, @@ -438,11 +450,21 @@ my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/ (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()), } ) : die "invalid spec: $_" } qw( +ASCII_TO_NEED||5.007001|n AvFILLp|5.004050||p AvFILL||| +BhkDISABLE||5.024000| +BhkENABLE||5.024000| +BhkENTRY_set||5.024000| +BhkENTRY||| +BhkFLAGS||| +CALL_BLOCK_HOOKS||| CLASS|||n +CPERLscope|5.005000||p CX_CURPAD_SAVE||| CX_CURPAD_SV||| +C_ARRAY_END|5.013002||p +C_ARRAY_LENGTH|5.008001||p CopFILEAV|5.006000||p CopFILEGV_set|5.006000||p CopFILEGV|5.006000||p @@ -454,12 +476,15 @@ CopSTASHPV|5.006000||p CopSTASH_eq|5.006000||p CopSTASH_set|5.006000||p CopSTASH|5.006000||p -CopyD|5.009002||p +CopyD|5.009002|5.004050|p Copy||| -CvPADLIST||| +CvPADLIST||5.008001| CvSTASH||| CvWEAKOUTSIDE||| +DECLARATION_FOR_LC_NUMERIC_MANIPULATION||5.021010|n +DEFSV_set|5.010001||p DEFSV|5.004050||p +DO_UTF8||5.006000| END_EXTERN_C|5.005000||p ENTER||| ERRSV|5.004050||p @@ -473,21 +498,33 @@ GROK_NUMERIC_RADIX|5.007002||p G_ARRAY||| G_DISCARD||| G_EVAL||| +G_METHOD|5.006001||p G_NOARGS||| G_SCALAR||| G_VOID||5.004000| GetVars||| +GvAV||| +GvCV||| +GvHV||| GvSV||| -Gv_AMupdate||| -HEf_SVKEY||5.004000| -HeHASH||5.004000| -HeKEY||5.004000| -HeKLEN||5.004000| +Gv_AMupdate||5.011000| +HEf_SVKEY|5.003070||p +HeHASH||5.003070| +HeKEY||5.003070| +HeKLEN||5.003070| HePV||5.004000| -HeSVKEY_force||5.004000| +HeSVKEY_force||5.003070| HeSVKEY_set||5.004000| -HeSVKEY||5.004000| -HeVAL||5.004000| +HeSVKEY||5.003070| +HeUTF8|5.010001|5.008000|p +HeVAL||5.003070| +HvENAMELEN|5.015004||p +HvENAMEUTF8|5.015004||p +HvENAME|5.013007||p +HvNAMELEN_get|5.009003||p +HvNAMELEN|5.015004||p +HvNAMEUTF8|5.015004||p +HvNAME_get|5.009003||p HvNAME||| INT2PTR|5.006000||p IN_LOCALE_COMPILETIME|5.007002||p @@ -504,14 +541,18 @@ IVSIZE|5.006000||p IVTYPE|5.006000||p IVdf|5.006000||p LEAVE||| +LINKLIST||5.013006| LVRET||| MARK||| -MULTICALL||5.009005| +MULTICALL||5.024000| +MUTABLE_PTR|5.010001||p +MUTABLE_SV|5.010001||p MY_CXT_CLONE|5.009002||p MY_CXT_INIT|5.007003||p MY_CXT|5.007003||p -MoveD|5.009002||p +MoveD|5.009002|5.004050|p Move||| +NATIVE_TO_NEED||5.007001|n NOOP|5.005000||p NUM2PTR|5.006000||p NVTYPE|5.006000||p @@ -526,7 +567,18 @@ Nullch||| Nullcv||| Nullhv||| Nullsv||| +OP_CLASS||5.013007| +OP_DESC||5.007003| +OP_NAME||5.007003| +OP_TYPE_IS_OR_WAS||5.019010| +OP_TYPE_IS||5.019007| ORIGMARK||| +OpHAS_SIBLING|5.021007||p +OpLASTSIB_set|5.021011||p +OpMAYBESIB_set|5.021011||p +OpMORESIB_set|5.021011||p +OpSIBLING_set||5.021007| +OpSIBLING|5.021007||p PAD_BASE_SV||| PAD_CLONE_VARS||| PAD_COMPNAME_FLAGS||| @@ -543,14 +595,16 @@ PAD_SET_CUR_NOSAVE||| PAD_SET_CUR||| PAD_SVl||| PAD_SV||| +PERLIO_FUNCS_CAST|5.009003||p +PERLIO_FUNCS_DECL|5.009003||p PERL_ABS|5.008001||p -PERL_BCDVERSION|5.009005||p +PERL_BCDVERSION|5.024000||p PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p -PERL_HASH|5.004000||p -PERL_INT_MAX|5.004000||p -PERL_INT_MIN|5.004000||p -PERL_LONG_MAX|5.004000||p -PERL_LONG_MIN|5.004000||p +PERL_HASH|5.003070||p +PERL_INT_MAX|5.003070||p +PERL_INT_MIN|5.003070||p +PERL_LONG_MAX|5.003070||p +PERL_LONG_MIN|5.003070||p PERL_MAGIC_arylen|5.007002||p PERL_MAGIC_backref|5.007002||p PERL_MAGIC_bm|5.007002||p @@ -562,14 +616,14 @@ PERL_MAGIC_envelem|5.007002||p PERL_MAGIC_env|5.007002||p PERL_MAGIC_ext|5.007002||p PERL_MAGIC_fm|5.007002||p -PERL_MAGIC_glob|5.009005||p +PERL_MAGIC_glob|5.024000||p PERL_MAGIC_isaelem|5.007002||p PERL_MAGIC_isa|5.007002||p -PERL_MAGIC_mutex|5.009005||p +PERL_MAGIC_mutex|5.024000||p PERL_MAGIC_nkeys|5.007002||p -PERL_MAGIC_overload_elem|5.007002||p +PERL_MAGIC_overload_elem|5.024000||p PERL_MAGIC_overload_table|5.007002||p -PERL_MAGIC_overload|5.007002||p +PERL_MAGIC_overload|5.024000||p PERL_MAGIC_pos|5.007002||p PERL_MAGIC_qr|5.007002||p PERL_MAGIC_regdata|5.007002||p @@ -590,41 +644,65 @@ PERL_MAGIC_uvar_elem|5.007003||p PERL_MAGIC_uvar|5.007002||p PERL_MAGIC_vec|5.007002||p PERL_MAGIC_vstring|5.008001||p -PERL_QUAD_MAX|5.004000||p -PERL_QUAD_MIN|5.004000||p +PERL_PV_ESCAPE_ALL|5.009004||p +PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p +PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p +PERL_PV_ESCAPE_NOCLEAR|5.009004||p +PERL_PV_ESCAPE_QUOTE|5.009004||p +PERL_PV_ESCAPE_RE|5.009005||p +PERL_PV_ESCAPE_UNI_DETECT|5.009004||p +PERL_PV_ESCAPE_UNI|5.009004||p +PERL_PV_PRETTY_DUMP|5.009004||p +PERL_PV_PRETTY_ELLIPSES|5.010000||p +PERL_PV_PRETTY_LTGT|5.009004||p +PERL_PV_PRETTY_NOCLEAR|5.010000||p +PERL_PV_PRETTY_QUOTE|5.009004||p +PERL_PV_PRETTY_REGPROP|5.009004||p +PERL_QUAD_MAX|5.003070||p +PERL_QUAD_MIN|5.003070||p PERL_REVISION|5.006000||p PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p PERL_SCAN_DISALLOW_PREFIX|5.007003||p PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p PERL_SCAN_SILENT_ILLDIGIT|5.008001||p -PERL_SHORT_MAX|5.004000||p -PERL_SHORT_MIN|5.004000||p +PERL_SHORT_MAX|5.003070||p +PERL_SHORT_MIN|5.003070||p PERL_SIGNALS_UNSAFE_FLAG|5.008001||p PERL_SUBVERSION|5.006000||p -PERL_UCHAR_MAX|5.004000||p -PERL_UCHAR_MIN|5.004000||p -PERL_UINT_MAX|5.004000||p -PERL_UINT_MIN|5.004000||p -PERL_ULONG_MAX|5.004000||p -PERL_ULONG_MIN|5.004000||p +PERL_SYS_INIT3||5.006000| +PERL_SYS_INIT||| +PERL_SYS_TERM||5.024000| +PERL_UCHAR_MAX|5.003070||p +PERL_UCHAR_MIN|5.003070||p +PERL_UINT_MAX|5.003070||p +PERL_UINT_MIN|5.003070||p +PERL_ULONG_MAX|5.003070||p +PERL_ULONG_MIN|5.003070||p PERL_UNUSED_ARG|5.009003||p PERL_UNUSED_CONTEXT|5.009004||p PERL_UNUSED_DECL|5.007002||p +PERL_UNUSED_RESULT|5.021001||p PERL_UNUSED_VAR|5.007002||p -PERL_UQUAD_MAX|5.004000||p -PERL_UQUAD_MIN|5.004000||p +PERL_UQUAD_MAX|5.003070||p +PERL_UQUAD_MIN|5.003070||p PERL_USE_GCC_BRACE_GROUPS|5.009004||p -PERL_USHORT_MAX|5.004000||p -PERL_USHORT_MIN|5.004000||p +PERL_USHORT_MAX|5.003070||p +PERL_USHORT_MIN|5.003070||p PERL_VERSION|5.006000||p PL_DBsignal|5.005000||p PL_DBsingle|||pn PL_DBsub|||pn PL_DBtrace|||pn PL_Sv|5.005000||p +PL_bufend|5.024000||p +PL_bufptr|5.024000||p +PL_check||5.006000| PL_compiling|5.004050||p -PL_copline|5.009005||p +PL_comppad_name||5.017004| +PL_comppad||5.008001| +PL_copline|5.024000||p PL_curcop|5.004050||p +PL_curpad||5.005000| PL_curstash|5.004050||p PL_debstash|5.004050||p PL_defgv|5.004050||p @@ -632,20 +710,31 @@ PL_diehook|5.004050||p PL_dirty|5.004050||p PL_dowarn|||pn PL_errgv|5.004050||p -PL_expect|5.009005||p +PL_error_count|5.024000||p +PL_expect|5.024000||p PL_hexdigit|5.005000||p PL_hints|5.005000||p +PL_in_my_stash|5.024000||p +PL_in_my|5.024000||p +PL_keyword_plugin||5.011002| PL_last_in_gv|||n PL_laststatval|5.005000||p +PL_lex_state|5.024000||p +PL_lex_stuff|5.024000||p +PL_linestr|5.024000||p PL_modglobal||5.005000|n PL_na|5.004050||pn PL_no_modify|5.006000||p -PL_ofs_sv|||n +PL_ofsgv|||n +PL_opfreehook||5.011000|n +PL_parser|5.009005||p +PL_peepp||5.007003|n PL_perl_destruct_level|5.004050||p PL_perldb|5.004050||p PL_ppaddr|5.006000||p -PL_rsfp_filters|5.004050||p -PL_rsfp|5.004050||p +PL_rpeepp||5.013005|n +PL_rsfp_filters|5.024000||p +PL_rsfp|5.024000||p PL_rs|||n PL_signals|5.008001||p PL_stack_base|5.004050||p @@ -658,7 +747,8 @@ PL_sv_undef|5.004050||pn PL_sv_yes|5.004050||pn PL_tainted|5.004050||p PL_tainting|5.004050||p -POP_MULTICALL||5.009005| +PL_tokenbuf|5.024000||p +POP_MULTICALL||5.024000| POPi|||n POPl|||n POPn|||n @@ -666,13 +756,16 @@ POPpbytex||5.007001|n POPpx||5.005030|n POPp|||n POPs|||n +POPul||5.006000|n +POPu||5.004000|n PTR2IV|5.006000||p PTR2NV|5.006000||p PTR2UV|5.006000||p +PTR2nat|5.009003||p PTR2ul|5.007001||p PTRV|5.006000||p PUSHMARK||| -PUSH_MULTICALL||5.009005| +PUSH_MULTICALL||5.024000| PUSHi||| PUSHmortal|5.009002||p PUSHn||| @@ -680,6 +773,29 @@ PUSHp||| PUSHs||| PUSHu|5.004000||p PUTBACK||| +PadARRAY||5.024000| +PadMAX||5.024000| +PadlistARRAY||5.024000| +PadlistMAX||5.024000| +PadlistNAMESARRAY||5.024000| +PadlistNAMESMAX||5.024000| +PadlistNAMES||5.024000| +PadlistREFCNT||5.017004| +PadnameIsOUR||| +PadnameIsSTATE||| +PadnameLEN||5.024000| +PadnameOURSTASH||| +PadnameOUTER||| +PadnamePV||5.024000| +PadnameREFCNT_dec||5.024000| +PadnameREFCNT||5.024000| +PadnameSV||5.024000| +PadnameTYPE||| +PadnameUTF8||5.021007| +PadnamelistARRAY||5.024000| +PadnamelistMAX||5.024000| +PadnamelistREFCNT_dec||5.024000| +PadnamelistREFCNT||5.024000| PerlIO_clearerr||5.007003| PerlIO_close||5.007003| PerlIO_context_layers||5.009004| @@ -693,6 +809,8 @@ PerlIO_get_bufsiz||5.007003| PerlIO_get_cnt||5.007003| PerlIO_get_ptr||5.007003| PerlIO_read||5.007003| +PerlIO_restore_errno||| +PerlIO_save_errno||| PerlIO_seek||5.007003| PerlIO_set_cnt||5.007003| PerlIO_set_ptrcnt||5.007003| @@ -708,6 +826,8 @@ PoisonFree|5.009004||p PoisonNew|5.009004||p PoisonWith|5.009004||p Poison|5.008000||p +READ_XDIGIT||5.017006| +RESTORE_LC_NUMERIC||5.024000| RETVAL|||n Renewc||| Renew||| @@ -722,6 +842,8 @@ START_EXTERN_C|5.005000||p START_MY_CXT|5.007003||p STMT_END|||p STMT_START|||p +STORE_LC_NUMERIC_FORCE_TO_UNDERLYING||5.024000| +STORE_LC_NUMERIC_SET_TO_NEEDED||5.024000| STR_WITH_LEN|5.009003||p ST||| SV_CONST_RETURN|5.009003||p @@ -734,17 +856,29 @@ SV_MUTABLE_RETURN|5.009003||p SV_NOSTEAL|5.009002||p SV_SMAGIC|5.009003||p SV_UTF8_NO_ENCODING|5.008001||p +SVfARG|5.009005||p +SVf_UTF8|5.006000||p SVf|5.006000||p +SVt_INVLIST||5.019002| SVt_IV||| +SVt_NULL||| SVt_NV||| SVt_PVAV||| SVt_PVCV||| +SVt_PVFM||| +SVt_PVGV||| SVt_PVHV||| +SVt_PVIO||| +SVt_PVIV||| +SVt_PVLV||| SVt_PVMG||| +SVt_PVNV||| SVt_PV||| +SVt_REGEXP||5.011000| Safefree||| Slab_Alloc||| Slab_Free||| +Slab_to_ro||| Slab_to_rw||| StructCopy||| SvCUR_set||| @@ -781,10 +915,12 @@ SvNOK_on||| SvNOKp||| SvNOK||| SvNVX||| +SvNV_nomg||5.013002| SvNV_set||| SvNVx||| SvNV||| SvOK||| +SvOOK_offset||5.011000| SvOOK||| SvPOK_off||| SvPOK_only_UTF8||5.006000| @@ -813,7 +949,9 @@ SvPV_nolen_const|5.009003||p SvPV_nolen|5.006000||p SvPV_nomg_const_nolen|5.009003||p SvPV_nomg_const|5.009003||p +SvPV_nomg_nolen|5.013007||p SvPV_nomg|5.007002||p +SvPV_renew|5.009003||p SvPV_set||| SvPVbyte_force||5.009002| SvPVbyte_nolen||5.006000| @@ -827,6 +965,7 @@ SvPVutf8x||5.006000| SvPVutf8||5.006000| SvPVx||| SvPV||| +SvREFCNT_dec_NN||5.017007| SvREFCNT_dec||| SvREFCNT_inc_NN|5.009004||p SvREFCNT_inc_simple_NN|5.009004||p @@ -842,8 +981,8 @@ SvROK_on||| SvROK||| SvRV_set|5.009003||p SvRV||| -SvRXOK||5.009005| -SvRX||5.009005| +SvRXOK|5.009005||p +SvRX|5.009005||p SvSETMAGIC||| SvSHARED_HASH|5.009003||p SvSHARE||5.007003| @@ -857,6 +996,8 @@ SvTAINTED_off||5.004000| SvTAINTED_on||5.004000| SvTAINTED||5.004000| SvTAINT||| +SvTHINKFIRST||| +SvTRUE_nomg||5.013006| SvTRUE||| SvTYPE||| SvUNLOCK||5.007003| @@ -875,7 +1016,9 @@ SvVOK||5.008001| SvVSTRING_mg|5.009004||p THIS|||n UNDERBAR|5.009002||p +UTF8SKIP||5.006000| UTF8_MAXBYTES|5.009002||p +UVCHR_SKIP||5.022000| UVSIZE|5.006000||p UVTYPE|5.006000||p UVXf|5.007001||p @@ -884,7 +1027,7 @@ UVuf|5.006000||p UVxf|5.006000||p WARN_ALL|5.006000||p WARN_AMBIGUOUS|5.006000||p -WARN_ASSERTIONS|5.009005||p +WARN_ASSERTIONS|5.024000||p WARN_BAREWORD|5.006000||p WARN_CLOSED|5.006000||p WARN_CLOSURE|5.006000||p @@ -929,6 +1072,7 @@ WARN_UNPACK|5.006000||p WARN_UNTIE|5.006000||p WARN_UTF8|5.006000||p WARN_VOID|5.006000||p +WIDEST_UTYPE|5.015004||p XCPT_CATCH|5.009002||p XCPT_RETHROW|5.009002||p XCPT_TRY_END|5.009002||p @@ -939,6 +1083,7 @@ XPUSHn||| XPUSHp||| XPUSHs||| XPUSHu|5.004000||p +XSPROTO|5.010000||p XSRETURN_EMPTY||| XSRETURN_IV||| XSRETURN_NO||| @@ -955,37 +1100,108 @@ XST_mPV||| XST_mUNDEF||| XST_mUV|5.008001||p XST_mYES||| -XS_VERSION_BOOTCHECK||| +XS_APIVERSION_BOOTCHECK||5.024000| +XS_EXTERNAL||5.024000| +XS_INTERNAL||5.024000| +XS_VERSION_BOOTCHECK||5.024000| XS_VERSION||| XSprePUSH|5.006000||p XS||| +XopDISABLE||5.024000| +XopENABLE||5.024000| +XopENTRYCUSTOM||5.024000| +XopENTRY_set||5.024000| +XopENTRY||5.024000| +XopFLAGS||5.013007| ZeroD|5.009002||p Zero||| _aMY_CXT|5.007003||p +_add_range_to_invlist||| +_append_range_to_invlist||| +_core_swash_init||| +_get_encoding||| +_get_regclass_nonbitmap_data||| +_get_swash_invlist||| +_invlistEQ||| +_invlist_array_init|||n +_invlist_contains_cp|||n +_invlist_dump||| +_invlist_intersection_maybe_complement_2nd||| +_invlist_intersection||| +_invlist_invert||| +_invlist_len|||n +_invlist_populate_swatch|||n +_invlist_search|||n +_invlist_subtract||| +_invlist_union_maybe_complement_2nd||| +_invlist_union||| +_is_cur_LC_category_utf8||| +_is_in_locale_category||5.021001| +_is_uni_FOO||5.017008| +_is_uni_perl_idcont||5.017008| +_is_uni_perl_idstart||5.017007| +_is_utf8_FOO||5.017008| +_is_utf8_char_slow||5.021001|n +_is_utf8_idcont||5.021001| +_is_utf8_idstart||5.021001| +_is_utf8_mark||5.017008| +_is_utf8_perl_idcont||5.017008| +_is_utf8_perl_idstart||5.017007| +_is_utf8_xidcont||5.021001| +_is_utf8_xidstart||5.021001| +_load_PL_utf8_foldclosures||| +_make_exactf_invlist||| +_new_invlist_C_array||| +_new_invlist||| _pMY_CXT|5.007003||p +_setlocale_debug_string|||n +_setup_canned_invlist||| +_swash_inversion_hash||| +_swash_to_invlist||| +_to_fold_latin1||| +_to_uni_fold_flags||5.014000| +_to_upper_title_latin1||| +_to_utf8_case||| +_to_utf8_fold_flags||5.019009| +_to_utf8_lower_flags||5.019009| +_to_utf8_title_flags||5.019009| +_to_utf8_upper_flags||5.019009| +_warn_problematic_locale|||n aMY_CXT_|5.007003||p aMY_CXT|5.007003||p -aTHXR_|5.009005||p -aTHXR|5.009005||p +aTHXR_|5.024000||p +aTHXR|5.024000||p aTHX_|5.006000||p aTHX|5.006000||p +add_above_Latin1_folds||| +add_cp_to_invlist||| add_data|||n -addmad||| +add_multi_match||| +add_utf16_textfilter||| +adjust_size_and_find_bucket|||n +advance_one_LB||| +advance_one_SB||| +advance_one_WB||| +alloc_maybe_populate_EXACT||| +alloccopstash||| allocmy||| amagic_call||| amagic_cmp_locale||| amagic_cmp||| +amagic_deref_call||5.013007| amagic_i_ncmp||| +amagic_is_enabled||| amagic_ncmp||| +anonymise_cv_maybe||| any_dup||| ao||| -append_elem||| -append_list||| -append_madprops||| +append_utf8_from_native_byte||5.019004|n apply_attrs_my||| apply_attrs_string||5.006001| apply_attrs||| apply||| +assert_uft8_cache_coherent||| +assignment_type||| atfork_lock||5.007003|n atfork_unlock||5.007003|n av_arylen_p||5.009003| @@ -994,10 +1210,11 @@ av_create_and_push||5.009005| av_create_and_unshift_one||5.009005| av_delete||5.006000| av_exists||5.006000| +av_extend_guts||| av_extend||| -av_fake||| av_fetch||| av_fill||| +av_iter_p||5.011000| av_len||| av_make||| av_pop||| @@ -1005,109 +1222,146 @@ av_push||| av_reify||| av_shift||| av_store||| +av_tindex||5.017009| +av_top_index||5.017009| av_undef||| av_unshift||| ax|||n -bad_type||| +backup_one_LB||| +backup_one_SB||| +backup_one_WB||| +bad_type_gv||| +bad_type_pv||| bind_match||| -block_end||| +block_end||5.004000| block_gimme||5.004000| -block_start||| +block_start||5.004000| +blockhook_register||5.013003| boolSV|5.004000||p boot_core_PerlIO||| boot_core_UNIVERSAL||| boot_core_mro||| -boot_core_xsutils||| +bytes_cmp_utf8||5.013007| bytes_from_utf8||5.007001| -bytes_to_uni|||n bytes_to_utf8||5.006001| +cBOOL|5.013000||p call_argv|5.006000||p call_atexit||5.006000| call_list||5.004000| call_method|5.006000||p call_pv|5.006000||p call_sv|5.006000||p +caller_cx|5.013005|5.006000|p calloc||5.007002|n cando||| -cast_i32||5.006000| -cast_iv||5.006000| -cast_ulong||5.006000| -cast_uv||5.006000| +cast_i32||5.006000|n +cast_iv||5.006000|n +cast_ulong||5.006000|n +cast_uv||5.006000|n +check_locale_boundary_crossing||| check_type_and_open||| check_uni||| +check_utf8_print||| checkcomma||| -checkposixcc||| ckWARN|5.006000||p -ck_anoncode||| -ck_bitop||| -ck_concat||| -ck_defined||| -ck_delete||| -ck_die||| -ck_eof||| -ck_eval||| -ck_exec||| -ck_exists||| -ck_exit||| -ck_ftst||| -ck_fun||| -ck_glob||| -ck_grep||| -ck_index||| -ck_join||| -ck_lengthconst||| -ck_lfun||| -ck_listiob||| -ck_match||| -ck_method||| -ck_null||| -ck_open||| -ck_readline||| -ck_repeat||| -ck_require||| -ck_retarget||| -ck_return||| -ck_rfun||| -ck_rvconst||| -ck_sassign||| -ck_select||| -ck_shift||| -ck_sort||| -ck_spair||| -ck_split||| -ck_subr||| -ck_substr||| -ck_svconst||| -ck_trunc||| -ck_unpack||| +ck_entersub_args_core||| +ck_entersub_args_list||5.013006| +ck_entersub_args_proto_or_list||5.013006| +ck_entersub_args_proto||5.013006| +ck_warner_d||5.011001|v +ck_warner||5.011001|v +ckwarn_common||| ckwarn_d||5.009003| ckwarn||5.009003| -cl_and|||n -cl_anything|||n -cl_init_zero|||n -cl_init|||n -cl_is_anything|||n -cl_or|||n +clear_defarray||5.023008| clear_placeholders||| +clear_special_blocks||| +clone_params_del|||n +clone_params_new|||n closest_cop||| -convert||| +cntrl_to_mnemonic|||n +compute_EXACTish|||n +construct_ahocorasick_from_trie||| +cop_fetch_label||5.015001| cop_free||| +cop_hints_2hv||5.013007| +cop_hints_fetch_pvn||5.013007| +cop_hints_fetch_pvs||5.013007| +cop_hints_fetch_pv||5.013007| +cop_hints_fetch_sv||5.013007| +cop_store_label||5.015001| +cophh_2hv||5.013007| +cophh_copy||5.013007| +cophh_delete_pvn||5.013007| +cophh_delete_pvs||5.013007| +cophh_delete_pv||5.013007| +cophh_delete_sv||5.013007| +cophh_fetch_pvn||5.013007| +cophh_fetch_pvs||5.013007| +cophh_fetch_pv||5.013007| +cophh_fetch_sv||5.013007| +cophh_free||5.013007| +cophh_new_empty||5.024000| +cophh_store_pvn||5.013007| +cophh_store_pvs||5.013007| +cophh_store_pv||5.013007| +cophh_store_sv||5.013007| +core_prototype||| +coresub_op||| cr_textfilter||| create_eval_scope||| +croak_memory_wrap||5.019003|n +croak_no_mem|||n +croak_no_modify||5.013003|n croak_nocontext|||vn +croak_popstack|||n +croak_sv||5.013001| +croak_xs_usage||5.010001|n croak|||v csighandler||5.009003|n -curmad||| +current_re_engine||| +curse||| custom_op_desc||5.007003| +custom_op_get_field||| custom_op_name||5.007003| -cv_ckproto_len||| -cv_ckproto||| +custom_op_register||5.013007| +custom_op_xop||5.013007| +cv_ckproto_len_flags||| +cv_clone_into||| cv_clone||| -cv_const_sv||5.004000| +cv_const_sv_or_av|||n +cv_const_sv||5.003070|n cv_dump||| +cv_forget_slab||| +cv_get_call_checker||5.013006| +cv_name||5.021005| +cv_set_call_checker_flags||5.021004| +cv_set_call_checker||5.013006| +cv_undef_flags||| cv_undef||| +cvgv_from_hek||| +cvgv_set||| +cvstash_set||| cx_dump||5.005000| cx_dup||| +cx_popblock||5.023008| +cx_popeval||5.023008| +cx_popformat||5.023008| +cx_popgiven||5.023008| +cx_poploop||5.023008| +cx_popsub_args||5.023008| +cx_popsub_common||5.023008| +cx_popsub||5.023008| +cx_popwhen||5.023008| +cx_pushblock||5.023008| +cx_pusheval||5.023008| +cx_pushformat||5.023008| +cx_pushgiven||5.023008| +cx_pushloop_for||5.023008| +cx_pushloop_plain||5.023008| +cx_pushsub||5.023008| +cx_pushwhen||5.023008| +cx_topblock||5.023008| cxinc||| dAXMARK|5.009003||p dAX|5.007002||p @@ -1120,7 +1374,7 @@ dNOOP|5.006000||p dORIGMARK||| dSP||| dTHR|5.004050||p -dTHXR|5.009005||p +dTHXR|5.024000||p dTHXa|5.006000||p dTHXoa|5.006000||p dTHX|5.006000||p @@ -1141,15 +1395,16 @@ debstackptrs||5.007003| debstack||5.007003| debug_start_match||| deb||5.007003|v +defelem_target||| del_sv||| delete_eval_scope||| -delimcpy||5.004000| -deprecate_old||| -deprecate||| +delimcpy||5.004000|n +deprecate_commaless_var_list||| despatch_signals||5.007001| destroy_matcher||| die_nocontext|||vn -die_where||| +die_sv||5.013001| +die_unwind||| die|||v dirp_dup||| div128||| @@ -1159,8 +1414,8 @@ do_aexec||| do_aspawn||| do_binmode||5.004050| do_chomp||| -do_chop||| do_close||| +do_delete_local||| do_dump_pad||| do_eof||| do_exec3||| @@ -1172,19 +1427,18 @@ do_hv_dump||5.006000| do_ipcctl||| do_ipcget||| do_join||| -do_kv||| do_magic_dump||5.006000| do_msgrcv||| do_msgsnd||| +do_ncmp||| do_oddball||| do_op_dump||5.006000| -do_op_xmldump||| +do_open6||| do_open9||5.006000| +do_open_raw||| do_openn||5.007001| -do_open||5.004000| -do_pipe||| +do_open||5.003070| do_pmop_dump||5.006000| -do_pmop_xmldump||| do_print||| do_readline||| do_seek||| @@ -1207,9 +1461,8 @@ do_trans||| do_vecget||| do_vecset||| do_vop||| -docatch_body||| docatch||| -doeval||| +doeval_compile||| dofile||| dofindlabel||| doform||| @@ -1218,23 +1471,31 @@ dooneliner||| doopen_pm||| doparseform||| dopoptoeval||| -dopoptogiven||| +dopoptogivenfor||| dopoptolabel||| dopoptoloop||| dopoptosub_at||| -dopoptosub||| dopoptowhen||| doref||5.009003| dounwind||| dowantarray||| +drand48_init_r|||n +drand48_r|||n +dtrace_probe_call||| +dtrace_probe_load||| +dtrace_probe_op||| +dtrace_probe_phase||| +dump_all_perl||| dump_all||5.006000| +dump_c_backtrace||| dump_eval||5.006000| dump_exec_pos||| -dump_fds||| dump_form||5.006000| dump_indent||5.006000|v dump_mstats||| +dump_packsubs_perl||| dump_packsubs||5.006000| +dump_sub_perl||| dump_sub||5.006000| dump_sv_child||| dump_trie_interim_list||| @@ -1243,56 +1504,79 @@ dump_trie||| dump_vindent||5.006000| dumpuntil||| dup_attrlist||| +edit_distance|||n emulate_cop_io||| -emulate_eaccess||| eval_pv|5.006000||p eval_sv|5.006000||p exec_failed||| expect_number||| fbm_compile||5.005000| fbm_instr||5.005000| -fd_on_nosuid_fs||| feature_is_enabled||| filter_add||| filter_del||| filter_gets||| filter_read||| +finalize_optree||| +finalize_op||| find_and_forget_pmops||| find_array_subscript||| find_beginning||| find_byclass||| +find_default_stash||| find_hash_subscript||| find_in_my_stash||| +find_lexical_cv||| +find_runcv_where||| find_runcv||5.008001| find_rundefsvoffset||5.009002| +find_rundefsv||5.013002| find_script||| find_uninit_var||| first_symbol|||n +fixup_errno_string||| +foldEQ_latin1||5.013008|n +foldEQ_locale||5.013002|n +foldEQ_utf8_flags||5.013010| +foldEQ_utf8||5.013002| +foldEQ||5.013002|n fold_constants||| forbid_setid||| +force_ident_maybe_lex||| force_ident||| force_list||| force_next||| +force_strict_version||| force_version||| force_word||| forget_pmop||| form_nocontext|||vn +form_short_octal_warning||| form||5.004000|v fp_dup||| fprintf_nocontext|||vn +free_c_backtrace||| free_global_struct||| free_tied_hv_pool||| free_tmps||| gen_constant_list||| -get_arena||| +get_ANYOF_cp_list_for_ssc||| +get_and_check_backslash_N_name||| +get_aux_mg||| get_av|5.006000||p +get_c_backtrace_dump||| +get_c_backtrace||| get_context||5.006000|n -get_cvn_flags||5.009005| +get_cvn_flags||| +get_cvs|5.011000||p get_cv|5.006000||p get_db_sub||| get_debug_opts||| get_hash_seed||| get_hv|5.006000||p +get_invlist_iter_addr|||n +get_invlist_offset_addr|||n +get_invlist_previous_index_addr|||n get_mstats||| get_no_modify||| get_num||| @@ -1306,14 +1590,19 @@ get_vtbl||5.005030| getcwd_sv||5.007002| getenv_len||| glob_2number||| -glob_2pv||| glob_assign_glob||| -glob_assign_ref||| gp_dup||| gp_free||| gp_ref||| +grok_atoUV|||n grok_bin|5.007003||p +grok_bslash_N||| +grok_bslash_c||| +grok_bslash_o||| +grok_bslash_x||| grok_hex|5.007003||p +grok_infnan||5.021004| +grok_number_flags||5.021002| grok_number|5.007002||p grok_numeric_radix|5.007002||p grok_oct|5.007003||p @@ -1322,91 +1611,129 @@ gv_AVadd||| gv_HVadd||| gv_IOadd||| gv_SVadd||| +gv_add_by_type||5.011000| gv_autoload4||5.004000| +gv_autoload_pvn||5.015004| +gv_autoload_pv||5.015004| +gv_autoload_sv||5.015004| gv_check||| gv_const_sv||5.009003| gv_dump||5.006000| -gv_efullname3||5.004000| +gv_efullname3||5.003070| gv_efullname4||5.006001| gv_efullname||| -gv_ename||| gv_fetchfile_flags||5.009005| gv_fetchfile||| gv_fetchmeth_autoload||5.007003| +gv_fetchmeth_internal||| +gv_fetchmeth_pv_autoload||5.015004| +gv_fetchmeth_pvn_autoload||5.015004| +gv_fetchmeth_pvn||5.015004| +gv_fetchmeth_pv||5.015004| +gv_fetchmeth_sv_autoload||5.015004| +gv_fetchmeth_sv||5.015004| gv_fetchmethod_autoload||5.004000| +gv_fetchmethod_pv_flags||5.015004| +gv_fetchmethod_pvn_flags||5.015004| +gv_fetchmethod_sv_flags||5.015004| gv_fetchmethod||| gv_fetchmeth||| -gv_fetchpvn_flags||5.009002| +gv_fetchpvn_flags|5.009002||p +gv_fetchpvs|5.009004||p gv_fetchpv||| -gv_fetchsv||5.009002| -gv_fullname3||5.004000| +gv_fetchsv||| +gv_fullname3||5.003070| gv_fullname4||5.006001| gv_fullname||| gv_handler||5.007001| +gv_init_pvn||| +gv_init_pv||| +gv_init_svtype||| gv_init_sv||| gv_init||| +gv_is_in_main||| +gv_magicalize_isa||| +gv_magicalize||| gv_name_set||5.009004| -gv_stashpvn|5.004000||p -gv_stashpvs||5.009003| +gv_override||| +gv_setref||| +gv_stashpvn_internal||| +gv_stashpvn|5.003070||p +gv_stashpvs|5.009003||p gv_stashpv||| +gv_stashsvpvn_cached||| gv_stashsv||| +gv_try_downgrade||| +handle_named_backref||| +handle_possible_posix||| +handle_regex_sets||| he_dup||| hek_dup||| +hfree_next_entry||| hfreeentries||| hsplit||| -hv_assert||5.009005| -hv_auxinit|||n +hv_assert||| +hv_auxinit_internal|||n +hv_auxinit||| hv_backreferences_p||| hv_clear_placeholders||5.009001| hv_clear||| -hv_copy_hints_hv||| +hv_common_key_len||5.010000| +hv_common||5.010000| +hv_copy_hints_hv||5.009004| hv_delayfree_ent||5.004000| hv_delete_common||| -hv_delete_ent||5.004000| +hv_delete_ent||5.003070| hv_delete||| hv_eiter_p||5.009003| hv_eiter_set||5.009003| -hv_exists_ent||5.004000| +hv_ename_add||| +hv_ename_delete||| +hv_exists_ent||5.003070| hv_exists||| -hv_fetch_common||| -hv_fetch_ent||5.004000| +hv_fetch_ent||5.003070| hv_fetchs|5.009003||p hv_fetch||| +hv_fill||5.013002| +hv_free_ent_ret||| hv_free_ent||5.004000| hv_iterinit||| -hv_iterkeysv||5.004000| +hv_iterkeysv||5.003070| hv_iterkey||| hv_iternext_flags||5.008000| hv_iternextsv||| hv_iternext||| hv_iterval||| hv_kill_backrefs||| -hv_ksplit||5.004000| +hv_ksplit||5.003070| hv_magic_check|||n -hv_magic_uvar_xkey||| hv_magic||| hv_name_set||5.009003| hv_notallowed||| hv_placeholders_get||5.009003| -hv_placeholders_p||5.009003| +hv_placeholders_p||| hv_placeholders_set||5.009003| +hv_rand_set||5.018000| hv_riter_p||5.009003| hv_riter_set||5.009003| hv_scalar||5.009001| -hv_store_ent||5.004000| +hv_store_ent||5.003070| hv_store_flags||5.008000| hv_stores|5.009004||p hv_store||| +hv_undef_flags||| hv_undef||| ibcmp_locale||5.004000| ibcmp_utf8||5.007003| ibcmp||| -incl_perldb||| incline||| incpush_if_exists||| +incpush_use_sep||| incpush||| ingroup||| init_argv_symbols||| +init_constants||| +init_dbargs||| init_debugger||| init_global_struct||| init_i18nl10n||5.006000| @@ -1419,32 +1746,75 @@ init_postdump_symbols||| init_predump_symbols||| init_stacks||5.005000| init_tm||5.007002| -instr||| -intro_my||| +inplace_aassign||| +instr|||n +intro_my||5.004000| intuit_method||| intuit_more||| invert||| +invlist_array|||n +invlist_clear||| +invlist_clone||| +invlist_contents||| +invlist_extend||| +invlist_highest|||n +invlist_is_iterating|||n +invlist_iterfinish|||n +invlist_iterinit|||n +invlist_iternext|||n +invlist_max|||n +invlist_previous_index|||n +invlist_replace_list_destroys_src||| +invlist_set_len||| +invlist_set_previous_index|||n +invlist_trim|||n +invoke_exception_hook||| io_close||| -isALNUM||| +isALNUMC|5.006000||p +isALNUM_lazy||5.021001| +isALPHANUMERIC||5.017008| isALPHA||| +isASCII|5.006000||p +isBLANK|5.006001||p +isCNTRL|5.006000||p isDIGIT||| +isFOO_lc||| +isFOO_utf8_lc||| +isGCB|||n +isGRAPH|5.006000||p +isIDCONT||5.017008| +isIDFIRST_lazy||5.021001| +isIDFIRST||| +isLB||| isLOWER||| +isOCTAL||5.013005| +isPRINT|5.004000||p +isPSXSPC|5.006001||p +isPUNCT|5.006000||p +isSB||| isSPACE||| isUPPER||| +isUTF8_CHAR||5.021001| +isWB||| +isWORDCHAR||5.013006| +isXDIGIT|5.006000||p is_an_int||| -is_gv_magical_sv||| -is_gv_magical||| +is_ascii_string||5.011000| is_handle_constructor|||n -is_list_assignment||| +is_invariant_string||5.021007|n is_lvalue_sub||5.007001| +is_safe_syscall||5.019004| +is_ssc_worth_it|||n is_uni_alnum_lc||5.006000| -is_uni_alnumc_lc||5.006000| -is_uni_alnumc||5.006000| +is_uni_alnumc_lc||5.017007| +is_uni_alnumc||5.017007| is_uni_alnum||5.006000| is_uni_alpha_lc||5.006000| is_uni_alpha||5.006000| is_uni_ascii_lc||5.006000| is_uni_ascii||5.006000| +is_uni_blank_lc||5.017002| +is_uni_blank||5.017002| is_uni_cntrl_lc||5.006000| is_uni_cntrl||5.006000| is_uni_digit_lc||5.006000| @@ -1465,12 +1835,13 @@ is_uni_upper_lc||5.006000| is_uni_upper||5.006000| is_uni_xdigit_lc||5.006000| is_uni_xdigit||5.006000| -is_utf8_alnumc||5.006000| +is_utf8_alnumc||5.017007| is_utf8_alnum||5.006000| is_utf8_alpha||5.006000| is_utf8_ascii||5.006000| -is_utf8_char_slow|||n -is_utf8_char||5.006000| +is_utf8_blank||5.017002| +is_utf8_char_buf||5.015008|n +is_utf8_char||5.006000|n is_utf8_cntrl||5.006000| is_utf8_common||| is_utf8_digit||5.006000| @@ -1479,24 +1850,44 @@ is_utf8_idcont||5.008000| is_utf8_idfirst||5.006000| is_utf8_lower||5.006000| is_utf8_mark||5.006000| +is_utf8_perl_space||5.011001| +is_utf8_perl_word||5.011001| +is_utf8_posix_digit||5.011001| is_utf8_print||5.006000| is_utf8_punct||5.006000| is_utf8_space||5.006000| -is_utf8_string_loclen||5.009003| -is_utf8_string_loc||5.008001| -is_utf8_string||5.006001| +is_utf8_string_loclen||5.009003|n +is_utf8_string_loc||5.008001|n +is_utf8_string||5.006001|n is_utf8_upper||5.006000| is_utf8_xdigit||5.006000| +is_utf8_xidcont||5.013010| +is_utf8_xidfirst||5.013010| isa_lookup||| +isinfnansv||| +isinfnan||5.021004|n items|||n ix|||n jmaybe||| join_exact||| +keyword_plugin_standard||| keyword||| +leave_adjust_stacks||5.023008| leave_scope||| -lex_end||| -lex_start||| -linklist||| +lex_bufutf8||5.011002| +lex_discard_to||5.011002| +lex_grow_linestr||5.011002| +lex_next_chunk||5.011002| +lex_peek_unichar||5.011002| +lex_read_space||5.011002| +lex_read_to||5.011002| +lex_read_unichar||5.011002| +lex_start||5.009005| +lex_stuff_pvn||5.011002| +lex_stuff_pvs||5.013005| +lex_stuff_pv||5.013006| +lex_stuff_sv||5.011002| +lex_unstuff||5.011002| listkids||| list||| load_module_nocontext|||vn @@ -1508,25 +1899,28 @@ lop||| mPUSHi|5.009002||p mPUSHn|5.009002||p mPUSHp|5.009002||p +mPUSHs|5.010001||p mPUSHu|5.009002||p mXPUSHi|5.009002||p mXPUSHn|5.009002||p mXPUSHp|5.009002||p +mXPUSHs|5.010001||p mXPUSHu|5.009002||p -mad_free||| -madlex||| -madparse||| magic_clear_all_env||| +magic_cleararylen_p||| magic_clearenv||| +magic_clearhints||| magic_clearhint||| +magic_clearisa||| magic_clearpack||| magic_clearsig||| +magic_copycallchecker||| magic_dump||5.006000| magic_existspack||| magic_freearylen_p||| magic_freeovrld||| -magic_freeregexp||| magic_getarylen||| +magic_getdebugvar||| magic_getdefelem||| magic_getnkeys||| magic_getpack||| @@ -1538,8 +1932,8 @@ magic_getuvar||| magic_getvec||| magic_get||| magic_killbackrefs||| -magic_len||| -magic_methcall||| +magic_methcall1||| +magic_methcall|||v magic_methpack||| magic_nextpack||| magic_regdata_cnt||| @@ -1547,17 +1941,15 @@ magic_regdatum_get||| magic_regdatum_set||| magic_scalarpack||| magic_set_all_env||| -magic_setamagic||| magic_setarylen||| -magic_setbm||| magic_setcollxfrm||| magic_setdbline||| +magic_setdebugvar||| magic_setdefelem||| magic_setenv||| -magic_setfm||| -magic_setglob||| magic_sethint||| magic_setisa||| +magic_setlvref||| magic_setmglob||| magic_setnkeys||| magic_setpack||| @@ -1572,133 +1964,131 @@ magic_setvec||| magic_set||| magic_sizepack||| magic_wipepack||| -magicname||| make_matcher||| -make_trie_failtable||| make_trie||| +malloc_good_size|||n malloced_size|||n malloc||5.007002|n -markstack_grow||| +markstack_grow||5.021001| matcher_matches_sv||| +maybe_multimagic_gv||| +mayberelocate||| measure_struct||| +memEQs|5.009005||p memEQ|5.004000||p +memNEs|5.009005||p memNE|5.004000||p mem_collxfrm||| +mem_log_alloc|||n +mem_log_common|||n +mem_log_free|||n +mem_log_realloc|||n mess_alloc||| mess_nocontext|||vn +mess_sv||5.013001| mess||5.006000|v -method_common||| mfree||5.007002|n mg_clear||| mg_copy||| mg_dup||| -mg_find||| +mg_find_mglob||| +mg_findext|5.013008||pn +mg_find|||n +mg_free_type||5.013006| mg_free||| mg_get||| mg_length||5.005000| mg_localize||| -mg_magical||| +mg_magical|||n mg_set||| mg_size||5.005000| -mini_mktime||5.007002| +mini_mktime||5.007002|n +minus_v||| missingterm||| mode_from_discipline||| modkids||| -mod||| more_bodies||| more_sv||| moreswitches||| -mro_get_linear_isa_c3||5.009005| -mro_get_linear_isa_dfs||5.009005| +move_proto_attr||| +mro_clean_isarev||| +mro_gather_and_rename||| +mro_get_from_name||5.010001| +mro_get_linear_isa_dfs||| mro_get_linear_isa||5.009005| +mro_get_private_data||5.010001| mro_isa_changed_in||| mro_meta_dup||| mro_meta_init||| mro_method_changed_in||5.009005| +mro_package_moved||| +mro_register||5.010001| +mro_set_mro||5.010001| +mro_set_private_data||5.010001| mul128||| mulexp10|||n +multideref_stringify||| my_atof2||5.007002| my_atof||5.006000| my_attrs||| -my_bcopy|||n -my_betoh16|||n -my_betoh32|||n -my_betoh64|||n -my_betohi|||n -my_betohl|||n -my_betohs|||n +my_bcopy||5.004050|n +my_bytes_to_utf8|||n my_bzero|||n my_chsize||| my_clearenv||| my_cxt_index||| my_cxt_init||| -my_dirfd||5.009005| +my_dirfd||5.009005|n my_exit_jump||| my_exit||| my_failure_exit||5.004000| my_fflush_all||5.006000| my_fork||5.007003|n -my_htobe16|||n -my_htobe32|||n -my_htobe64|||n -my_htobei|||n -my_htobel|||n -my_htobes|||n -my_htole16|||n -my_htole32|||n -my_htole64|||n -my_htolei|||n -my_htolel|||n -my_htoles|||n -my_htonl||| my_kid||| -my_letoh16|||n -my_letoh32|||n -my_letoh64|||n -my_letohi|||n -my_letohl|||n -my_letohs|||n -my_lstat||| -my_memcmp||5.004000|n +my_lstat_flags||| +my_lstat||5.024000| +my_memcmp|||n my_memset|||n -my_ntohl||| -my_pclose||5.004000| +my_pclose||5.003070| my_popen_list||5.007001| -my_popen||5.004000| +my_popen||5.003070| my_setenv||| +my_setlocale||| my_snprintf|5.009004||pvn my_socketpair||5.007003|n -my_sprintf||5.009003|vn -my_stat||| +my_sprintf|5.009003||pvn +my_stat_flags||| +my_stat||5.024000| +my_strerror||5.021001| my_strftime||5.007002| my_strlcat|5.009004||pn my_strlcpy|5.009004||pn -my_swabn|||n -my_swap||| my_unexec||| my_vsnprintf||5.009004|n -my||| need_utf8|||n newANONATTRSUB||5.006000| newANONHASH||| newANONLIST||| newANONSUB||| newASSIGNOP||| +newATTRSUB_x||| newATTRSUB||5.006000| newAVREF||| newAV||| newBINOP||| newCONDOP||| +newCONSTSUB_flags||5.015006| newCONSTSUB|5.004050||p newCVREF||| -newDEFSVOP||| +newDEFSVOP||5.021006| newFORM||| -newFOROP||| +newFOROP||5.013007| newGIVENOP||5.009003| newGIVWHENOP||| newGP||| newGVOP||| newGVREF||| +newGVgen_flags||5.015004| newGVgen||| newHVREF||| newHVhv||5.005000| @@ -1708,11 +2098,15 @@ newLISTOP||| newLOGOP||| newLOOPEX||| newLOOPOP||| -newMADPROP||| -newMADsv||| -newMYSUB||| +newMETHOP_internal||| +newMETHOP_named||5.021005| +newMETHOP||5.021005| +newMYSUB||5.017004| newNULLLIST||| newOP||| +newPADNAMELIST||5.021007|n +newPADNAMEouter||5.021007|n +newPADNAMEpvn||5.021007|n newPADOP||| newPMOP||| newPROG||| @@ -1723,29 +2117,38 @@ newRV_noinc|5.004000||p newRV||| newSLICEOP||| newSTATEOP||| +newSTUB||| newSUB||| newSVOP||| newSVREF||| -newSV_type||5.009005| +newSV_type|5.009005||p +newSVavdefelem||| newSVhek||5.009003| newSViv||| newSVnv||| +newSVpadname||5.017004| +newSVpv_share||5.013006| newSVpvf_nocontext|||vn newSVpvf||5.004000|v +newSVpvn_flags|5.010001||p newSVpvn_share|5.007001||p +newSVpvn_utf8|5.010001||p newSVpvn|5.004050||p -newSVpvs_share||5.009003| +newSVpvs_flags|5.010001||p +newSVpvs_share|5.009003||p newSVpvs|5.009003||p newSVpv||| newSVrv||| newSVsv||| newSVuv|5.006000||p newSV||| -newTOKEN||| +newUNOP_AUX||5.021007| newUNOP||| newWHENOP||5.009003| -newWHILEOP||5.009003| +newWHILEOP||5.013007| +newXS_deffile||| newXS_flags||5.009004| +newXS_len_flags||| newXSproto||5.006000| newXS||5.006000| new_collate||5.006000| @@ -1760,31 +2163,49 @@ new_warnings_bitfield||| next_symbol||| nextargv||| nextchar||| -ninstr||| +ninstr|||n no_bareword_allowed||| no_fh_allowed||| no_op||| +noperl_die|||vn not_a_number||| +not_incrementable||| nothreadhook||5.008000| nuke_stacks||| num_overflow|||n -offer_nice_chunk||| oopsAV||| -oopsCV||| oopsHV||| +op_append_elem||5.013006| +op_append_list||5.013006| op_clear||| -op_const_sv||| +op_contextualize||5.013006| +op_convert_list||5.021006| op_dump||5.006000| op_free||| -op_getmad_weak||| -op_getmad||| +op_integerize||| +op_linklist||5.013006| +op_lvalue_flags||| +op_lvalue||5.013007| op_null||5.007002| +op_parent||5.021002|n +op_prepend_elem||5.013006| op_refcnt_dec||| op_refcnt_inc||| op_refcnt_lock||5.009002| op_refcnt_unlock||5.009002| -op_xmldump||| +op_relocate_sv||| +op_scope||5.013007| +op_sibling_splice||5.021002|n +op_std_init||| +op_unscope||| open_script||| +openn_cleanup||| +openn_setup||| +opmethod_stash||| +opslab_force_free||| +opslab_free_nopad||| +opslab_free||| +output_or_return_posix_warnings||| pMY_CXT_|5.007003||p pMY_CXT|5.007003||p pTHX_|5.006000||p @@ -1792,35 +2213,64 @@ pTHX|5.006000||p packWARN|5.007003||p pack_cat||5.007003| pack_rec||| +package_version||| package||| packlist||5.008001| -pad_add_anon||| -pad_add_name||| +pad_add_anon||5.008001| +pad_add_name_pvn||5.015001| +pad_add_name_pvs||5.015001| +pad_add_name_pv||5.015001| +pad_add_name_sv||5.015001| +pad_add_weakref||| +pad_alloc_name||| pad_alloc||| pad_block_start||| pad_check_dup||| -pad_compname_type||| +pad_compname_type||5.009003| pad_findlex||| -pad_findmy||| +pad_findmy_pvn||5.015001| +pad_findmy_pvs||5.015001| +pad_findmy_pv||5.015001| +pad_findmy_sv||5.015001| pad_fixup_inner_anons||| pad_free||| pad_leavemy||| -pad_new||| -pad_peg|||n +pad_new||5.008001| pad_push||| pad_reset||| pad_setsv||| -pad_sv||5.009005| +pad_sv||| pad_swipe||| -pad_tidy||| -pad_undef||| +pad_tidy||5.008001| +padlist_dup||| +padlist_store||| +padname_dup||| +padname_free||| +padnamelist_dup||| +padnamelist_fetch||5.021007|n +padnamelist_free||| +padnamelist_store||5.021007| +parse_arithexpr||5.013008| +parse_barestmt||5.013007| +parse_block||5.013007| parse_body||| +parse_fullexpr||5.013008| +parse_fullstmt||5.013005| +parse_gv_stash_name||| +parse_ident||| +parse_label||5.013007| +parse_listexpr||5.013008| +parse_lparen_question_flags||| +parse_stmtseq||5.013006| +parse_subsignature||| +parse_termexpr||5.013008| parse_unicode_opts||| parser_dup||| +parser_free_nexttoke_ops||| parser_free||| -path_is_absolute|||n +path_is_searchable|||n peep||| -pending_Slabs_to_ro||| +pending_ident||| perl_alloc_using|||n perl_alloc|||n perl_clone_using|||n @@ -1832,20 +2282,21 @@ perl_parse||5.006000|n perl_run|||n pidgone||| pm_description||| -pmflag||| pmop_dump||5.006000| -pmop_xmldump||| pmruntime||| pmtrans||| pop_scope||| +populate_ANYOF_from_invlist||| +populate_isa|||v pregcomp||5.009005| pregexec||| +pregfree2||5.011000| pregfree||| -prepend_elem||| -prepend_madprops||| +prescan_version||5.011004| printbuf||| printf_nocontext|||vn process_special_blocks||| +ptr_hash|||n ptr_table_clear||5.009005| ptr_table_fetch||5.009005| ptr_table_find|||n @@ -1854,34 +2305,51 @@ ptr_table_new||5.009005| ptr_table_split||5.009005| ptr_table_store||5.009005| push_scope||| -put_byte||| -pv_display||5.006000| -pv_escape||5.009004| -pv_pretty||5.009004| +put_charclass_bitmap_innards_common||| +put_charclass_bitmap_innards_invlist||| +put_charclass_bitmap_innards||| +put_code_point||| +put_range||| +pv_display|5.006000||p +pv_escape|5.009004||p +pv_pretty|5.009004||p pv_uni_display||5.007003| qerror||| qsortsvu||| +quadmath_format_needed|||n +quadmath_format_single|||n re_compile||5.009005| re_croak2||| -re_dup||| -re_intuit_start||5.009005| +re_dup_guts||| +re_exec_indentf|||v +re_indentf|||v +re_intuit_start||5.019001| re_intuit_string||5.006000| -readpipe_override||| +re_op_compile||| +re_printf|||v realloc||5.007002|n -reentrant_free||| -reentrant_init||| -reentrant_retry|||vn -reentrant_size||| +reentrant_free||5.024000| +reentrant_init||5.024000| +reentrant_retry||5.024000|vn +reentrant_size||5.024000| ref_array_or_hash||| refcounted_he_chain_2hv||| -refcounted_he_fetch||| +refcounted_he_fetch_pvn||| +refcounted_he_fetch_pvs||| +refcounted_he_fetch_pv||| +refcounted_he_fetch_sv||| refcounted_he_free||| -refcounted_he_new||| +refcounted_he_inc||| +refcounted_he_new_pvn||| +refcounted_he_new_pvs||| +refcounted_he_new_pv||| +refcounted_he_new_sv||| refcounted_he_value||| refkids||| refto||| -ref||5.009003| -reg_check_named_buff_matched||| +ref||5.024000| +reg2Lanode||| +reg_check_named_buff_matched|||n reg_named_buff_all||5.009005| reg_named_buff_exists||5.009005| reg_named_buff_fetch||5.009005| @@ -1890,7 +2358,6 @@ reg_named_buff_iter||| reg_named_buff_nextkey||5.009005| reg_named_buff_scalar||5.009005| reg_named_buff||| -reg_namedseq||| reg_node||| reg_numbered_buff_fetch||| reg_numbered_buff_length||| @@ -1898,8 +2365,7 @@ reg_numbered_buff_store||| reg_qr_package||| reg_recode||| reg_scan_name||| -reg_skipcomment||| -reg_stringify||5.009005| +reg_skipcomment|||n reg_temp_copy||| reganode||| regatom||| @@ -1910,8 +2376,10 @@ regcppop||| regcppush||| regcurly|||n regdump_extflags||| +regdump_intflags||| regdump||5.005000| regdupe_internal||| +regex_set_precedence|||n regexec_flags||5.005000| regfree_internal||5.009005| reghop3|||n @@ -1922,23 +2390,24 @@ reginitcolors||5.006000| reginsert||| regmatch||| regnext||5.005000| +regnode_guts||| regpiece||| -regpposixcc||| regprop||| regrepeat||| regtail_study||| regtail||| regtry||| -reguni||| -regwhite|||n reg||| -repeatcpy||| +repeatcpy|||n report_evil_fh||| +report_redefined_cv||| report_uninit||| +report_wrongway_fh||| require_pv||5.006000| require_tie_mod||| restore_magic||| -rninstr||| +rninstr|||n +rpeep||| rsignal_restore||| rsignal_save||| rsignal_state||5.004000| @@ -1947,6 +2416,7 @@ run_body||| run_user_filter||| runops_debug||5.005000| runops_standard||5.005000| +rv2cv_op_cv||5.013006| rvpv_dup||| rxres_free||| rxres_restore||| @@ -1959,6 +2429,8 @@ same_dirent||| save_I16||5.004000| save_I32||| save_I8||5.006000| +save_adelete||5.011000| +save_aelem_flags||5.011000| save_aelem||5.004050| save_alloc||5.006000| save_aptr||| @@ -1975,9 +2447,11 @@ save_generic_pvref||5.006001| save_generic_svref||5.005030| save_gp||5.004000| save_hash||| +save_hdelete||5.011000| save_hek_flags|||n +save_helem_flags||5.011000| save_helem||5.004050| -save_hints||5.005000| +save_hints||5.010001| save_hptr||| save_int||| save_item||| @@ -1985,28 +2459,36 @@ save_iv||5.005000| save_lines||| save_list||| save_long||| -save_magic||| +save_magic_flags||| save_mortalizesv||5.007001| save_nogv||| -save_op||| -save_padsv||5.007001| +save_op||5.005000| +save_padsv_and_mortalize||5.010001| save_pptr||| +save_pushi32ptr||5.010001| +save_pushptri32ptr||| +save_pushptrptr||5.010001| +save_pushptr||5.010001| save_re_context||5.006000| save_scalar_at||| save_scalar||| save_set_svflags||5.009000| save_shared_pvref||5.007003| save_sptr||| +save_strlen||| save_svref||| save_vptr||5.006000| savepvn||| savepvs||5.009003| savepv||| savesharedpvn||5.009005| +savesharedpvs||5.013006| savesharedpv||5.007003| +savesharedsvpv||5.013006| savestack_grow_cnt||5.008001| savestack_grow||| savesvpv||5.009002| +savetmps||5.023008| sawparens||| scalar_mod_type|||n scalarboolean||| @@ -2031,28 +2513,25 @@ scan_trans||| scan_version||5.009001| scan_vstring||5.009005| scan_word||| -scope||| -screaminstr||5.005000| +search_const||| seed||5.008001| sequence_num||| -sequence_tail||| -sequence||| +set_ANYOF_arg||| +set_caret_X||| set_context||5.006000|n -set_csh||| set_numeric_local||5.006000| set_numeric_radix||5.006000| set_numeric_standard||5.006000| +set_padlist|||n setdefout||| -setenv_getix||| share_hek_flags||| share_hek||5.004000| +should_warn_nl|||n si_dup||| sighandler|||n simplify_sort||| -skipspace0||| -skipspace1||| -skipspace2||| -skipspace||| +skip_to_be_ignored_text||| +skipspace_flags||| softref2xv||| sortcv_stacked||| sortcv_xsub||| @@ -2061,11 +2540,21 @@ sortsv_flags||5.009003| sortsv||5.007003| space_join_names_mortal||| ss_dup||| +ssc_add_range||| +ssc_and||| +ssc_anything||| +ssc_clear_locale|||n +ssc_cp_and||| +ssc_finalize||| +ssc_init||| +ssc_intersection||| +ssc_is_anything|||n +ssc_is_cp_posixl_init|||n +ssc_or||| +ssc_union||| stack_grow||| -start_force||| start_glob||| start_subparse||5.004000| -stashpv_hvname_match||5.009005| stdize_locale||| strEQ||| strGE||| @@ -2082,6 +2571,7 @@ sub_crush_depth||| sublex_done||| sublex_push||| sublex_start||| +sv_2bool_flags||5.013006| sv_2bool||| sv_2cv||| sv_2io||| @@ -2090,7 +2580,8 @@ sv_2iuv_non_preserve||| sv_2iv_flags||5.009001| sv_2iv||| sv_2mortal||| -sv_2nv||| +sv_2num||| +sv_2nv_flags||5.013001| sv_2pv_flags|5.007002||p sv_2pv_nolen|5.006000||p sv_2pvbyte_nolen|5.006000||p @@ -2102,10 +2593,14 @@ sv_2uv_flags||5.009001| sv_2uv|5.004000||p sv_add_arena||| sv_add_backref||| -sv_backoff||| +sv_backoff|||n sv_bless||| +sv_buf_to_ro||| +sv_buf_to_rw||| sv_cat_decode||5.008001| +sv_catpv_flags||5.013006| sv_catpv_mg|5.004050||p +sv_catpv_nomg||5.013006| sv_catpvf_mg_nocontext|||pvn sv_catpvf_mg|5.006000|5.004000|pv sv_catpvf_nocontext|||vn @@ -2114,29 +2609,47 @@ sv_catpvn_flags||5.007002| sv_catpvn_mg|5.004050||p sv_catpvn_nomg|5.007002||p sv_catpvn||| +sv_catpvs_flags||5.013006| +sv_catpvs_mg||5.013006| +sv_catpvs_nomg||5.013006| sv_catpvs|5.009003||p sv_catpv||| sv_catsv_flags||5.007002| sv_catsv_mg|5.004050||p sv_catsv_nomg|5.007002||p sv_catsv||| -sv_catxmlpvn||| -sv_catxmlsv||| sv_chop||| sv_clean_all||| sv_clean_objs||| sv_clear||| +sv_cmp_flags||5.013006| +sv_cmp_locale_flags||5.013006| sv_cmp_locale||5.004000| sv_cmp||| +sv_collxfrm_flags||5.013006| sv_collxfrm||| -sv_compile_2op||5.008001| -sv_copypv||5.007003| +sv_copypv_flags||5.017002| +sv_copypv_nomg||5.017002| +sv_copypv||| +sv_dec_nomg||5.013002| sv_dec||| sv_del_backref||| +sv_derived_from_pvn||5.015004| +sv_derived_from_pv||5.015004| +sv_derived_from_sv||5.015004| sv_derived_from||5.004000| +sv_destroyable||5.010000| +sv_display||| +sv_does_pvn||5.015004| +sv_does_pv||5.015004| +sv_does_sv||5.015004| sv_does||5.009004| sv_dump||| +sv_dup_common||| +sv_dup_inc_multiple||| +sv_dup_inc||| sv_dup||| +sv_eq_flags||5.013006| sv_eq||| sv_exp_grow||| sv_force_normal_flags||5.007001| @@ -2144,20 +2657,26 @@ sv_force_normal||5.006000| sv_free2||| sv_free_arenas||| sv_free||| -sv_gets||5.004000| +sv_get_backrefs||5.021008|n +sv_gets||5.003070| sv_grow||| sv_i_ncmp||| +sv_inc_nomg||5.013002| sv_inc||| +sv_insert_flags||5.010001| sv_insert||| sv_isa||| sv_isobject||| sv_iv||5.005000| sv_kill_backrefs||| +sv_len_utf8_nomg||| sv_len_utf8||5.006000| sv_len||| -sv_magic_portable|5.009005|5.004000|p +sv_magic_portable|5.024000|5.004000|p +sv_magicext_mglob||| sv_magicext||5.007003| sv_magic||| +sv_mortalcopy_flags||| sv_mortalcopy||| sv_ncmp||| sv_newmortal||| @@ -2166,10 +2685,14 @@ sv_nolocking||5.007003| sv_nosharing||5.007003| sv_nounlocking||| sv_nv||5.005000| +sv_only_taint_gmagic|||n +sv_or_pv_pos_u2b||| sv_peek||5.005000| +sv_pos_b2u_flags||5.019003| sv_pos_b2u_midway||| sv_pos_b2u||5.006000| sv_pos_u2b_cached||| +sv_pos_u2b_flags||5.011005| sv_pos_u2b_forwards|||n sv_pos_u2b_midway|||n sv_pos_u2b||5.006000| @@ -2178,19 +2701,21 @@ sv_pvbyten||5.006000| sv_pvbyte||5.006000| sv_pvn_force_flags|5.007002||p sv_pvn_force||| -sv_pvn_nomg|5.007003||p -sv_pvn||| +sv_pvn_nomg|5.007003|5.005000|p +sv_pvn||5.005000| sv_pvutf8n_force||5.006000| sv_pvutf8n||5.006000| sv_pvutf8||5.006000| sv_pv||5.006000| sv_recode_to_utf8||5.007003| sv_reftype||| -sv_release_COW||| +sv_ref||| sv_replace||| sv_report_used||| +sv_resetpvn||| sv_reset||| sv_rvweaken||5.006000| +sv_sethek||| sv_setiv_mg|5.004050||p sv_setiv||| sv_setnv_mg|5.006000||p @@ -2204,11 +2729,13 @@ sv_setpviv_mg||5.008001| sv_setpviv||5.008001| sv_setpvn_mg|5.004050||p sv_setpvn||| +sv_setpvs_mg||5.013006| sv_setpvs|5.009004||p sv_setpv||| sv_setref_iv||| sv_setref_nv||| sv_setref_pvn||| +sv_setref_pvs||5.024000| sv_setref_pv||| sv_setref_uv||5.007001| sv_setsv_cow||| @@ -2223,6 +2750,7 @@ sv_taint||5.004000| sv_true||5.005000| sv_unglob||| sv_uni_display||5.007003| +sv_unmagicext|5.013008||p sv_unmagic||| sv_unref_flags||5.007001| sv_unref||| @@ -2234,31 +2762,54 @@ sv_usepvn||| sv_utf8_decode||5.006000| sv_utf8_downgrade||5.006000| sv_utf8_encode||5.006000| +sv_utf8_upgrade_flags_grow||5.011000| sv_utf8_upgrade_flags||5.007002| +sv_utf8_upgrade_nomg||5.007002| sv_utf8_upgrade||5.007001| sv_uv|5.005000||p sv_vcatpvf_mg|5.006000|5.004000|p +sv_vcatpvfn_flags||5.017002| sv_vcatpvfn||5.004000| sv_vcatpvf|5.006000|5.004000|p sv_vsetpvf_mg|5.006000|5.004000|p sv_vsetpvfn||5.004000| sv_vsetpvf|5.006000|5.004000|p -sv_xmlpeek||| svtype||| swallow_bom||| -swap_match_buff||| swash_fetch||5.007002| -swash_get||| swash_init||5.006000| +swash_scan_list_line||| +swatch_get||| +sync_locale||5.021004| +sys_init3||5.010000|n +sys_init||5.010000|n sys_intern_clear||| sys_intern_dup||| sys_intern_init||| +sys_term||5.010000|n taint_env||| taint_proper||| -tmps_grow||5.006000| +tied_method|||v +tmps_grow_p||| +toFOLD_uni||| +toFOLD_utf8||5.019001| +toFOLD_uvchr||5.023009| +toFOLD||5.019001| +toLOWER_L1||5.019001| +toLOWER_LC||5.004000| +toLOWER_utf8||5.015007| +toLOWER_uvchr||5.023009| toLOWER||| +toTITLE_uni||| +toTITLE_utf8||5.015007| +toTITLE_uvchr||5.023009| +toTITLE||5.019001| +toUPPER_uni||| +toUPPER_utf8||5.015007| +toUPPER_uvchr||5.023009| toUPPER||| to_byte_substr||| +to_lower_latin1|||n to_uni_fold||5.007003| to_uni_lower_lc||5.006000| to_uni_lower||5.007003| @@ -2267,54 +2818,61 @@ to_uni_title||5.007003| to_uni_upper_lc||5.006000| to_uni_upper||5.007003| to_utf8_case||5.007003| -to_utf8_fold||5.007003| -to_utf8_lower||5.007003| +to_utf8_fold||5.015007| +to_utf8_lower||5.015007| to_utf8_substr||| -to_utf8_title||5.007003| -to_utf8_upper||5.007003| -token_free||| -token_getmad||| +to_utf8_title||5.015007| +to_utf8_upper||5.015007| tokenize_use||| tokeq||| tokereport||| -too_few_arguments||| -too_many_arguments||| +too_few_arguments_pv||| +too_many_arguments_pv||| +translate_substr_offsets|||n +try_amagic_bin||| +try_amagic_un||| uiv_2buf|||n unlnk||| unpack_rec||| unpack_str||5.007003| unpackstring||5.008001| +unreferenced_to_tmp_stack||| unshare_hek_or_pvn||| unshare_hek||| -unsharepvn||5.004000| +unsharepvn||5.003070| unwind_handler_stack||| update_debugger_info||| upg_version||5.009005| usage||| +utf16_textfilter||| utf16_to_utf8_reversed||5.006001| utf16_to_utf8||5.006001| utf8_distance||5.006000| -utf8_hop||5.006000| +utf8_hop||5.006000|n utf8_length||5.007001| +utf8_mg_len_cache_update||| utf8_mg_pos_cache_update||| utf8_to_bytes||5.006001| +utf8_to_uvchr_buf||5.015009| utf8_to_uvchr||5.007001| +utf8_to_uvuni_buf||5.015009| utf8_to_uvuni||5.007001| -utf8n_to_uvchr||| +utf8n_to_uvchr||5.007001| utf8n_to_uvuni||5.007001| utilize||| uvchr_to_utf8_flags||5.007003| -uvchr_to_utf8||| +uvchr_to_utf8||5.007001| +uvoffuni_to_utf8_flags||5.019004| uvuni_to_utf8_flags||5.007003| uvuni_to_utf8||5.007001| +valid_utf8_to_uvchr||5.015009| +valid_utf8_to_uvuni||5.015009| +validate_proto||| validate_suid||| varname||| vcmp||5.009000| vcroak||5.006000| vdeb||5.007003| -vdie_common||| -vdie_croak_common||| -vdie||| vform||5.006000| visit||| vivify_defelem||| @@ -2330,24 +2888,29 @@ vwarner||5.006000| vwarn||5.006000| wait4pid||| warn_nocontext|||vn +warn_sv||5.013001| warner_nocontext|||vn warner|5.006000|5.004000|pv warn|||v +was_lvalue_sub||| watch||| +whichsig_pvn||5.015004| +whichsig_pv||5.015004| +whichsig_sv||5.015004| whichsig||| -write_no_mem||| +win32_croak_not_implemented|||n +with_queued_errors||| +wrap_op_checker||5.015008| write_to_stderr||| -xmldump_all||| -xmldump_attr||| -xmldump_eval||| -xmldump_form||| -xmldump_indent|||v -xmldump_packsubs||| -xmldump_sub||| -xmldump_vindent||| +xs_boot_epilog||| +xs_handshake|||vn +xs_version_bootcheck||| +yyerror_pvn||| +yyerror_pv||| yyerror||| yylex||| yyparse||| +yyunlex||| yywarn||| ); @@ -2412,7 +2975,7 @@ while () { my @n = find_api($function->[1]); push @{$depends{$function->[0]}}, @n if @n } - undef $define; + undef $function; } else { $function->[1] .= $_; @@ -2426,8 +2989,12 @@ while () { $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce}; $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$}; - if (m{^\s*$rccs\s+(\w+)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) { - push @{$depends{$1}}, map { s/\s+//g; $_ } split /,/, $2; + if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) { + my @deps = map { s/\s+//g; $_ } split /,/, $3; + my $d; + for $d (map { s/\s+//g; $_ } split /,/, $1) { + push @{$depends{$d}}, @deps; + } } $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)}; @@ -3043,7 +3610,7 @@ sub strip if (\@ARGV && \$ARGV[0] eq '--unstrip') { eval { require Devel::PPPort }; \$@ and die "Cannot require Devel::PPPort, please install.\\n"; - if (\$Devel::PPPort::VERSION < $VERSION) { + if (eval \$Devel::PPPort::VERSION < $VERSION) { die "$0 was originally generated with Devel::PPPort $VERSION.\\n" . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n" . "Please install a newer version, or --unstrip will not work.\\n"; @@ -3119,6 +3686,49 @@ __DATA__ #if PERL_REVISION != 5 # error ppport.h only works with Perl version 5 #endif /* PERL_REVISION != 5 */ +#ifndef dTHR +# define dTHR dNOOP +#endif +#ifndef dTHX +# define dTHX dNOOP +#endif + +#ifndef dTHXa +# define dTHXa(x) dNOOP +#endif +#ifndef pTHX +# define pTHX void +#endif + +#ifndef pTHX_ +# define pTHX_ +#endif + +#ifndef aTHX +# define aTHX +#endif + +#ifndef aTHX_ +# define aTHX_ +#endif + +#if (PERL_BCDVERSION < 0x5006000) +# ifdef USE_THREADS +# define aTHXR thr +# define aTHXR_ thr, +# else +# define aTHXR +# define aTHXR_ +# endif +# define dTHXR dTHR +#else +# define aTHXR aTHX +# define aTHXR_ aTHX_ +# define dTHXR dTHX +#endif +#ifndef dTHXoa +# define dTHXoa(x) dTHXa(x) +#endif #ifdef I_LIMITS # include @@ -3404,6 +4014,10 @@ __DATA__ # define IVSIZE 8 #endif +#ifndef LONGSIZE +# define LONGSIZE 8 +#endif + #ifndef PERL_QUAD_MIN # define PERL_QUAD_MIN IV_MIN #endif @@ -3425,6 +4039,10 @@ __DATA__ # define IVTYPE long #endif +#ifndef LONGSIZE +# define LONGSIZE 4 +#endif + #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif @@ -3533,6 +4151,14 @@ __DATA__ # define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif +#endif +#ifndef memEQs +# define memEQs(s1, l, s2) \ + (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1))) +#endif + +#ifndef memNEs +# define memNEs(s1, l, s2) !memEQs(s1, l, s2) #endif #ifndef MoveD # define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) @@ -3579,6 +4205,64 @@ __DATA__ #ifndef Newxz # define Newxz(v,n,t) Newz(0,v,n,t) #endif +#ifndef cBOOL +# define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) +#endif + +#ifndef OpHAS_SIBLING +# define OpHAS_SIBLING(o) (cBOOL((o)->op_sibling)) +#endif + +#ifndef OpSIBLING +# define OpSIBLING(o) (0 + (o)->op_sibling) +#endif + +#ifndef OpMORESIB_set +# define OpMORESIB_set(o, sib) ((o)->op_sibling = (sib)) +#endif + +#ifndef OpLASTSIB_set +# define OpLASTSIB_set(o, parent) ((o)->op_sibling = NULL) +#endif + +#ifndef OpMAYBESIB_set +# define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib)) +#endif + +#ifndef SvRX +#if defined(NEED_SvRX) +static void * DPPP_(my_SvRX)(pTHX_ SV *rv); +static +#else +extern void * DPPP_(my_SvRX)(pTHX_ SV *rv); +#endif + +#ifdef SvRX +# undef SvRX +#endif +#define SvRX(a) DPPP_(my_SvRX)(aTHX_ a) + +#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL) + +void * +DPPP_(my_SvRX)(pTHX_ SV *rv) +{ + if (SvROK(rv)) { + SV *sv = SvRV(rv); + if (SvMAGICAL(sv)) { + MAGIC *mg = mg_find(sv, PERL_MAGIC_qr); + if (mg && mg->mg_obj) { + return mg->mg_obj; + } + } + } + return 0; +} +#endif +#endif +#ifndef SvRXOK +# define SvRXOK(sv) (!!SvRX(sv)) +#endif #ifndef PERL_UNUSED_DECL # ifdef HASATTRIBUTE @@ -3612,6 +4296,14 @@ __DATA__ # define PERL_UNUSED_CONTEXT # endif #endif + +#ifndef PERL_UNUSED_RESULT +# if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT) +# define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END +# else +# define PERL_UNUSED_RESULT(v) ((void)(v)) +# endif +#endif #ifndef NOOP # define NOOP /*EMPTY*/(void)0 #endif @@ -3630,7 +4322,6 @@ typedef NVTYPE NV; #endif #ifndef INT2PTR - # if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) # define PTRV UV # define INT2PTR(any,d) (any)(d) @@ -3642,19 +4333,34 @@ typedef NVTYPE NV; # endif # define INT2PTR(any,d) (any)(PTRV)(d) # endif +#endif -# define NUM2PTR(any,d) (any)(PTRV)(d) -# define PTR2IV(p) INT2PTR(IV,p) -# define PTR2UV(p) INT2PTR(UV,p) -# define PTR2NV(p) NUM2PTR(NV,p) - +#ifndef PTR2ul # if PTRSIZE == LONGSIZE # define PTR2ul(p) (unsigned long)(p) # else # define PTR2ul(p) INT2PTR(unsigned long,p) # endif +#endif +#ifndef PTR2nat +# define PTR2nat(p) (PTRV)(p) +#endif + +#ifndef NUM2PTR +# define NUM2PTR(any,d) (any)PTR2nat(d) +#endif + +#ifndef PTR2IV +# define PTR2IV(p) INT2PTR(IV,p) +#endif + +#ifndef PTR2UV +# define PTR2UV(p) INT2PTR(UV,p) +#endif -#endif /* !INT2PTR */ +#ifndef PTR2NV +# define PTR2NV(p) NUM2PTR(NV,p) +#endif #undef START_EXTERN_C #undef END_EXTERN_C @@ -3684,15 +4390,15 @@ typedef NVTYPE NV; #undef STMT_START #undef STMT_END #ifdef PERL_USE_GCC_BRACE_GROUPS -# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ -# define STMT_END ) +# define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ +# define STMT_END ) #else # if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__) -# define STMT_START if (1) -# define STMT_END else (void)0 +# define STMT_START if (1) +# define STMT_END else (void)0 # else -# define STMT_START do -# define STMT_END while (0) +# define STMT_START do +# define STMT_END while (0) # endif #endif #ifndef boolSV @@ -3708,6 +4414,10 @@ typedef NVTYPE NV; # define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) #endif +#ifndef DEFSV_set +# define DEFSV_set(sv) (DEFSV = (sv)) +#endif + /* Older perls (<=5.003) lack AvFILLp */ #ifndef AvFILLp # define AvFILLp AvFILL @@ -3715,11 +4425,6 @@ typedef NVTYPE NV; #ifndef ERRSV # define ERRSV get_sv("@",FALSE) #endif -#ifndef newSVpvn -# define newSVpvn(data,len) ((data) \ - ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ - : newSV(0)) -#endif /* Hint: gv_stashpvn * This function's backport doesn't support the length parameter, but @@ -3782,6 +4487,13 @@ typedef NVTYPE NV; return; \ } STMT_END #endif +#ifndef XSPROTO +# define XSPROTO(name) void name(pTHX_ CV* cv) +#endif + +#ifndef SVfARG +# define SVfARG(p) ((void*)(p)) +#endif #ifndef PERL_ABS # define PERL_ABS(x) ((x) < 0 ? -(x) : (x)) #endif @@ -3794,18 +4506,146 @@ typedef NVTYPE NV; #ifndef UTF8_MAXBYTES # define UTF8_MAXBYTES UTF8_MAXLEN #endif +#ifndef CPERLscope +# define CPERLscope(x) x +#endif #ifndef PERL_HASH # define PERL_HASH(hash,str,len) \ - STMT_START { \ - const char *s_PeRlHaSh = str; \ - I32 i_PeRlHaSh = len; \ - U32 hash_PeRlHaSh = 0; \ - while (i_PeRlHaSh--) \ - hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \ - (hash) = hash_PeRlHaSh; \ + STMT_START { \ + const char *s_PeRlHaSh = str; \ + I32 i_PeRlHaSh = len; \ + U32 hash_PeRlHaSh = 0; \ + while (i_PeRlHaSh--) \ + hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \ + (hash) = hash_PeRlHaSh; \ } STMT_END #endif +#ifndef PERLIO_FUNCS_DECL +# ifdef PERLIO_FUNCS_CONST +# define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs +# define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs) +# else +# define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs +# define PERLIO_FUNCS_CAST(funcs) (funcs) +# endif +#endif + +/* provide these typedefs for older perls */ +#if (PERL_BCDVERSION < 0x5009003) + +# ifdef ARGSproto +typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto); +# else +typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX); +# endif + +typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); + +#endif +#ifndef isPSXSPC +# define isPSXSPC(c) (isSPACE(c) || (c) == '\v') +#endif + +#ifndef isBLANK +# define isBLANK(c) ((c) == ' ' || (c) == '\t') +#endif + +#ifdef EBCDIC +#ifndef isALNUMC +# define isALNUMC(c) isalnum(c) +#endif + +#ifndef isASCII +# define isASCII(c) isascii(c) +#endif + +#ifndef isCNTRL +# define isCNTRL(c) iscntrl(c) +#endif + +#ifndef isGRAPH +# define isGRAPH(c) isgraph(c) +#endif + +#ifndef isPRINT +# define isPRINT(c) isprint(c) +#endif + +#ifndef isPUNCT +# define isPUNCT(c) ispunct(c) +#endif + +#ifndef isXDIGIT +# define isXDIGIT(c) isxdigit(c) +#endif + +#else +# if (PERL_BCDVERSION < 0x5010000) +/* Hint: isPRINT + * The implementation in older perl versions includes all of the + * isSPACE() characters, which is wrong. The version provided by + * Devel::PPPort always overrides a present buggy version. + */ +# undef isPRINT +# endif + +#ifdef HAS_QUAD +# ifdef U64TYPE +# define WIDEST_UTYPE U64TYPE +# else +# define WIDEST_UTYPE Quad_t +# endif +#else +# define WIDEST_UTYPE U32 +#endif +#ifndef isALNUMC +# define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) +#endif + +#ifndef isASCII +# define isASCII(c) ((WIDEST_UTYPE) (c) <= 127) +#endif + +#ifndef isCNTRL +# define isCNTRL(c) ((WIDEST_UTYPE) (c) < ' ' || (c) == 127) +#endif + +#ifndef isGRAPH +# define isGRAPH(c) (isALNUM(c) || isPUNCT(c)) +#endif + +#ifndef isPRINT +# define isPRINT(c) (((c) >= 32 && (c) < 127)) +#endif + +#ifndef isPUNCT +# define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126)) +#endif + +#ifndef isXDIGIT +# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +#endif + +#endif + +/* Until we figure out how to support this in older perls... */ +#if (PERL_BCDVERSION >= 0x5008000) +#ifndef HeUTF8 +# define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ + SvUTF8(HeKEY_sv(he)) : \ + (U32)HeKUTF8(he)) +#endif + +#endif +#ifndef C_ARRAY_LENGTH +# define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0])) +#endif + +#ifndef C_ARRAY_END +# define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a)) +#endif + #ifndef PERL_SIGNALS_UNSAFE_FLAG #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 @@ -3848,6 +4688,8 @@ extern U32 DPPP_(my_PL_signals); # define PL_DBsub DBsub # define PL_DBtrace DBtrace # define PL_Sv Sv +# define PL_bufend bufend +# define PL_bufptr bufptr # define PL_compiling compiling # define PL_copline copline # define PL_curcop curcop @@ -3858,10 +4700,15 @@ extern U32 DPPP_(my_PL_signals); # define PL_dirty dirty # define PL_dowarn dowarn # define PL_errgv errgv +# define PL_error_count error_count # define PL_expect expect # define PL_hexdigit hexdigit # define PL_hints hints +# define PL_in_my in_my # define PL_laststatval laststatval +# define PL_lex_state lex_state +# define PL_lex_stuff lex_stuff +# define PL_linestr linestr # define PL_na na # define PL_perl_destruct_level perl_destruct_level # define PL_perldb perldb @@ -3877,102 +4724,125 @@ extern U32 DPPP_(my_PL_signals); # define PL_sv_yes sv_yes # define PL_tainted tainted # define PL_tainting tainting +# define PL_tokenbuf tokenbuf /* Replace: 0 */ #endif -/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters - * Do not use this variable. It is internal to the perl parser - * and may change or even be removed in the future. Note that - * as of perl 5.9.5 you cannot assign to this variable anymore. +/* Warning: PL_parser + * For perl versions earlier than 5.9.5, this is an always + * non-NULL dummy. Also, it cannot be dereferenced. Don't + * use it if you can avoid is and unless you absolutely know + * what you're doing. + * If you always check that PL_parser is non-NULL, you can + * define DPPP_PL_parser_NO_DUMMY to avoid the creation of + * a dummy parser structure. */ -/* TODO: cannot assign to these vars; is it worth fixing? */ #if (PERL_BCDVERSION >= 0x5009005) -# define PL_expect (PL_parser ? PL_parser->expect : 0) -# define PL_copline (PL_parser ? PL_parser->copline : 0) -# define PL_rsfp (PL_parser ? PL_parser->rsfp : (PerlIO *) 0) -# define PL_rsfp_filters (PL_parser ? PL_parser->rsfp_filters : (AV *) 0) -#endif -#ifndef dTHR -# define dTHR dNOOP -#endif -#ifndef dTHX -# define dTHX dNOOP -#endif +# ifdef DPPP_PL_parser_NO_DUMMY +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (croak("panic: PL_parser == NULL in %s:%d", \ + __FILE__, __LINE__), (yy_parser *) NULL))->var) +# else +# ifdef DPPP_PL_parser_NO_DUMMY_WARNING +# define D_PPP_parser_dummy_warning(var) +# else +# define D_PPP_parser_dummy_warning(var) \ + warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__), +# endif +# define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \ + (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var) +#if defined(NEED_PL_parser) +static yy_parser DPPP_(dummy_PL_parser); +#elif defined(NEED_PL_parser_GLOBAL) +yy_parser DPPP_(dummy_PL_parser); +#else +extern yy_parser DPPP_(dummy_PL_parser); +#endif + +# endif + +/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */ +/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf + * Do not use this variable unless you know exactly what you're + * doing. It is internal to the perl parser and may change or even + * be removed in the future. As of perl 5.9.5, you have to check + * for (PL_parser != NULL) for this variable to have any effect. + * An always non-NULL PL_parser dummy is provided for earlier + * perl versions. + * If PL_parser is NULL when you try to access this variable, a + * dummy is being accessed instead and a warning is issued unless + * you define DPPP_PL_parser_NO_DUMMY_WARNING. + * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access + * this variable will croak with a panic message. + */ -#ifndef dTHXa -# define dTHXa(x) dNOOP -#endif -#ifndef pTHX -# define pTHX void -#endif +# define PL_expect D_PPP_my_PL_parser_var(expect) +# define PL_copline D_PPP_my_PL_parser_var(copline) +# define PL_rsfp D_PPP_my_PL_parser_var(rsfp) +# define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) +# define PL_linestr D_PPP_my_PL_parser_var(linestr) +# define PL_bufptr D_PPP_my_PL_parser_var(bufptr) +# define PL_bufend D_PPP_my_PL_parser_var(bufend) +# define PL_lex_state D_PPP_my_PL_parser_var(lex_state) +# define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) +# define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) +# define PL_in_my D_PPP_my_PL_parser_var(in_my) +# define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) +# define PL_error_count D_PPP_my_PL_parser_var(error_count) -#ifndef pTHX_ -# define pTHX_ -#endif -#ifndef aTHX -# define aTHX -#endif +#else -#ifndef aTHX_ -# define aTHX_ -#endif +/* ensure that PL_parser != NULL and cannot be dereferenced */ +# define PL_parser ((void *) 1) -#if (PERL_BCDVERSION < 0x5006000) -# ifdef USE_THREADS -# define aTHXR thr -# define aTHXR_ thr, -# else -# define aTHXR -# define aTHXR_ -# endif -# define dTHXR dTHR -#else -# define aTHXR aTHX -# define aTHXR_ aTHX_ -# define dTHXR dTHX #endif -#ifndef dTHXoa -# define dTHXoa(x) dTHXa(x) +#ifndef mPUSHs +# define mPUSHs(s) PUSHs(sv_2mortal(s)) #endif + #ifndef PUSHmortal # define PUSHmortal PUSHs(sv_newmortal()) #endif #ifndef mPUSHp -# define mPUSHp(p,l) sv_setpvn_mg(PUSHmortal, (p), (l)) +# define mPUSHp(p,l) sv_setpvn(PUSHmortal, (p), (l)) #endif #ifndef mPUSHn -# define mPUSHn(n) sv_setnv_mg(PUSHmortal, (NV)(n)) +# define mPUSHn(n) sv_setnv(PUSHmortal, (NV)(n)) #endif #ifndef mPUSHi -# define mPUSHi(i) sv_setiv_mg(PUSHmortal, (IV)(i)) +# define mPUSHi(i) sv_setiv(PUSHmortal, (IV)(i)) #endif #ifndef mPUSHu -# define mPUSHu(u) sv_setuv_mg(PUSHmortal, (UV)(u)) +# define mPUSHu(u) sv_setuv(PUSHmortal, (UV)(u)) #endif +#ifndef mXPUSHs +# define mXPUSHs(s) XPUSHs(sv_2mortal(s)) +#endif + #ifndef XPUSHmortal # define XPUSHmortal XPUSHs(sv_newmortal()) #endif #ifndef mXPUSHp -# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END +# define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END #endif #ifndef mXPUSHn -# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END +# define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END #endif #ifndef mXPUSHi -# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END +# define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END #endif #ifndef mXPUSHu -# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END +# define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END #endif /* Replace: 1 */ @@ -3994,6 +4864,8 @@ extern U32 DPPP_(my_PL_signals); #ifndef eval_sv # define eval_sv perl_eval_sv #endif + +/* Replace: 0 */ #ifndef PERL_LOADMOD_DENY # define PERL_LOADMOD_DENY 0x1 #endif @@ -4006,7 +4878,19 @@ extern U32 DPPP_(my_PL_signals); # define PERL_LOADMOD_IMPORT_OPS 0x4 #endif -/* Replace: 0 */ +#ifndef G_METHOD +# define G_METHOD 64 +# ifdef call_sv +# undef call_sv +# endif +# if (PERL_BCDVERSION < 0x5006000) +# define call_sv(sv, flags) ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : perl_call_sv(sv, flags)) +# else +# define call_sv(sv, flags) ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \ + (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags)) +# endif +#endif /* Replace perl_eval_pv with eval_pv */ @@ -4041,7 +4925,7 @@ DPPP_(my_eval_pv)(char *p, I32 croak_on_error) PUTBACK; if (croak_on_error && SvTRUE(GvSV(errgv))) - croak(SvPVx(GvSV(errgv), na)); + croak(SvPVx(GvSV(errgv), na)); return sv; } @@ -4081,40 +4965,43 @@ DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) SvREADONLY_off(((SVOP*)modname)->op_sv); modname->op_private |= OPpCONST_BARE; if (ver) { - veop = newSVOP(OP_CONST, 0, ver); + veop = newSVOP(OP_CONST, 0, ver); } else - veop = NULL; + veop = NULL; if (flags & PERL_LOADMOD_NOIMPORT) { - imop = sawparens(newNULLLIST()); + imop = sawparens(newNULLLIST()); } else if (flags & PERL_LOADMOD_IMPORT_OPS) { - imop = va_arg(*args, OP*); + imop = va_arg(*args, OP*); } else { - SV *sv; - imop = NULL; - sv = va_arg(*args, SV*); - while (sv) { - imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); - sv = va_arg(*args, SV*); - } + SV *sv; + imop = NULL; + sv = va_arg(*args, SV*); + while (sv) { + imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv)); + sv = va_arg(*args, SV*); + } } { - const line_t ocopline = PL_copline; - COP * const ocurcop = PL_curcop; - const int oexpect = PL_expect; + const line_t ocopline = PL_copline; + COP * const ocurcop = PL_curcop; + const int oexpect = PL_expect; #if (PERL_BCDVERSION >= 0x5004000) - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), - veop, modname, imop); + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0), + veop, modname, imop); +#elif (PERL_BCDVERSION > 0x5003000) + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), + veop, modname, imop); #else - utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), - modname, imop); + utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(), + modname, imop); #endif - PL_expect = oexpect; - PL_copline = ocopline; - PL_curcop = ocurcop; + PL_expect = oexpect; + PL_copline = ocopline; + PL_curcop = ocurcop; } } @@ -4199,38 +5086,42 @@ extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); #if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) +/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */ +/* (There's no PL_parser in perl < 5.005, so this is completely safe) */ +#define D_PPP_PL_copline PL_copline + void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) { - U32 oldhints = PL_hints; - HV *old_cop_stash = PL_curcop->cop_stash; - HV *old_curstash = PL_curstash; - line_t oldline = PL_curcop->cop_line; - PL_curcop->cop_line = PL_copline; + U32 oldhints = PL_hints; + HV *old_cop_stash = PL_curcop->cop_stash; + HV *old_curstash = PL_curstash; + line_t oldline = PL_curcop->cop_line; + PL_curcop->cop_line = D_PPP_PL_copline; - PL_hints &= ~HINT_BLOCK_SCOPE; - if (stash) - PL_curstash = PL_curcop->cop_stash = stash; + PL_hints &= ~HINT_BLOCK_SCOPE; + if (stash) + PL_curstash = PL_curcop->cop_stash = stash; - newSUB( + newSUB( #if (PERL_BCDVERSION < 0x5003022) - start_subparse(), + start_subparse(), #elif (PERL_BCDVERSION == 0x5003022) - start_subparse(0), + start_subparse(0), #else /* 5.003_23 onwards */ - start_subparse(FALSE, 0), + start_subparse(FALSE, 0), #endif - newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), - newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ - newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) - ); + newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)), + newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ + newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) + ); - PL_hints = oldhints; - PL_curcop->cop_stash = old_cop_stash; - PL_curstash = old_curstash; - PL_curcop->cop_line = oldline; + PL_hints = oldhints; + PL_curcop->cop_stash = old_cop_stash; + PL_curstash = old_curstash; + PL_curcop->cop_line = oldline; } #endif #endif @@ -4267,64 +5158,64 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #if (PERL_BCDVERSION < 0x5004068) /* Fetches the SV that keeps the per-interpreter data. */ #define dMY_CXT_SV \ - SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) + SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) #else /* >= perl5.004_68 */ #define dMY_CXT_SV \ - SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ - sizeof(MY_CXT_KEY)-1, TRUE) + SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ + sizeof(MY_CXT_KEY)-1, TRUE) #endif /* < perl5.004_68 */ /* This declaration should be used within all functions that use the * interpreter-local data. */ -#define dMY_CXT \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) +#define dMY_CXT \ + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) /* Creates and zeroes the per-interpreter data. * (We allocate my_cxtp in a Perl SV so that it will be released when * the interpreter goes away.) */ #define MY_CXT_INIT \ - dMY_CXT_SV; \ - /* newSV() allocates one more than needed */ \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Zero(my_cxtp, 1, my_cxt_t); \ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) + dMY_CXT_SV; \ + /* newSV() allocates one more than needed */ \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Zero(my_cxtp, 1, my_cxt_t); \ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) /* This macro must be used to access members of the my_cxt_t structure. * e.g. MYCXT.some_data */ -#define MY_CXT (*my_cxtp) +#define MY_CXT (*my_cxtp) /* Judicious use of these macros can reduce the number of times dMY_CXT * is used. Use is similar to pTHX, aTHX etc. */ -#define pMY_CXT my_cxt_t *my_cxtp -#define pMY_CXT_ pMY_CXT, -#define _pMY_CXT ,pMY_CXT -#define aMY_CXT my_cxtp -#define aMY_CXT_ aMY_CXT, -#define _aMY_CXT ,aMY_CXT +#define pMY_CXT my_cxt_t *my_cxtp +#define pMY_CXT_ pMY_CXT, +#define _pMY_CXT ,pMY_CXT +#define aMY_CXT my_cxtp +#define aMY_CXT_ aMY_CXT, +#define _aMY_CXT ,aMY_CXT #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE /* Clones the per-interpreter data. */ #define MY_CXT_CLONE \ - dMY_CXT_SV; \ - my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ - Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ - sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) + dMY_CXT_SV; \ + my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ + Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ + sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) #endif #else /* single interpreter */ #ifndef START_MY_CXT -#define START_MY_CXT static my_cxt_t my_cxt; -#define dMY_CXT_SV dNOOP -#define dMY_CXT dNOOP -#define MY_CXT_INIT NOOP -#define MY_CXT my_cxt +#define START_MY_CXT static my_cxt_t my_cxt; +#define dMY_CXT_SV dNOOP +#define dMY_CXT dNOOP +#define MY_CXT_INIT NOOP +#define MY_CXT my_cxt -#define pMY_CXT void +#define pMY_CXT void #define pMY_CXT_ #define _pMY_CXT #define aMY_CXT @@ -4334,32 +5225,33 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE -#define MY_CXT_CLONE NOOP +#define MY_CXT_CLONE NOOP #endif #endif #ifndef IVdf # if IVSIZE == LONGSIZE -# define IVdf "ld" -# define UVuf "lu" -# define UVof "lo" -# define UVxf "lx" -# define UVXf "lX" +# define IVdf "ld" +# define UVuf "lu" +# define UVof "lo" +# define UVxf "lx" +# define UVXf "lX" +# elif IVSIZE == INTSIZE +# define IVdf "d" +# define UVuf "u" +# define UVof "o" +# define UVxf "x" +# define UVXf "X" # else -# if IVSIZE == INTSIZE -# define IVdf "d" -# define UVuf "u" -# define UVof "o" -# define UVxf "x" -# define UVXf "X" -# endif +# error "cannot define IV/UV formats" # endif #endif #ifndef NVef # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \ - defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */ + defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000) + /* Not very likely, but let's try anyway. */ # define NVef PERL_PRIeldbl # define NVff PERL_PRIfldbl # define NVgf PERL_PRIgldbl @@ -4372,26 +5264,26 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #ifndef SvREFCNT_inc # ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (SvREFCNT(_sv))++; \ - _sv; \ +# define SvREFCNT_inc(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (SvREFCNT(_sv))++; \ + _sv; \ }) # else -# define SvREFCNT_inc(sv) \ +# define SvREFCNT_inc(sv) \ ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) # endif #endif #ifndef SvREFCNT_inc_simple # ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_simple(sv) \ - ({ \ - if (sv) \ - (SvREFCNT(sv))++; \ - (SV *)(sv); \ +# define SvREFCNT_inc_simple(sv) \ + ({ \ + if (sv) \ + (SvREFCNT(sv))++; \ + (SV *)(sv); \ }) # else # define SvREFCNT_inc_simple(sv) \ @@ -4401,11 +5293,11 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #ifndef SvREFCNT_inc_NN # ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_NN(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - SvREFCNT(_sv)++; \ - _sv; \ +# define SvREFCNT_inc_NN(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + SvREFCNT(_sv)++; \ + _sv; \ }) # else # define SvREFCNT_inc_NN(sv) \ @@ -4415,11 +5307,11 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #ifndef SvREFCNT_inc_void # ifdef PERL_USE_GCC_BRACE_GROUPS -# define SvREFCNT_inc_void(sv) \ - ({ \ - SV * const _sv = (SV*)(sv); \ - if (_sv) \ - (void)(SvREFCNT(_sv)++); \ +# define SvREFCNT_inc_void(sv) \ + ({ \ + SV * const _sv = (SV*)(sv); \ + if (_sv) \ + (void)(SvREFCNT(_sv)++); \ }) # else # define SvREFCNT_inc_void(sv) \ @@ -4442,6 +5334,81 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) # define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif +#ifndef newSV_type + +#if defined(NEED_newSV_type) +static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); +static +#else +extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); +#endif + +#ifdef newSV_type +# undef newSV_type +#endif +#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) +#define Perl_newSV_type DPPP_(my_newSV_type) + +#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) + +SV* +DPPP_(my_newSV_type)(pTHX_ svtype const t) +{ + SV* const sv = newSV(0); + sv_upgrade(sv, t); + return sv; +} + +#endif + +#endif + +#if (PERL_BCDVERSION < 0x5006000) +# define D_PPP_CONSTPV_ARG(x) ((char *) (x)) +#else +# define D_PPP_CONSTPV_ARG(x) (x) +#endif +#ifndef newSVpvn +# define newSVpvn(data,len) ((data) \ + ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ + : newSV(0)) +#endif +#ifndef newSVpvn_utf8 +# define newSVpvn_utf8(s, len, u) newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) +#endif +#ifndef SVf_UTF8 +# define SVf_UTF8 0 +#endif + +#ifndef newSVpvn_flags + +#if defined(NEED_newSVpvn_flags) +static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); +static +#else +extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); +#endif + +#ifdef newSVpvn_flags +# undef newSVpvn_flags +#endif +#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) +#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) + +#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) + +SV * +DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) +{ + SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len); + SvFLAGS(sv) |= (flags & SVf_UTF8); + return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv; +} + +#endif + +#endif + /* Backwards compatibility stuff... :-( */ #if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen) # define NEED_sv_2pv_flags @@ -4467,10 +5434,10 @@ DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) #if (PERL_BCDVERSION < 0x5007000) #if defined(NEED_sv_2pvbyte) -static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV * sv, STRLEN * lp); +static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); static #else -extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV * sv, STRLEN * lp); +extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); #endif #ifdef sv_2pvbyte @@ -4564,10 +5531,10 @@ DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) #if (PERL_BCDVERSION < 0x5007002) #if defined(NEED_sv_2pv_flags) -static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags); +static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); static #else -extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags); +extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif #ifdef sv_2pv_flags @@ -4588,10 +5555,10 @@ DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #endif #if defined(NEED_sv_pvn_force_flags) -static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags); +static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); static #else -extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV * sv, STRLEN * lp, I32 flags); +extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif #ifdef sv_pvn_force_flags @@ -4611,6 +5578,12 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #endif +#endif + +#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) +# define DPPP_SVPV_NOLEN_LP_ARG &PL_na +#else +# define DPPP_SVPV_NOLEN_LP_ARG 0 #endif #ifndef SvPV_const # define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) @@ -4634,7 +5607,7 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) # define SvPV_flags_const_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX_const(sv) : \ - (const char*) sv_2pv_flags(sv, 0, flags|SV_CONST_RETURN)) + (const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif #ifndef SvPV_flags_mutable # define SvPV_flags_mutable(sv, lp, flags) \ @@ -4669,7 +5642,7 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #ifndef SvPV_force_flags_nolen # define SvPV_force_flags_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ - ? SvPVX(sv) : sv_pvn_force_flags(sv, 0, flags)) + ? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags)) #endif #ifndef SvPV_force_flags_mutable # define SvPV_force_flags_mutable(sv, lp, flags) \ @@ -4680,12 +5653,12 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #ifndef SvPV_nolen # define SvPV_nolen(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC)) + ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) #endif #ifndef SvPV_nolen_const # define SvPV_nolen_const(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ - ? SvPVX_const(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC|SV_CONST_RETURN)) + ? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) #endif #ifndef SvPV_nomg # define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) @@ -4698,6 +5671,17 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #ifndef SvPV_nomg_const_nolen # define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0) #endif + +#ifndef SvPV_nomg_nolen +# define SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ + ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, 0)) +#endif +#ifndef SvPV_renew +# define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ + SvPV_set((sv), (char *) saferealloc( \ + (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \ + } STMT_END +#endif #ifndef SvMAGIC_set # define SvMAGIC_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ @@ -4757,10 +5741,10 @@ DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) #if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf) #if defined(NEED_vnewSVpvf) -static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char * pat, va_list * args); +static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); static #else -extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char * pat, va_list * args); +extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); #endif #ifdef vnewSVpvf @@ -4792,10 +5776,10 @@ DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) -static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * sv, const char * pat, ...); +static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); static #else -extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * sv, const char * pat, ...); +extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif #define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) @@ -4818,10 +5802,10 @@ DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) #ifdef PERL_IMPLICIT_CONTEXT #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext) #if defined(NEED_sv_catpvf_mg_nocontext) -static void DPPP_(my_sv_catpvf_mg_nocontext)(SV * sv, const char * pat, ...); +static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); static #else -extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV * sv, const char * pat, ...); +extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif #define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) @@ -4863,10 +5847,10 @@ DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) -static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * sv, const char * pat, ...); +static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); static #else -extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * sv, const char * pat, ...); +extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif #define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) @@ -4889,10 +5873,10 @@ DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) #ifdef PERL_IMPLICIT_CONTEXT #if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext) #if defined(NEED_sv_setpvf_mg_nocontext) -static void DPPP_(my_sv_setpvf_mg_nocontext)(SV * sv, const char * pat, ...); +static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); static #else -extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV * sv, const char * pat, ...); +extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif #define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) @@ -4932,6 +5916,12 @@ DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) } STMT_END #endif +/* Hint: newSVpvn_share + * The SVs created by this function only mimic the behaviour of + * shared PVs without really being shared. Only use if you know + * what you're doing. + */ + #ifndef newSVpvn_share #if defined(NEED_newSVpvn_share) @@ -4971,6 +5961,90 @@ DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) #ifndef SvSHARED_HASH # define SvSHARED_HASH(sv) (0 + SvUVX(sv)) #endif +#ifndef HvNAME_get +# define HvNAME_get(hv) HvNAME(hv) +#endif + +#ifndef HvNAMELEN_get +# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0) +#endif + +#ifndef HvNAMELEN +# define HvNAMELEN(hv) HvNAMELEN_get(hv) +#endif + +#ifndef HvENAME +# define HvENAME(hv) HvNAME(hv) +#endif + +#ifndef HvENAMELEN +# define HvENAMELEN(hv) (HvENAME(hv) ? strlen(HvENAME(hv)) : 0) +#endif + +# if (PERL_BCDVERSION < 0x5010000) +#ifndef HvNAMEUTF8 +# define HvNAMEUTF8(hv) 0 +#endif + +#ifndef HvENAMEUTF8 +# define HvENAMEUTF8(hv) 0 +#endif + +#else +#ifndef HvNAMEUTF8 +# define HvNAMEUTF8(hv) (HvNAME_HEK(hv) ? HEK_UTF8(HvNAME_HEK(hv)) : 0) +#endif + +#ifndef HvENAMEUTF8 +# define HvENAMEUTF8(hv) HvNAMEUTF8(hv) +#endif + +#endif + +#ifndef gv_fetchpvn_flags +#if defined(NEED_gv_fetchpvn_flags) +static GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types); +static +#else +extern GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types); +#endif + +#ifdef gv_fetchpvn_flags +# undef gv_fetchpvn_flags +#endif +#define gv_fetchpvn_flags(a,b,c,d) DPPP_(my_gv_fetchpvn_flags)(aTHX_ a,b,c,d) +#define Perl_gv_fetchpvn_flags DPPP_(my_gv_fetchpvn_flags) + +#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL) + +GV* +DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types) { + char *namepv = savepvn(name, len); + GV* stash = gv_fetchpv(namepv, TRUE, SVt_PVHV); + Safefree(namepv); + return stash; +} + +#endif +#endif +#ifndef GvSVn +# define GvSVn(gv) GvSV(gv) +#endif + +#ifndef isGV_with_GP +# define isGV_with_GP(gv) isGV(gv) +#endif + +#ifndef gv_fetchsv +# define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt) +#endif +#ifndef get_cvn_flags +# define get_cvn_flags(name, namelen, flags) get_cv(name, flags) +#endif + +#ifndef gv_init_pvn +# define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE) +#endif #ifndef WARN_ALL # define WARN_ALL 0 #endif @@ -5215,6 +6289,14 @@ DPPP_(my_warner)(U32 err, const char *pat, ...) # define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif +#ifndef newSVpvs_flags +# define newSVpvs_flags(str, flags) newSVpvn_flags(str "", sizeof(str) - 1, flags) +#endif + +#ifndef newSVpvs_share +# define newSVpvs_share(str) newSVpvn_share(str "", sizeof(str) - 1, 0) +#endif + #ifndef sv_catpvs # define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif @@ -5230,9 +6312,38 @@ DPPP_(my_warner)(U32 err, const char *pat, ...) #ifndef hv_stores # define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) #endif +#ifndef gv_fetchpvs +# define gv_fetchpvs(name, flags, svt) gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt) +#endif + +#ifndef gv_stashpvs +# define gv_stashpvs(name, flags) gv_stashpvn(name "", sizeof(name) - 1, flags) +#endif +#ifndef get_cvs +# define get_cvs(name, flags) get_cvn_flags(name "", sizeof(name)-1, flags) +#endif #ifndef SvGETMAGIC # define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif + +/* Some random bits for sv_unmagicext. These should probably be pulled in for + real and organized at some point */ +#ifndef HEf_SVKEY +# define HEf_SVKEY -2 +#endif + +#ifndef MUTABLE_PTR +#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) +# define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) +#else +# define MUTABLE_PTR(p) ((void *) (p)) +#endif +#endif +#ifndef MUTABLE_SV +# define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) +#endif + +/* end of random bits */ #ifndef PERL_MAGIC_sv # define PERL_MAGIC_sv '\0' #endif @@ -5548,6 +6659,100 @@ DPPP_(my_warner)(U32 err, const char *pat, ...) #endif +#if !defined(mg_findext) +#if defined(NEED_mg_findext) +static MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl); +static +#else +extern MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl); +#endif + +#define mg_findext DPPP_(my_mg_findext) +#define Perl_mg_findext DPPP_(my_mg_findext) + +#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) + +MAGIC * +DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl) { + if (sv) { + MAGIC *mg; + +#ifdef AvPAD_NAMELIST + assert(!(SvTYPE(sv) == SVt_PVAV && AvPAD_NAMELIST(sv))); +#endif + + for (mg = SvMAGIC (sv); mg; mg = mg->mg_moremagic) { + if (mg->mg_type == type && mg->mg_virtual == vtbl) + return mg; + } + } + + return NULL; +} + +#endif +#endif + +#if !defined(sv_unmagicext) +#if defined(NEED_sv_unmagicext) +static int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); +static +#else +extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); +#endif + +#ifdef sv_unmagicext +# undef sv_unmagicext +#endif +#define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c) +#define Perl_sv_unmagicext DPPP_(my_sv_unmagicext) + +#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) + +int +DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl) +{ + MAGIC* mg; + MAGIC** mgp; + + if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv)) + return 0; + mgp = &(SvMAGIC(sv)); + for (mg = *mgp; mg; mg = *mgp) { + const MGVTBL* const virt = mg->mg_virtual; + if (mg->mg_type == type && virt == vtbl) { + *mgp = mg->mg_moremagic; + if (virt && virt->svt_free) + virt->svt_free(aTHX_ sv, mg); + if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) { + if (mg->mg_len > 0) + Safefree(mg->mg_ptr); + else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */ + SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr)); + else if (mg->mg_type == PERL_MAGIC_utf8) + Safefree(mg->mg_ptr); + } + if (mg->mg_flags & MGf_REFCOUNTED) + SvREFCNT_dec(mg->mg_obj); + Safefree(mg); + } + else + mgp = &mg->mg_moremagic; + } + if (SvMAGIC(sv)) { + if (SvMAGICAL(sv)) /* if we're under save_magic, wait for restore_magic; */ + mg_magical(sv); /* else fix the flags now */ + } + else { + SvMAGICAL_off(sv); + SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT; + } + return 0; +} + +#endif +#endif + #ifdef USE_ITHREADS #ifndef CopFILE # define CopFILE(c) ((c)->cop_file) @@ -5587,8 +6792,8 @@ DPPP_(my_warner)(U32 err, const char *pat, ...) #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \ - || (CopSTASHPV(c) && HvNAME(hv) \ - && strEQ(CopSTASHPV(c), HvNAME(hv))))) + || (CopSTASHPV(c) && HvNAME(hv) \ + && strEQ(CopSTASHPV(c), HvNAME(hv))))) #endif #else @@ -5637,6 +6842,90 @@ DPPP_(my_warner)(U32 err, const char *pat, ...) #endif #endif /* USE_ITHREADS */ + +#if (PERL_BCDVERSION >= 0x5006000) +#ifndef caller_cx + +# if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) +static I32 +DPPP_dopoptosub_at(const PERL_CONTEXT *cxstk, I32 startingblock) +{ + I32 i; + + for (i = startingblock; i >= 0; i--) { + register const PERL_CONTEXT * const cx = &cxstk[i]; + switch (CxTYPE(cx)) { + default: + continue; + case CXt_EVAL: + case CXt_SUB: + case CXt_FORMAT: + return i; + } + } + return i; +} +# endif + +# if defined(NEED_caller_cx) +static const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp); +static +#else +extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp); +#endif + +#ifdef caller_cx +# undef caller_cx +#endif +#define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b) +#define Perl_caller_cx DPPP_(my_caller_cx) + +#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) + +const PERL_CONTEXT * +DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp) +{ + register I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix); + register const PERL_CONTEXT *cx; + register const PERL_CONTEXT *ccstack = cxstack; + const PERL_SI *top_si = PL_curstackinfo; + + for (;;) { + /* we may be in a higher stacklevel, so dig down deeper */ + while (cxix < 0 && top_si->si_type != PERLSI_MAIN) { + top_si = top_si->si_prev; + ccstack = top_si->si_cxstack; + cxix = DPPP_dopoptosub_at(ccstack, top_si->si_cxix); + } + if (cxix < 0) + return NULL; + /* caller() should not report the automatic calls to &DB::sub */ + if (PL_DBsub && GvCV(PL_DBsub) && cxix >= 0 && + ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub)) + count++; + if (!count--) + break; + cxix = DPPP_dopoptosub_at(ccstack, cxix - 1); + } + + cx = &ccstack[cxix]; + if (dbcxp) *dbcxp = cx; + + if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) { + const I32 dbcxix = DPPP_dopoptosub_at(ccstack, cxix - 1); + /* We expect that ccstack[dbcxix] is CXt_SUB, anyway, the + field below is defined for any cx. */ + /* caller() should not report the automatic calls to &DB::sub */ + if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) + cx = &ccstack[dbcxix]; + } + + return cx; +} + +# endif +#endif /* caller_cx */ +#endif /* 5.6.0 */ #ifndef IN_PERL_COMPILETIME # define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #endif @@ -5812,7 +7101,7 @@ DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (++s < send) { + if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; @@ -5860,7 +7149,7 @@ DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) } } } - } + } } } } @@ -5872,7 +7161,7 @@ DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) } } } - } + } } } numtype |= IS_NUMBER_IN_UV; @@ -6025,22 +7314,22 @@ DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul value_nv = (NV) value; } value_nv *= 2.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount. */ value_nv += (NV)(bit - '0'); continue; } if (bit == '_' && len && allow_underscores && (bit = s[1]) && (bit == '0' || bit == '1')) - { - --len; - ++s; + { + --len; + ++s; goto redo; - } + } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal binary digit '%c' ignored", *s); break; @@ -6048,10 +7337,10 @@ DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + || (!overflowed && value > 0xffffffff ) #endif - ) { - warn("Binary number > 0b11111111111111111111111111111111 non-portable"); + ) { + warn("Binary number > 0b11111111111111111111111111111111 non-portable"); } *len_p = s - start; if (!overflowed) { @@ -6111,7 +7400,7 @@ DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul } for (; len-- && *s; s++) { - xdigit = strchr((char *) PL_hexdigit, *s); + xdigit = strchr((char *) PL_hexdigit, *s); if (xdigit) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. @@ -6127,22 +7416,22 @@ DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul value_nv = (NV) value; } value_nv *= 16.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount of 16-tuples. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount of 16-tuples. */ value_nv += (NV)((xdigit - PL_hexdigit) & 15); continue; } if (*s == '_' && len && allow_underscores && s[1] - && (xdigit = strchr((char *) PL_hexdigit, s[1]))) - { - --len; - ++s; + && (xdigit = strchr((char *) PL_hexdigit, s[1]))) + { + --len; + ++s; goto redo; - } + } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal hexadecimal digit '%c' ignored", *s); break; @@ -6150,10 +7439,10 @@ DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + || (!overflowed && value > 0xffffffff ) #endif - ) { - warn("Hexadecimal number > 0xffffffff non-portable"); + ) { + warn("Hexadecimal number > 0xffffffff non-portable"); } *len_p = s - start; if (!overflowed) { @@ -6215,22 +7504,22 @@ DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul value_nv = (NV) value; } value_nv *= 8.0; - /* If an NV has not enough bits in its mantissa to - * represent a UV this summing of small low-order numbers - * is a waste of time (because the NV cannot preserve - * the low-order bits anyway): we could just remember when - * did we overflow and in the end just multiply value_nv by the - * right amount of 8-tuples. */ + /* If an NV has not enough bits in its mantissa to + * represent a UV this summing of small low-order numbers + * is a waste of time (because the NV cannot preserve + * the low-order bits anyway): we could just remember when + * did we overflow and in the end just multiply value_nv by the + * right amount of 8-tuples. */ value_nv += (NV)digit; continue; } if (digit == ('_' - '0') && len && allow_underscores && (digit = s[1] - '0') && (digit >= 0 && digit <= 7)) - { - --len; - ++s; + { + --len; + ++s; goto redo; - } + } /* Allow \octal to work the DWIM way (that is, stop scanning * as soon as non-octal characters are seen, complain only iff * someone seems to want to use the digits eight and nine). */ @@ -6243,10 +7532,10 @@ DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *resul if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 - || (!overflowed && value > 0xffffffff ) + || (!overflowed && value > 0xffffffff ) #endif - ) { - warn("Octal number > 037777777777 non-portable"); + ) { + warn("Octal number > 037777777777 non-portable"); } *len_p = s - start; if (!overflowed) { @@ -6287,14 +7576,40 @@ DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) retval = vsprintf(buffer, format, ap); #endif va_end(ap); - if (retval >= (int)len) - Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); + if (retval < 0 || (len > 0 && (Size_t)retval >= len)) + Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); return retval; } #endif #endif +#if !defined(my_sprintf) +#if defined(NEED_my_sprintf) +static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); +static +#else +extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); +#endif + +#define my_sprintf DPPP_(my_my_sprintf) +#define Perl_my_sprintf DPPP_(my_my_sprintf) + +#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) + +int +DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) +{ + va_list args; + va_start(args, pat); + vsprintf(buffer, pat, args); + va_end(args); + return strlen(buffer); +} + +#endif +#endif + #ifdef NO_XSLOCKS # ifdef dJMPENV # define dXCPT dJMPENV; int rEtV = 0 @@ -6368,6 +7683,257 @@ DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) return length; } +#endif +#endif +#ifndef PERL_PV_ESCAPE_QUOTE +# define PERL_PV_ESCAPE_QUOTE 0x0001 +#endif + +#ifndef PERL_PV_PRETTY_QUOTE +# define PERL_PV_PRETTY_QUOTE PERL_PV_ESCAPE_QUOTE +#endif + +#ifndef PERL_PV_PRETTY_ELLIPSES +# define PERL_PV_PRETTY_ELLIPSES 0x0002 +#endif + +#ifndef PERL_PV_PRETTY_LTGT +# define PERL_PV_PRETTY_LTGT 0x0004 +#endif + +#ifndef PERL_PV_ESCAPE_FIRSTCHAR +# define PERL_PV_ESCAPE_FIRSTCHAR 0x0008 +#endif + +#ifndef PERL_PV_ESCAPE_UNI +# define PERL_PV_ESCAPE_UNI 0x0100 +#endif + +#ifndef PERL_PV_ESCAPE_UNI_DETECT +# define PERL_PV_ESCAPE_UNI_DETECT 0x0200 +#endif + +#ifndef PERL_PV_ESCAPE_ALL +# define PERL_PV_ESCAPE_ALL 0x1000 +#endif + +#ifndef PERL_PV_ESCAPE_NOBACKSLASH +# define PERL_PV_ESCAPE_NOBACKSLASH 0x2000 +#endif + +#ifndef PERL_PV_ESCAPE_NOCLEAR +# define PERL_PV_ESCAPE_NOCLEAR 0x4000 +#endif + +#ifndef PERL_PV_ESCAPE_RE +# define PERL_PV_ESCAPE_RE 0x8000 +#endif + +#ifndef PERL_PV_PRETTY_NOCLEAR +# define PERL_PV_PRETTY_NOCLEAR PERL_PV_ESCAPE_NOCLEAR +#endif +#ifndef PERL_PV_PRETTY_DUMP +# define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE +#endif + +#ifndef PERL_PV_PRETTY_REGPROP +# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE +#endif + +/* Hint: pv_escape + * Note that unicode functionality is only backported to + * those perl versions that support it. For older perl + * versions, the implementation will fall back to bytes. + */ + +#ifndef pv_escape +#if defined(NEED_pv_escape) +static char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); +static +#else +extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); +#endif + +#ifdef pv_escape +# undef pv_escape +#endif +#define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f) +#define Perl_pv_escape DPPP_(my_pv_escape) + +#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) + +char * +DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str, + const STRLEN count, const STRLEN max, + STRLEN * const escaped, const U32 flags) +{ + const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\'; + const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc; + char octbuf[32] = "%123456789ABCDF"; + STRLEN wrote = 0; + STRLEN chsize = 0; + STRLEN readsize = 1; +#if defined(is_utf8_string) && defined(utf8_to_uvchr) + bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0; +#endif + const char *pv = str; + const char * const end = pv + count; + octbuf[0] = esc; + + if (!(flags & PERL_PV_ESCAPE_NOCLEAR)) + sv_setpvs(dsv, ""); + +#if defined(is_utf8_string) && defined(utf8_to_uvchr) + if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count)) + isuni = 1; +#endif + + for (; pv < end && (!max || wrote < max) ; pv += readsize) { + const UV u = +#if defined(is_utf8_string) && defined(utf8_to_uvchr) + isuni ? utf8_to_uvchr((U8*)pv, &readsize) : +#endif + (U8)*pv; + const U8 c = (U8)u & 0xFF; + + if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) { + if (flags & PERL_PV_ESCAPE_FIRSTCHAR) + chsize = my_snprintf(octbuf, sizeof octbuf, + "%" UVxf, u); + else + chsize = my_snprintf(octbuf, sizeof octbuf, + "%cx{%" UVxf "}", esc, u); + } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) { + chsize = 1; + } else { + if (c == dq || c == esc || !isPRINT(c)) { + chsize = 2; + switch (c) { + case '\\' : /* fallthrough */ + case '%' : if (c == esc) + octbuf[1] = esc; + else + chsize = 1; + break; + case '\v' : octbuf[1] = 'v'; break; + case '\t' : octbuf[1] = 't'; break; + case '\r' : octbuf[1] = 'r'; break; + case '\n' : octbuf[1] = 'n'; break; + case '\f' : octbuf[1] = 'f'; break; + case '"' : if (dq == '"') + octbuf[1] = '"'; + else + chsize = 1; + break; + default: chsize = my_snprintf(octbuf, sizeof octbuf, + pv < end && isDIGIT((U8)*(pv+readsize)) + ? "%c%03o" : "%c%o", esc, c); + } + } else { + chsize = 1; + } + } + if (max && wrote + chsize > max) { + break; + } else if (chsize > 1) { + sv_catpvn(dsv, octbuf, chsize); + wrote += chsize; + } else { + char tmp[2]; + my_snprintf(tmp, sizeof tmp, "%c", c); + sv_catpvn(dsv, tmp, 1); + wrote++; + } + if (flags & PERL_PV_ESCAPE_FIRSTCHAR) + break; + } + if (escaped != NULL) + *escaped= pv - str; + return SvPVX(dsv); +} + +#endif +#endif + +#ifndef pv_pretty +#if defined(NEED_pv_pretty) +static char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); +static +#else +extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); +#endif + +#ifdef pv_pretty +# undef pv_pretty +#endif +#define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g) +#define Perl_pv_pretty DPPP_(my_pv_pretty) + +#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) + +char * +DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count, + const STRLEN max, char const * const start_color, char const * const end_color, + const U32 flags) +{ + const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%'; + STRLEN escaped; + + if (!(flags & PERL_PV_PRETTY_NOCLEAR)) + sv_setpvs(dsv, ""); + + if (dq == '"') + sv_catpvs(dsv, "\""); + else if (flags & PERL_PV_PRETTY_LTGT) + sv_catpvs(dsv, "<"); + + if (start_color != NULL) + sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color)); + + pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR); + + if (end_color != NULL) + sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color)); + + if (dq == '"') + sv_catpvs(dsv, "\""); + else if (flags & PERL_PV_PRETTY_LTGT) + sv_catpvs(dsv, ">"); + + if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count) + sv_catpvs(dsv, "..."); + + return SvPVX(dsv); +} + +#endif +#endif + +#ifndef pv_display +#if defined(NEED_pv_display) +static char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); +static +#else +extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); +#endif + +#ifdef pv_display +# undef pv_display +#endif +#define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e) +#define Perl_pv_display DPPP_(my_pv_display) + +#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) + +char * +DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) +{ + pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP); + if (len > cur && pv[cur] == '\0') + sv_catpvs(dsv, "\\0"); + return SvPVX(dsv); +} + #endif #endif diff --git a/C.xs b/C.xs index ab96d9c6d..b2fa7c3e1 100644 --- a/C.xs +++ b/C.xs @@ -199,7 +199,7 @@ my_runops(pTHX) sv_setref_iv( rv, "B::PMOP", PTR2IV( op ) ); #if defined(DEBUGGING) && (PERL_VERSION > 7) if (DEBUG_D_TEST_) fprintf(stderr, "pmop %p => rx %s %p 0x%x %s\n", - op, PL_op_name[type], rx, op->op_pmflags, + op, PL_op_name[type], rx, (unsigned)op->op_pmflags, RX_WRAPPED(rx)); #endif hv_store_ent( regexp_hv, key, rv, 0 ); @@ -302,6 +302,7 @@ I32 name_count(hv) B::HV hv PPCODE: + PERL_UNUSED_VAR(RETVAL); if (SvOOK(hv)) PUSHi(HvAUX(hv)->xhv_name_count); else @@ -434,7 +435,7 @@ aux_list_thr(o) XSRETURN(len); } /* OP_MULTIDEREF */ -#if PERL_VERSION > 23 && defined(USE_CPERL) +#if PERL_VERSION > 23 && defined(OP_SIGNATURE) case OP_SIGNATURE: { UNOP_AUX_item *items = cUNOP_AUXo->op_aux; @@ -564,6 +565,7 @@ PPCODE: STRLEN len; U32 flags; const char *pv = CopLABEL_len_flags(cCOPo, &len, &flags); + PERL_UNUSED_VAR(RETVAL); ST(0) = pv ? sv_2mortal(newSVpvn_flags(pv, len, flags)) : &PL_sv_undef; } @@ -587,7 +589,7 @@ CODE: RETVAL = 1; if (PL_check[OP_PADSV] != PL_check[0]) { - char *package = CopSTASHPV(cop); + /*char *package = CopSTASHPV(cop);*/ #ifdef cop_hints_fetch_pvn hint = cop_hints_fetch_pvn(cop, "autovivification", strlen("autovivification"), a_hash, 0); #elif PERL_VERSION > 9 diff --git a/Changes b/Changes index da314cebf..19327436f 100644 --- a/Changes +++ b/Changes @@ -8,6 +8,7 @@ * C: handle cperl OP_SIGNATURE Fix refcount of cop hints hashes with 5.22-nt (#220) Add missing B::FAKEOP::rettype for cperl-5.24, causing SEGV on B::CC + Fixed shared xpviv with 5.24 on 32bit. Fix various compiler warnings in ByteLoader Fix bytecode.pl call in cperl core. diff --git a/lib/B/C.pm b/lib/B/C.pm index 0b477ee46..9a0ef5131 100644 --- a/lib/B/C.pm +++ b/lib/B/C.pm @@ -12,7 +12,7 @@ package B::C; use strict; -our $VERSION = '1.54_06'; +our $VERSION = '1.54_07'; our (%debug, $check, %Config); BEGIN { require B::C::Config; @@ -2783,8 +2783,7 @@ sub B::IV::save { if ($PERL524) { $svsect->add(sprintf( "NULL, $u32fmt, 0x%x, {".($C99?".svu_iv=":"").$ivx.'}', $sv->REFCNT, $svflags )); - $init->add(sprintf( "sv_list[%d].sv_any = (char*)&sv_list[%d] - %d;", $i, $i, - 2*$Config{ptrsize})); + $init->add(sprintf( "sv_list[%d].sv_any = (void*)&sv_list[%d] - sizeof(void*);", $i, $i)); } else { $svsect->add(sprintf( "&xpviv_list[%d], $u32fmt, 0x%x".($PERL510?', {'.($C99?".svu_iv=":"").$ivx.'}':''), $xpvivsect->index, $sv->REFCNT, $svflags )); diff --git a/t/TESTS b/t/TESTS index 4b0819095..501a5fc44 100644 --- a/t/TESTS +++ b/t/TESTS @@ -115,7 +115,7 @@ use Fcntl (); print "ok" if ( Fcntl::O_CREAT() >= 64 && &Fcntl::O_CREAT >= 64 ); >>>> ok ######################### 27 ################################ -my($fname,$tmp_fh);while(!open($tmp_fh,">",($fname=q{ccode28_} . rand(999999999999)))){$bail++;die "Failed to create a tmp file after 500 tries" if $bail>500;}print {$tmp_fh} q{$x="ok";1;};close($tmp_fh);sleep 1;require $fname;unlink($fname);print $x; +my($fname,$tmp_fh);while(!open($tmp_fh,">",($fname=q{ccode28_} . rand(999999999999)))){$bail++;die "Failed to create a tmp file after 500 tries" if $bail>500;}print {$tmp_fh} q{$x="ok";1;};close($tmp_fh);sleep 1;require "./$fname";unlink($fname);print $x; >>>> ok ######################### 28 ################################ diff --git a/t/c_argv.t b/t/c_argv.t index 8cc641b31..c73044fc0 100644 --- a/t/c_argv.t +++ b/t/c_argv.t @@ -5,10 +5,7 @@ BEGIN { unshift @INC, 't'; require TestBC; } -use Test::More ($ENV{PERL_CORE} - and ($Config{ccflags} =~ /-m32/ or $Config{cc} =~ / -m32/)) - ? (skip_all => "cc -m32 is not supported with PERL_CORE") - : (tests => 4); +use Test::More tests => 4; my $runperl = $^X =~ m/\s/ ? qq{"$^X"} : $^X; my $Mblib = Mblib(); diff --git a/t/e_perlcc.t b/t/e_perlcc.t index d3dacfb44..776fcd997 100644 --- a/t/e_perlcc.t +++ b/t/e_perlcc.t @@ -4,10 +4,37 @@ use strict; use Config; -use Test::More ($ENV{PERL_CORE} - and ($Config{ccflags} =~ /-m32/ or $Config{cc} =~ / -m32/)) - ? (skip_all => "cc -m32 is not supported with PERL_CORE") - : (tests => 79); +my @plan; +use File::Spec; +BEGIN { + @plan = (tests => 79); + if ($ENV{PERL_CORE}) { + #if ($Config{ccflags} =~ /-m32/ or $Config{cc} =~ / -m32/) { + # @plan = (skip_all => "cc -m32 is not supported with PERL_CORE"); + #} + if (-f File::Spec->catfile($Config{'sitearch'}, "Opcodes.pm")) { + @plan = (skip_all => '/Opcodes.pm installed. Possible XS conflict'); + } + if (-f File::Spec->catfile($Config{'sitearch'}, "B", "Flags.pm")) { + @plan = (skip_all => '/B/Flags.pm installed. Possible XS conflict'); + } + if ($^O eq 'MSWin32' and $Config{cc} eq 'cl.exe') { + @plan = (skip_all => 'B::C linkage not yet ready on MSWin32 MSVC'); + } + } + if ($^O eq 'VMS') { + @plan = (skip_all => "B::C doesn't work on VMS"); + } + if (($Config{'extensions'} !~ /\bB\b/) ) { + @plan = (skip_all => "Perl configured without B module"); + } + # with 5.10 and 5.8.9 PERL_COPY_ON_WRITE was renamed to PERL_OLD_COPY_ON_WRITE + if ($Config{ccflags} =~ /-DPERL_OLD_COPY_ON_WRITE/) { + @plan = (skip_all => "no OLD_COPY_ON_WRITE"); + } +} + +use Test::More @plan; my $usedl = $Config{usedl} eq 'define'; my $X = $^X =~ m/\s/ ? qq{"$^X"} : $^X; @@ -60,7 +87,7 @@ SKIP: { #skip "--staticxs hangs on darwin", 10 if $^O eq 'darwin'; TODO: { # fails 5.8 and sometimes on darwin, msvc also - local $TODO = '--staticxs is experimental' if $^O eq 'darwin' or $] < 5.010; + local $TODO = '--staticxs is experimental' if $] < 5.010 or $^O eq 'darwin'; is(`$perlcc --staticxs -r -e $e $devnull`, "ok", "-r --staticxs xs"); #13 ok(-e $a_exe, "keep default executable"); #14 } @@ -69,7 +96,7 @@ SKIP: { cleanup; TODO: { - local $TODO = '--staticxs is experimental' if $^O eq 'darwin' or $] < 5.010; + local $TODO = '--staticxs is experimental' if $] < 5.010 or $^O eq 'darwin'; is(`$perlcc --staticxs -S -o pcc -r -e $e $devnull`, "ok", "-S -o -r --staticxs xs"); #17 ok(-e $a, "keep executable"); #18 @@ -80,7 +107,7 @@ SKIP: { TODO: { # since 5.18 IO is re-added - local $TODO = '5.18 added IO (darwin)' if $] >= 5.018 and $^O eq 'darwin'; + local $TODO = '5.18 added IO (darwin only)' if $] >= 5.018 and $^O eq 'darwin'; is(`$perlcc --staticxs -S -o pcc -O3 -r -e "print q(ok)" $devnull`, "ok", #21 "-S -o -r --staticxs without xs"); } @@ -156,13 +183,15 @@ cleanup; isnt(`$perlcc --Wb=-fno-fold,-v -o pcc $f $redir`, '/Writing output/m', "--Wb=-fno-fold,-v -o file"); TODO: { + SKIP: { require B::C::Config if $] > 5.021006; local $TODO = "catch STDERR not STDOUT" if $^O =~ /bsd$/i; # fails freebsd only local $TODO = "5.6 BC does not understand -DG yet" if $] < 5.007; - local $TODO = "perl5.22 broke ByteLoader" + skip "perl5.22 broke ByteLoader", 1 if $] > 5.021006 and !$B::C::Config::have_byteloader; like(`$perlcc -B --Wb=-DG,-v -o pcc $f $redir`, "/-PV-/m", "-B -v5 --Wb=-DG -o file"); #51 + } } cleanup; is(`$perlcc -Wb=-O1 -r $f $devnull`, "ok", "old-style -Wb=-O1"); @@ -208,8 +237,8 @@ like(`$perlcc -BSr -opcc.plc -e $e $redir`, '/-S ignored/', "-BSr -o -e"); ok(-e 'pcc.plc', "pcc.plc file"); cleanup; -TODO: { - local $TODO = "perl5.22 broke ByteLoader" +SKIP: { + skip "perl5.22 broke ByteLoader", 1 if $] > 5.021006 and !$B::C::Config::have_byteloader; is(`$perlcc -Br -opcc.plc $f $devnull`, "ok", "-Br -o file"); } diff --git a/t/issue245.t b/t/issue245.t index 9b114dce0..224e1cf8c 100644 --- a/t/issue245.t +++ b/t/issue245.t @@ -20,6 +20,7 @@ my $TODO = "TODO " if $B::C::VERSION lt $fixed_with; $TODO = "" if $Config{useithreads}; $TODO = "" if $] < 5.010; my $todomsg = '#245 2nd static unicode char'; +# this is now with 5.24.0.c also a test for FAKE_SIGNATURES ctest(1,"b: 223", 'C,-O3','ccode245i', <<'EOF', $TODO.$todomsg); sub foo { my ( $a, $b ) = @_; diff --git a/t/stashes.t b/t/stashes.t index 25b073e54..50c209a45 100644 --- a/t/stashes.t +++ b/t/stashes.t @@ -1,6 +1,5 @@ #! /usr/bin/env perl # testc.sh 46, GH # -use Test::More tests => 6; use strict; BEGIN { if ($ENV{PERL_CORE}) { @@ -10,6 +9,7 @@ BEGIN { } require TestBC; } +use Test::More tests => 6; my $i=0; #use B::C ();