From 7dcc61dc0e23f6211d09a45cf49416de74a69804 Mon Sep 17 00:00:00 2001 From: Nicolas R Date: Fri, 31 Jul 2020 13:37:40 -0600 Subject: [PATCH] Devel-PPPort: Bump to upstream at 7180c297 These changes from Devel-PPPort are adding support for Perl 7.0 and fixes the testsuite with a Perl 7.0.0 binary. We would have to publish a new version of Devel-PPPort. --- dist/Devel-PPPort/Changes | 6 + dist/Devel-PPPort/HACKERS | 24 +- dist/Devel-PPPort/Makefile.PL | 2 + dist/Devel-PPPort/PPPort_pm.PL | 4 +- dist/Devel-PPPort/devel/mkapidoc.pl | 5 +- dist/Devel-PPPort/mktests.PL | 4 +- dist/Devel-PPPort/parts/apicheck.pl | 8 +- dist/Devel-PPPort/parts/apidoc.fnc | 11 + dist/Devel-PPPort/parts/base/5017006 | 1 - dist/Devel-PPPort/parts/base/5019003 | 1 + dist/Devel-PPPort/parts/base/5019009 | 1 - dist/Devel-PPPort/parts/base/5031006 | 5 - dist/Devel-PPPort/parts/base/5031007 | 6 + dist/Devel-PPPort/parts/base/5031008 | 1 - dist/Devel-PPPort/parts/embed.fnc | 1573 +++++++++++++------------- dist/Devel-PPPort/parts/inc/inctools | 65 +- dist/Devel-PPPort/parts/inc/misc | 24 +- dist/Devel-PPPort/parts/inc/ppphbin | 6 +- dist/Devel-PPPort/parts/inc/ppphtest | 8 +- dist/Devel-PPPort/parts/inc/utf8 | 19 +- dist/Devel-PPPort/parts/inc/version | 18 +- dist/Devel-PPPort/parts/ppptools.pl | 2 +- dist/Devel-PPPort/parts/todo/5003007 | 7 +- dist/Devel-PPPort/t/01_test.t | 4 +- dist/Devel-PPPort/t/HvNAME.t | 4 +- dist/Devel-PPPort/t/MY_CXT.t | 4 +- dist/Devel-PPPort/t/SvPV.t | 4 +- dist/Devel-PPPort/t/SvREFCNT.t | 4 +- dist/Devel-PPPort/t/Sv_set.t | 4 +- dist/Devel-PPPort/t/call.t | 4 +- dist/Devel-PPPort/t/cop.t | 4 +- dist/Devel-PPPort/t/exception.t | 4 +- dist/Devel-PPPort/t/format.t | 4 +- dist/Devel-PPPort/t/grok.t | 4 +- dist/Devel-PPPort/t/gv.t | 4 +- dist/Devel-PPPort/t/limits.t | 4 +- dist/Devel-PPPort/t/locale.t | 4 +- dist/Devel-PPPort/t/mPUSH.t | 4 +- dist/Devel-PPPort/t/magic.t | 4 +- dist/Devel-PPPort/t/memory.t | 4 +- dist/Devel-PPPort/t/mess.t | 4 +- dist/Devel-PPPort/t/misc.t | 4 +- dist/Devel-PPPort/t/newCONSTSUB.t | 4 +- dist/Devel-PPPort/t/newRV.t | 4 +- dist/Devel-PPPort/t/newSV_type.t | 4 +- dist/Devel-PPPort/t/newSVpv.t | 4 +- dist/Devel-PPPort/t/podtest.t | 4 +- dist/Devel-PPPort/t/ppphtest.t | 12 +- dist/Devel-PPPort/t/pv_tools.t | 4 +- dist/Devel-PPPort/t/pvs.t | 4 +- dist/Devel-PPPort/t/shared_pv.t | 4 +- dist/Devel-PPPort/t/snprintf.t | 4 +- dist/Devel-PPPort/t/sprintf.t | 4 +- dist/Devel-PPPort/t/strlfuncs.t | 4 +- dist/Devel-PPPort/t/sv_xpvf.t | 4 +- dist/Devel-PPPort/t/threads.t | 4 +- dist/Devel-PPPort/t/utf8.t | 6 +- dist/Devel-PPPort/t/uv.t | 4 +- dist/Devel-PPPort/t/variables.t | 4 +- dist/Devel-PPPort/t/warn.t | 4 +- 60 files changed, 1032 insertions(+), 927 deletions(-) diff --git a/dist/Devel-PPPort/Changes b/dist/Devel-PPPort/Changes index 2c7a1646639b..b2ec2d320752 100644 --- a/dist/Devel-PPPort/Changes +++ b/dist/Devel-PPPort/Changes @@ -1,5 +1,11 @@ Revision history for Devel-PPPort + 3.58 - 2020-03-09 + + * Safer definition of UVCHR_SKIP + * Make sure WIDEST_UTYPE is unsigned + * Avoid Pax Header in tarballs + 3.57 - 2020-01-31 * Fix eval_sv for Perl versions prior to 5.6.0 (Pali) diff --git a/dist/Devel-PPPort/HACKERS b/dist/Devel-PPPort/HACKERS index 03437942b1ca..5cf783afdba5 100644 --- a/dist/Devel-PPPort/HACKERS +++ b/dist/Devel-PPPort/HACKERS @@ -204,20 +204,24 @@ Perl public API. =item Version numbers -Version checking can be tricky to get correct (besides being buggy in some perl -versions). -C is used in the C<=tests> section to overcome this, and constructs +Version checking used to be tricky to get correct (besides being buggy in some +perl versions). +C is used in the C<=tests> section to overcome this. and constructs like the following in the C language sections. - #if { VERSION < 5.9.3 } + #if PERL_VERSION_EQ(5,9,3) + #if PERL_VERSION_NE(5,9,3) + #if PERL_VERSION_LT(5,9,3) + #if PERL_VERSION_GT(5,9,3) + #if PERL_VERSION_LE(5,9,3) + #if PERL_VERSION_GE(5,9,3) -instead of +An alternative way of saying things like these is - #if ((PERL_VERSION < 9) \ - || (PERL_VERSION == 9 && PERL_SUBVERSION < 3)) + #if { VERSION < 5.9.3 } -The version number can be either of the new form C<5.x.x> or the older -form C<5.00x_yy>. Both are translated into the correct preprocessor +In this form, the version number can be either of the new form C<5.x.x> or the +older form C<5.00x_yy>. Both are translated into the correct preprocessor statements. It is also possible to combine this with other statements: #if { VERSION >= 5.004 } && !defined(sv_vcatpvf) @@ -399,7 +403,7 @@ collect the remaining information in F. =item * The final step before regenerating everything is to run -F to update the F file. +F to update the F file. =back diff --git a/dist/Devel-PPPort/Makefile.PL b/dist/Devel-PPPort/Makefile.PL index bc5f502e98cd..9cc43283ae2a 100644 --- a/dist/Devel-PPPort/Makefile.PL +++ b/dist/Devel-PPPort/Makefile.PL @@ -219,6 +219,8 @@ sub MY::dist_core if ( $rule =~ m{^\s*^dist\s+:}m ) { $rule =~ s{:}{: PPPort.pm manifest}; # make sure we update PPPort.pm $rule .= qq[\t].q[$(NOECHO) $(ECHO) "Warning: Please check '__MAX_PERL__' value in PPPort_pm.PL"].qq[\n]; + # checking that the tarball has no Pax Header - avoid false positives by using [P]axHEader + $rule .= qq[\t].q[$(NOECHO) zgrep -a -e '[P]axHeader' $(DISTVNAME).tar$(SUFFIX) && ( $(ECHO) "ERROR: Pax Header detected in tarball"; rm -f $(DISTVNAME).tar$(SUFFIX) ) ||:].qq[\n]; } $updated .= $rule; } diff --git a/dist/Devel-PPPort/PPPort_pm.PL b/dist/Devel-PPPort/PPPort_pm.PL index f578954c198f..3c51fbea8f70 100644 --- a/dist/Devel-PPPort/PPPort_pm.PL +++ b/dist/Devel-PPPort/PPPort_pm.PL @@ -711,7 +711,7 @@ package Devel::PPPort; use strict; use vars qw($VERSION $data); -$VERSION = '3.57'; +$VERSION = '3.58'; sub _init_data { @@ -747,7 +747,7 @@ sub WriteFile __DATA__ #if 0 -<<'SKIP'; +my $void = <<'SKIP'; #endif /* ---------------------------------------------------------------------- diff --git a/dist/Devel-PPPort/devel/mkapidoc.pl b/dist/Devel-PPPort/devel/mkapidoc.pl index b3a5946f7c7b..6acbc4159335 100644 --- a/dist/Devel-PPPort/devel/mkapidoc.pl +++ b/dist/Devel-PPPort/devel/mkapidoc.pl @@ -23,7 +23,10 @@ use strict; my $PERLROOT = $ARGV[0]; -$PERLROOT = '../..' unless $PERLROOT; +unless ($PERLROOT) { + $PERLROOT = '../..'; + print STDERR "$0: perl directory root argument not specified. Assuming '$PERLROOT'\n"; +} die "'$PERLROOT' is invalid, or you haven't successfully run 'make' in it" unless -e "$PERLROOT/warnings.h"; diff --git a/dist/Devel-PPPort/mktests.PL b/dist/Devel-PPPort/mktests.PL index 217afefe7eca..5637eaf7240f 100644 --- a/dist/Devel-PPPort/mktests.PL +++ b/dist/Devel-PPPort/mktests.PL @@ -78,7 +78,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -110,7 +110,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/parts/apicheck.pl b/dist/Devel-PPPort/parts/apicheck.pl index 268ada46a4f2..1def2487aa97 100644 --- a/dist/Devel-PPPort/parts/apicheck.pl +++ b/dist/Devel-PPPort/parts/apicheck.pl @@ -339,7 +339,13 @@ # #ifdef out if marked as todo (not known in) this version if (exists $todo{$f->{'name'}}) { my($five, $ver,$sub) = parse_version($todo{$f->{'name'}}{'version'}); - print OUT "#if PERL_VERSION > $ver || (PERL_VERSION == $ver && PERL_SUBVERSION >= $sub) /* TODO */\n"; + print OUT < $five \\ + || ( PERL_REVISION == $five \\ + && ( PERL_VERSION > $ver \\ + || ( PERL_VERSION == $ver \\ + && PERL_SUBVERSION >= $sub))) /* TODO */ +EOT } my $final = $varargs diff --git a/dist/Devel-PPPort/parts/apidoc.fnc b/dist/Devel-PPPort/parts/apidoc.fnc index f45503839746..5b65d5eb2722 100644 --- a/dist/Devel-PPPort/parts/apidoc.fnc +++ b/dist/Devel-PPPort/parts/apidoc.fnc @@ -20,6 +20,7 @@ Amd|void|__ASSERT_|bool expr Amnhd||aTHX Amnhd||aTHX_ Amd|int|AvFILL|AV* av +md|int|AvFILLp|AV* av Amnd|I32|ax Amxud|void|BhkDISABLE|BHK *hk|which Amxud|void|BhkENABLE|BHK *hk|which @@ -583,13 +584,23 @@ AmnUhd||PERL_UQUAD_MIN AmnUhd||PERL_USHORT_MAX AmnUhd||PERL_USHORT_MIN hAmnd|int|PERL_VERSION +AmdR|bool|PERL_VERSION_EQ|const int r|const int v|const int s +AmdR|bool|PERL_VERSION_GE|const int r|const int v|const int s +AmdR|bool|PERL_VERSION_GT|const int r|const int v|const int s +AmdR|bool|PERL_VERSION_LE|const int r|const int v|const int s +AmdR|bool|PERL_VERSION_LT|const int r|const int v|const int s +AmdR|bool|PERL_VERSION_NE|const int r|const int v|const int s AmnUd|Perl_check_t *|PL_check AmnxUd|PAD *|PL_comppad AmnxUd|PADNAMELIST *|PL_comppad_name Amnd|COP*|PL_curcop AmnxUd|SV **|PL_curpad Amnd|HV*|PL_curstash +mnd|SV *|PL_DBsingle +mnd|GV *|PL_DBsub +mnd|SV *|PL_DBtrace Amnd|GV *|PL_defgv +mnd|U8|PL_dowarn Amnhd|GV *|PL_errgv Amnd|U8|PL_exit_flags AmnUxd|Perl_keyword_plugin_t|PL_keyword_plugin diff --git a/dist/Devel-PPPort/parts/base/5017006 b/dist/Devel-PPPort/parts/base/5017006 index 896dabc97461..6985bfc9c889 100644 --- a/dist/Devel-PPPort/parts/base/5017006 +++ b/dist/Devel-PPPort/parts/base/5017006 @@ -1,5 +1,4 @@ 5.017006 -croak_memory_wrap # U READ_XDIGIT # U croak_no_mem # F added by devel/scanprov get_and_check_backslash_N_name # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/base/5019003 b/dist/Devel-PPPort/parts/base/5019003 index 5bcd299ae56e..d5ee4835a248 100644 --- a/dist/Devel-PPPort/parts/base/5019003 +++ b/dist/Devel-PPPort/parts/base/5019003 @@ -2,6 +2,7 @@ PERL_EXIT_ABORT # E PERL_EXIT_WARN # E sv_pos_b2u_flags # U +croak_memory_wrap # M added by devel/scanprov adjust_size_and_find_bucket # F added by devel/scanprov cv_const_sv_or_av # F added by devel/scanprov _invlist_dump # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/base/5019009 b/dist/Devel-PPPort/parts/base/5019009 index 6789972a0ce6..9cc6b93028aa 100644 --- a/dist/Devel-PPPort/parts/base/5019009 +++ b/dist/Devel-PPPort/parts/base/5019009 @@ -1,4 +1,3 @@ 5.019009 WARN_EXPERIMENTAL__SIGNATURES # E -_get_regclass_nonbitmap_data # F added by devel/scanprov put_range # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/base/5031006 b/dist/Devel-PPPort/parts/base/5031006 index 231cc5ccc49a..e0f435ed5069 100644 --- a/dist/Devel-PPPort/parts/base/5031006 +++ b/dist/Devel-PPPort/parts/base/5031006 @@ -1,10 +1,5 @@ 5.031006 UTF8_CHK_SKIP # U -do_trans_count_invmap # F added by devel/scanprov -do_trans_invmap # F added by devel/scanprov -invmap_dump # F added by devel/scanprov _is_utf8_FOO # F added by devel/scanprov _is_utf8_perl_idcont # F added by devel/scanprov _is_utf8_perl_idstart # F added by devel/scanprov -make_exactf_invlist # F added by devel/scanprov -sv_derived_from_svpvn # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/base/5031007 b/dist/Devel-PPPort/parts/base/5031007 index b0206dce3485..61dd94b53c67 100644 --- a/dist/Devel-PPPort/parts/base/5031007 +++ b/dist/Devel-PPPort/parts/base/5031007 @@ -2,12 +2,18 @@ csighandler # E (Perl_csighandler) csighandler1 # U csighandler3 # E +memCHRs # U perly_sighandler # E sv_isa_sv # U WARN_EXPERIMENTAL__ISA # E +do_trans_count_invmap # F added by devel/scanprov +do_trans_invmap # F added by devel/scanprov find_first_differing_byte_pos # F added by devel/scanprov invlist_lowest # F added by devel/scanprov +invmap_dump # F added by devel/scanprov is_grapheme # F added by devel/scanprov +make_exactf_invlist # F added by devel/scanprov quadmath_format_valid # F added by devel/scanprov sighandler1 # F added by devel/scanprov sighandler3 # F added by devel/scanprov +sv_derived_from_svpvn # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/base/5031008 b/dist/Devel-PPPort/parts/base/5031008 index 7424595b8381..13f521a0c09c 100644 --- a/dist/Devel-PPPort/parts/base/5031008 +++ b/dist/Devel-PPPort/parts/base/5031008 @@ -1,4 +1,3 @@ 5.031008 -memCHRs # U grok_bin_oct_hex # F added by devel/scanprov output_non_portable # F added by devel/scanprov diff --git a/dist/Devel-PPPort/parts/embed.fnc b/dist/Devel-PPPort/parts/embed.fnc index 4bb864f1221e..589ab1a59cbb 100644 --- a/dist/Devel-PPPort/parts/embed.fnc +++ b/dist/Devel-PPPort/parts/embed.fnc @@ -91,9 +91,9 @@ : The E flag is used instead for a function and its short name that is supposed : to be used only in the core, and in extensions compiled with the : PERL_EXT symbol defined. Again, on some platforms, the function -: will be visible everywhere, so the 'p' flag is generally needed. -: Also note that an XS writer can always cheat and pretend to be an -: extension by #defining PERL_EXT. +: will be visible everywhere, so one of the 'p' or 'S' flags is +: generally needed. Also note that an XS writer can always cheat +: and pretend to be an extension by #defining PERL_EXT. : : The X flag is similar to the C flag in that the function (whose entry better : have the 'p' flag) is accessible everywhere on all platforms. @@ -248,11 +248,19 @@ : : f Function takes a format string. If the function name =~ qr/strftime/ : then it is assumed to take a strftime-style format string as the 1st -: arg; otherwise it's assumed to be a printf style format string, varargs -: (hence any entry that would otherwise go in embed.h is suppressed): +: arg; otherwise it's assumed to take a printf style format string, not +: necessarily the 1st arg. All the arguments following it (including +: possibly '...') are assumed to be for the format. : +: embed.h: any entry in here is suppressed because of varargs : proto.h: add __attribute__format__ (or ...null_ok__) : +: F Function has a '...' parameter, but don't assume it is a format. This +: is to make sure that new functions with formats can't be added without +: considering if they are format functions or not. A reason to use this +: flag even on a format function is if the format would generate +: error: format string argument is not a string type +: : G Suppress empty PERL_ARGS_ASSERT_foo macro. Normally such a macro is : generated for all entries for functions 'foo' in this file. If there is : a pointer argument to 'foo', it needs to be declared in this file as @@ -277,6 +285,13 @@ : pod, such as perlguts or warnings.h. This flag is useful for downstream : programs, such as Devel::PPPort. : +: I This flag works exactly the same as 'i' but it also adds +: __attribute__((always_inline)) or __forceinline if either of them is +: supported by the compiler. +: +: proto.h: function is declared as PERL_STATIC_FORCE_INLINE and +: __attribute__always_inline__ is added +: : i inline static. This is used for functions that the compiler is being : requested to inline. If the function is in a header file its : definition will be visible (unless guarded by #if..#endif) to all @@ -438,6 +453,8 @@ : : Individual flags may be separated by non-tab whitespace. +CipRTX |char * |mortal_getenv |NN const char * str + #if defined(PERL_IMPLICIT_SYS) ATo |PerlInterpreter*|perl_alloc_using \ |NN struct IPerlMem *ipM \ @@ -583,7 +600,7 @@ AfTrp |void |croak_nocontext|NULLOK const char* pat|... AfTrp |OP* |die_nocontext |NULLOK const char* pat|... AfTp |void |deb_nocontext |NN const char* pat|... AfTp |char* |form_nocontext |NN const char* pat|... -ATp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|... +AFTp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|... AfTp |SV* |mess_nocontext |NN const char* pat|... AfTp |void |warn_nocontext |NN const char* pat|... AfTp |void |warner_nocontext|U32 err|NN const char* pat|... @@ -855,7 +872,7 @@ Apd |GV* |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \ |I32 autoload Apx |GV* |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags Apx |GV* |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \ - |U32 flags + |U32 flags Apx |GV* |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \ |const STRLEN len|U32 flags Ap |GV* |gv_fetchpv |NN const char *nambeg|I32 add|const svtype sv_type @@ -983,6 +1000,10 @@ p |bool |io_close |NN IO* io|NULLOK GV *gv \ |bool not_implicit|bool warn_on_fail : Used in perly.y pR |OP* |invert |NULLOK OP* cmd +pR |OP* |cmpchain_start |I32 type|NULLOK OP* left \ + |NULLOK OP* right +pR |OP* |cmpchain_extend|I32 type|NN OP* ch|NULLOK OP* right +pR |OP* |cmpchain_finish|NN OP* ch ApR |I32 |is_lvalue_sub : Used in cop.h XopR |I32 |was_lvalue_sub @@ -999,9 +1020,6 @@ STR |int |is_utf8_cp_above_31_bits|NN const U8 * const s \ |const bool consider_overlongs # endif #endif -#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -EXTp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags -#endif #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C) p |UV |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s #endif @@ -1086,7 +1104,7 @@ EXdpR |bool |isSCRIPT_RUN |NN const U8 *s|NN const U8 *send \ #endif : Used in perly.y p |OP* |jmaybe |NN OP *o -: Used in pp.c +: Used in pp.c pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords #if defined(PERL_IN_OP_C) S |void |inplace_aassign |NN OP* o @@ -1131,48 +1149,11 @@ ApdT |OP* |op_parent|NN OP *o S |OP* |listkids |NULLOK OP* o #endif p |OP* |list |NULLOK OP* o -Apd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|... +AFpd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|... Ap |void |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args : Used in perly.y p |OP* |localize |NN OP *o|I32 lex ApdR |I32 |looks_like_number|NN SV *const sv -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C) -EpRX |bool |grok_bslash_x |NN char** s \ - |NN const char* const send \ - |NN UV* uv \ - |NN const char** message \ - |NULLOK U32 * packed_warn \ - |const bool strict \ - |const bool allow_UV_MAX \ - |const bool utf8 -EpRX |bool |grok_bslash_c |const char source \ - |NN U8 * result \ - |NN const char** message \ - |NULLOK U32 * packed_warn -EpRX |bool |grok_bslash_o |NN char** s \ - |NN const char* const send \ - |NN UV* uv \ - |NN const char** message \ - |NULLOK U32 * packed_warn \ - |const bool strict \ - |const bool allow_UV_MAX \ - |const bool utf8 -EpRX |const char *|form_alien_digit_msg|const U8 which \ - |const STRLEN valids_len \ - |NN const char * const first_bad\ - |NN const char * const send \ - |const bool UTF \ - |const bool braced -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) -EiRT |bool |regcurly |NN const char *s -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_UTF8_C) -EpRX |const char *|form_cp_too_large_msg|const U8 which \ - |NULLOK const char * string \ - |const Size_t len \ - |const UV cp -#endif AMpd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result Apd |int |grok_infnan |NN const char** sp|NN const char *send Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep @@ -1252,7 +1233,7 @@ p |int |magic_setutf8 |NN SV* sv|NN MAGIC* mg p |int |magic_set_all_env|NN SV* sv|NN MAGIC* mg p |U32 |magic_sizepack |NN SV* sv|NN MAGIC* mg p |int |magic_wipepack |NN SV* sv|NN MAGIC* mg -pod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \ +Fpod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \ |NN SV *meth|U32 flags \ |U32 argc|... Ap |I32 * |markstack_grow @@ -1484,7 +1465,7 @@ dopx |PerlIO*|start_glob |NN SV *tmpglob|NN IO *io Ap |void |reentrant_size Ap |void |reentrant_init Ap |void |reentrant_free -ATp |void* |reentrant_retry|NN const char *f|... +AFTp |void* |reentrant_retry|NN const char *f|... : "Very" special - can't use the O flag for this one: : (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef) @@ -1522,7 +1503,7 @@ ApxT |void |thread_locale_term ApdO |void |require_pv |NN const char* pv AbpdM |void |pack_cat |NN SV *cat|NN const char *pat|NN const char *patend \ |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags -Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist +Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C) S |void |pidgone |Pid_t pid|int status #endif @@ -1541,65 +1522,6 @@ ApMb |OP* |ref |NULLOK OP* o|I32 type #if defined(PERL_IN_OP_C) S |OP* |refkids |NULLOK OP* o|I32 type #endif -Ap |void |regdump |NN const regexp* r -CiTop |struct regexp *|ReANY |NN const REGEXP * const re -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C) -EXpR |SV* |_new_invlist_C_array|NN const UV* const list -EXp |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b -#endif -Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \ - |NN char* strend|NN char* strbeg \ - |SSize_t minend |NN SV* screamer|U32 nosave -Ap |void |pregfree |NULLOK REGEXP* r -Ap |void |pregfree2 |NN REGEXP *rx -: FIXME - is anything in re using this now? -EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* dsv|NN REGEXP* ssv -Ap |void |regfree_internal|NN REGEXP *const rx -#if defined(USE_ITHREADS) -Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param -#endif -EXp |regexp_engine const *|current_re_engine -Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags -p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \ - |int pat_count|NULLOK OP *expr \ - |NN const regexp_engine* eng \ - |NULLOK REGEXP *old_re \ - |NULLOK bool *is_bare_re \ - |const U32 rx_flags|const U32 pm_flags -Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags -Cp |char* |re_intuit_start|NN REGEXP * const rx \ - |NULLOK SV* sv \ - |NN const char* const strbeg \ - |NN char* strpos \ - |NN char* strend \ - |const U32 flags \ - |NULLOK re_scream_pos_data *data -Cp |SV* |re_intuit_string|NN REGEXP *const r -Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \ - |NN char *strend|NN char *strbeg \ - |SSize_t minend|NN SV *sv \ - |NULLOK void *data|U32 flags -ApR |regnode*|regnext |NULLOK regnode* p -EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \ - |NULLOK SV * const value|const U32 flags -EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \ - |const U32 flags -Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags -Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags -Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags - -: FIXME - is anything in re using this now? -EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv -: FIXME - is anything in re using this now? -EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value -: FIXME - is anything in re using this now? -EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren - -: FIXME - is anything in re using this now? -EXp |SV*|reg_qr_package|NN REGEXP * const rx ATp |void |repeatcpy |NN char* to|NN const char* from|I32 len|IV count AdTpP |char* |rninstr |NN const char* big|NN const char* bigend \ @@ -1900,122 +1822,557 @@ Apd |void |sv_vsetpvfn |NN SV *const sv|NN const char *const pat|const STRLEN pa |NULLOK va_list *const args|NULLOK SV **const svargs \ |const Size_t sv_count|NULLOK bool *const maybe_tainted ApR |NV |str_to_version |NN SV *sv -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C) -EiR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp -Ei |void |invlist_extend |NN SV* const invlist|const UV len -Ei |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset -EiRT |UV |invlist_highest|NN SV* const invlist -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) -EiRT |STRLEN*|get_invlist_iter_addr |NN SV* invlist -EiT |void |invlist_iterinit|NN SV* invlist -EiRT |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end -EiT |void |invlist_iterfinish|NN SV* invlist +Ap |void |regdump |NN const regexp* r +CiTop |struct regexp *|ReANY |NN const REGEXP * const re +Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \ + |NN char* strend|NN char* strbeg \ + |SSize_t minend |NN SV* screamer|U32 nosave +Ap |void |pregfree |NULLOK REGEXP* r +Ap |void |pregfree2 |NN REGEXP *rx +: FIXME - is anything in re using this now? +EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* dsv|NN REGEXP* ssv +Ap |void |regfree_internal|NN REGEXP *const rx +#if defined(USE_ITHREADS) +Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param #endif +EXp |regexp_engine const *|current_re_engine +Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags +p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \ + |int pat_count|NULLOK OP *expr \ + |NN const regexp_engine* eng \ + |NULLOK REGEXP *old_re \ + |NULLOK bool *is_bare_re \ + |const U32 rx_flags|const U32 pm_flags +Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags +Cp |char* |re_intuit_start|NN REGEXP * const rx \ + |NULLOK SV* sv \ + |NN const char* const strbeg \ + |NN char* strpos \ + |NN char* strend \ + |const U32 flags \ + |NULLOK re_scream_pos_data *data +Cp |SV* |re_intuit_string|NN REGEXP *const r +Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \ + |NN char *strend|NN char *strbeg \ + |SSize_t minend|NN SV *sv \ + |NULLOK void *data|U32 flags +ApR |regnode*|regnext |NULLOK regnode* p +EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \ + |NULLOK SV * const value|const U32 flags +EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \ + |const U32 flags +Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags +Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags +Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags + +: FIXME - is anything in re using this now? +EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv +: FIXME - is anything in re using this now? +EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value +: FIXME - is anything in re using this now? +EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren + +: FIXME - is anything in re using this now? +EXp |SV*|reg_qr_package|NN REGEXP * const rx +EXpRT |I16 |do_uniprop_match|NN const char * const key|const U16 key_len +EXpRT |const char * const *|get_prop_values|const int table_index +EXpR |SV * |get_prop_definition|const int table_index +EXpRT |const char *|get_deprecated_property_msg|const Size_t warning_offset #if defined(PERL_IN_REGCOMP_C) EiRT |bool |invlist_is_iterating|NN SV* const invlist EiR |SV* |invlist_contents|NN SV* const invlist \ |const bool traditional_style EixRT |UV |invlist_lowest|NN SV* const invlist -#ifndef PERL_EXT_RE_BUILD -EiRT |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0 -EiRT |UV |invlist_max |NN SV* const invlist -EiRT |IV* |get_invlist_previous_index_addr|NN SV* invlist -EiT |void |invlist_set_previous_index|NN SV* const invlist|const IV index -EiRT |IV |invlist_previous_index|NN SV* const invlist -EiT |void |invlist_trim |NN SV* invlist -Ei |void |invlist_clear |NN SV* invlist -#endif ESRT |bool |new_regcurly |NN const char *s|NN const char *e ERS |SV* |make_exactf_invlist |NN RExC_state_t *pRExC_state \ |NN regnode *node -#ifndef PERL_EXT_RE_BUILD -ES |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end -ES |void |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src -S |void |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size -#endif -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C) -m |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i -EXp |void |_invlist_intersection_maybe_complement_2nd \ - |NULLOK SV* const a|NN SV* const b \ - |const bool complement_b|NN SV** i -Cm |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output -EXp |void |_invlist_union_maybe_complement_2nd \ - |NULLOK SV* const a|NN SV* const b \ - |const bool complement_b|NN SV** output -m |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result -EXp |void |_invlist_invert|NN SV* const invlist -EXpR |SV* |_new_invlist |IV initial_size -EXpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|UV start|UV end -EXpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C) -EpX |SV* |invlist_clone |NN SV* const invlist|NULLOK SV* newlist -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) \ - || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) \ - || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C) \ - || defined(PERL_IN_DOOP_C) -EiRT |UV* |invlist_array |NN SV* const invlist -EiRT |bool |is_invlist |NULLOK SV* const invlist -EiRT |bool* |get_invlist_offset_addr|NN SV* invlist -EiRT |UV |_invlist_len |NN SV* const invlist -EiRT |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp -EXpRT |SSize_t|_invlist_search |NN SV* const invlist|const UV cp -#endif -#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C) -EiT |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp -#endif -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -EXp |SV* |_get_regclass_nonbitmap_data \ - |NULLOK const regexp *prog \ - |NN const struct regnode *node \ - |bool doinit \ - |NULLOK SV **listsvp \ - |NULLOK SV **lonly_utf8_locale \ - |NULLOK SV **output_invlist -#endif -#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) -EXp |void |_invlist_dump |NN PerlIO *file|I32 level \ - |NN const char* const indent \ - |NN SV* const invlist -#endif -Ap |void |taint_env -Ap |void |taint_proper |NULLOK const char* f|NN const char *const s -EXp |char * |_byte_dump_string \ - |NN const U8 * const start \ - |const STRLEN len \ - |const bool format -#if defined(PERL_IN_UTF8_C) -iTR |int |does_utf8_overflow|NN const U8 * const s \ - |NN const U8 * e \ - |const bool consider_overlongs -iTR |int |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \ - |const STRLEN len -iTR |int |isFF_OVERLONG |NN const U8 * const s|const STRLEN len -SR |char * |unexpected_non_continuation_text \ - |NN const U8 * const s \ - |STRLEN print_len \ - |const STRLEN non_cont_byte_pos \ - |const STRLEN expect_len -#if 0 /* Not currently used, but may be needed in the future */ -S |void |warn_on_first_deprecated_use \ - |NN const char * const name \ - |NN const char * const alternative \ - |const bool use_locale \ - |NN const char * const file \ - |const unsigned line -#endif -S |UV |_to_utf8_case |const UV uv1 \ - |NULLOK const U8 *p \ - |NN U8* ustrp \ - |NN STRLEN *lenp \ - |NN SV *invlist \ - |NN const I32 * const invmap \ - |NULLOK const U32 * const * const aux_tables \ - |NULLOK const U8 * const aux_table_lengths \ - |NN const char * const normal +ES |regnode_offset|reg |NN RExC_state_t *pRExC_state \ + |I32 paren|NN I32 *flagp|U32 depth +ES |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state \ + |const U8 op \ + |const STRLEN extra_len \ + |NN const char* const name +ES |void |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size +ES |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \ + |U32 arg +ES |regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \ + |NN SV * arg +ES |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state \ + |const U8 op \ + |const U32 arg1 \ + |const I32 arg2 +ES |regnode_offset|regatom |NN RExC_state_t *pRExC_state \ + |NN I32 *flagp|U32 depth +ES |regnode_offset|regbranch |NN RExC_state_t *pRExC_state \ + |NN I32 *flagp|I32 first|U32 depth +ES |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \ + |NN regnode* const node \ + |NULLOK SV* const cp_list \ + |NULLOK SV* const runtime_defns \ + |NULLOK SV* const only_utf8_locale_list +ES |void |output_posix_warnings \ + |NN RExC_state_t *pRExC_state \ + |NN AV* posix_warnings +EiT |Size_t |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max +ES |AV* |add_multi_match|NULLOK AV* multi_char_matches \ + |NN SV* multi_string \ + |const STRLEN cp_count +ES |regnode_offset|regclass|NN RExC_state_t *pRExC_state \ + |NN I32 *flagp|U32 depth|const bool stop_at_1 \ + |bool allow_multi_fold \ + |const bool silence_non_portable \ + |const bool strict \ + |bool optimizable \ + |NULLOK SV** ret_invlist +ES |SV * |parse_uniprop_string|NN const char * const name \ + |Size_t name_len \ + |const bool is_utf8 \ + |const bool to_fold \ + |const bool runtime \ + |const bool deferrable \ + |NULLOK AV ** strings \ + |NN bool * user_defined_ptr \ + |NN SV * msg \ + |const STRLEN level +ES |SV * |handle_user_defined_property|NN const char * name \ + |const STRLEN name_len \ + |const bool is_utf8 \ + |const bool to_fold \ + |const bool runtime \ + |const bool deferrable \ + |NN SV* contents \ + |NN bool *user_defined_ptr \ + |NN SV * msg \ + |const STRLEN level +ERS |REGEXP*|compile_wildcard|NN const char * subpattern|const STRLEN len\ + |const bool ignore_case +ES |I32 |execute_wildcard|NN REGEXP * const prog|NN char* stringarg \ + |NN char* strend|NN char* strbeg \ + |SSize_t minend |NN SV* screamer|U32 nosave +ES |bool |handle_names_wildcard \ + |NN const char * wname \ + |const STRLEN wname_len \ + |NN SV ** prop_definition \ + |NN AV ** strings +ES |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \ + |NN SV** invlist +ES |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state \ + |NN I32 *flagp \ + |NN char * parse_start \ + |char ch +ESTR |unsigned int|regex_set_precedence|const U8 my_operator +ES |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \ + |NULLOK SV ** return_invlist \ + |NN I32 *flagp|U32 depth \ + |NN char * const oregcomp_parse +ES |void |set_regex_pv |NN RExC_state_t *pRExC_state|NN REGEXP *Rx +# if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING) +ES |void |dump_regex_sets_structures \ + |NN RExC_state_t *pRExC_state \ + |NN AV * stack \ + |const IV fence|NN AV * fence_stack +# endif +ES |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state +ES |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op +ES |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \ + |NN I32 *flagp|U32 depth +ES |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \ + |NULLOK regnode_offset* nodep \ + |NULLOK UV *code_point_p \ + |NULLOK int* cp_count \ + |NN I32 *flagp \ + |const bool strict \ + |const U32 depth +ES |void |reginsert |NN RExC_state_t *pRExC_state \ + |const U8 op \ + |const regnode_offset operand \ + |const U32 depth +ESR |bool |regtail |NN RExC_state_t * pRExC_state \ + |NN const regnode_offset p \ + |NN const regnode_offset val \ + |const U32 depth +ES |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \ + |U32 flags +ES |U32 |join_exact |NN RExC_state_t *pRExC_state \ + |NN regnode *scan|NN UV *min_subtract \ + |NN bool *unfolded_multi_char \ + |U32 flags|NULLOK regnode *val|U32 depth +EST |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state +ES |void |nextchar |NN RExC_state_t *pRExC_state +ES |void |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state \ + |NN char ** p \ + |const bool force_to_xmod +EiT |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p +ES |void |scan_commit |NN const RExC_state_t *pRExC_state \ + |NN struct scan_data_t *data \ + |NN SSize_t *minlenp \ + |int is_inf +ES |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr +ES |void |ssc_anything |NN regnode_ssc *ssc +ESRT |int |ssc_is_anything|NN const regnode_ssc *ssc +ES |void |ssc_init |NN const RExC_state_t *pRExC_state \ + |NN regnode_ssc *ssc +ESRT |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \ + |NN const regnode_ssc *ssc +ES |void |ssc_and |NN const RExC_state_t *pRExC_state \ + |NN regnode_ssc *ssc \ + |NN const regnode_charclass *and_with +ES |void |ssc_or |NN const RExC_state_t *pRExC_state \ + |NN regnode_ssc *ssc \ + |NN const regnode_charclass *or_with +ES |SV* |get_ANYOF_cp_list_for_ssc \ + |NN const RExC_state_t *pRExC_state \ + |NN const regnode_charclass* const node +ES |void |ssc_intersection|NN regnode_ssc *ssc \ + |NN SV* const invlist|const bool invert_2nd +ES |void |ssc_union |NN regnode_ssc *ssc \ + |NN SV* const invlist|const bool invert_2nd +ES |void |ssc_add_range |NN regnode_ssc *ssc \ + |UV const start|UV const end +ES |void |ssc_cp_and |NN regnode_ssc *ssc \ + |UV const cp +EST |void |ssc_clear_locale|NN regnode_ssc *ssc +ETS |bool |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \ + |NN const regnode_ssc * ssc +ES |void |ssc_finalize |NN RExC_state_t *pRExC_state \ + |NN regnode_ssc *ssc +ES |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \ + |NN regnode **scanp|NN SSize_t *minlenp \ + |NN SSize_t *deltap|NN regnode *last \ + |NULLOK struct scan_data_t *data \ + |I32 stopparen|U32 recursed_depth \ + |NULLOK regnode_ssc *and_withp \ + |U32 flags|U32 depth|bool was_mutate_ok +ES |void |rck_elide_nothing|NN regnode *node +ESR |SV * |get_ANYOFM_contents|NN const regnode * n +ESRT |U32 |add_data |NN RExC_state_t* const pRExC_state \ + |NN const char* const s|const U32 n +frS |void |re_croak |bool utf8|NN const char* pat|... +ES |int |handle_possible_posix \ + |NN RExC_state_t *pRExC_state \ + |NN const char* const s \ + |NULLOK char ** updated_parse_ptr \ + |NULLOK AV** posix_warnings \ + |const bool check_only +ES |I32 |make_trie |NN RExC_state_t *pRExC_state \ + |NN regnode *startbranch|NN regnode *first \ + |NN regnode *last|NN regnode *tail \ + |U32 word_count|U32 flags|U32 depth +ES |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \ + |NN regnode *source|U32 depth +ETSR |int |edit_distance |NN const UV *src \ + |NN const UV *tgt \ + |const STRLEN x \ + |const STRLEN y \ + |const SSize_t maxDistance +# ifdef DEBUGGING +EFp |int |re_indentf |NN const char *fmt|U32 depth|... +ES |void |regdump_intflags|NULLOK const char *lead| const U32 flags +ES |void |regdump_extflags|NULLOK const char *lead| const U32 flags +ES |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \ + |NN const regnode *node \ + |NULLOK const regnode *last \ + |NULLOK const regnode *plast \ + |NN SV* sv|I32 indent|U32 depth +ES |void |put_code_point |NN SV* sv|UV c +ES |bool |put_charclass_bitmap_innards|NN SV* sv \ + |NULLOK char* bitmap \ + |NULLOK SV* nonbitmap_invlist \ + |NULLOK SV* only_utf8_locale_invlist\ + |NULLOK const regnode * const node \ + |const U8 flags \ + |const bool force_as_is_display +ES |SV* |put_charclass_bitmap_innards_common \ + |NN SV* invlist \ + |NULLOK SV* posixes \ + |NULLOK SV* only_utf8 \ + |NULLOK SV* not_utf8 \ + |NULLOK SV* only_utf8_locale \ + |const bool invert +ES |void |put_charclass_bitmap_innards_invlist \ + |NN SV *sv \ + |NN SV* invlist +ES |void |put_range |NN SV* sv|UV start|const UV end \ + |const bool allow_literals +ES |void |dump_trie |NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 depth +ES |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 next_alloc|U32 depth +ES |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\ + |NULLOK HV* widecharmap|NN AV *revcharmap\ + |U32 next_alloc|U32 depth +ESR |bool |regtail_study |NN RExC_state_t *pRExC_state \ + |NN regnode_offset p|NN const regnode_offset val|U32 depth +# endif +# ifndef PERL_EXT_RE_BUILD +EiRT |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0 +EiRT |UV |invlist_max |NN SV* const invlist +EiRT |IV* |get_invlist_previous_index_addr|NN SV* invlist +EiT |void |invlist_set_previous_index|NN SV* const invlist|const IV index +EiRT |IV |invlist_previous_index|NN SV* const invlist +EiT |void |invlist_trim |NN SV* invlist +Ei |void |invlist_clear |NN SV* invlist +ES |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end +ES |void |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src +S |void |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size +# endif +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) +EiR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp +Ei |void |invlist_extend |NN SV* const invlist|const UV len +Ei |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset +EiRT |UV |invlist_highest|NN SV* const invlist +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C) +m |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i +EXp |void |_invlist_intersection_maybe_complement_2nd \ + |NULLOK SV* const a|NN SV* const b \ + |const bool complement_b|NN SV** i +Cm |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output +EXp |void |_invlist_union_maybe_complement_2nd \ + |NULLOK SV* const a|NN SV* const b \ + |const bool complement_b|NN SV** output +m |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result +EXp |void |_invlist_invert|NN SV* const invlist +EXpR |SV* |_new_invlist |IV initial_size +EXpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|UV start|UV end +EXpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) +EpRX |bool |grok_bslash_x |NN char** s \ + |NN const char* const send \ + |NN UV* uv \ + |NN const char** message \ + |NULLOK U32 * packed_warn \ + |const bool strict \ + |const bool allow_UV_MAX \ + |const bool utf8 +EpRX |bool |grok_bslash_c |const char source \ + |NN U8 * result \ + |NN const char** message \ + |NULLOK U32 * packed_warn +EpRX |bool |grok_bslash_o |NN char** s \ + |NN const char* const send \ + |NN UV* uv \ + |NN const char** message \ + |NULLOK U32 * packed_warn \ + |const bool strict \ + |const bool allow_UV_MAX \ + |const bool utf8 +EpRX |const char *|form_alien_digit_msg|const U8 which \ + |const STRLEN valids_len \ + |NN const char * const first_bad\ + |NN const char * const send \ + |const bool UTF \ + |const bool braced +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) +EpRX |const char *|form_cp_too_large_msg|const U8 which \ + |NULLOK const char * string \ + |const Size_t len \ + |const UV cp +#endif +#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) +EXp |void |_invlist_dump |NN PerlIO *file|I32 level \ + |NN const char* const indent \ + |NN SV* const invlist +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) +EiRT |STRLEN*|get_invlist_iter_addr |NN SV* invlist +EiT |void |invlist_iterinit|NN SV* invlist +EiRT |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end +EiT |void |invlist_iterfinish|NN SV* invlist +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C) +EXpR |SV* |_new_invlist_C_array|NN const UV* const list +EXp |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C) +EiT |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) \ + || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C) \ + || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) \ + || defined(PERL_IN_DOOP_C) +EiRT |UV* |invlist_array |NN SV* const invlist +EiRT |bool |is_invlist |NULLOK SV* const invlist +EiRT |bool* |get_invlist_offset_addr|NN SV* invlist +EiRT |UV |_invlist_len |NN SV* const invlist +EiRT |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp +EXpRT |SSize_t|_invlist_search |NN SV* const invlist|const UV cp +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) +# ifndef PERL_EXT_RE_BUILD +Ep |SV* |get_regclass_nonbitmap_data \ + |NULLOK const regexp *prog \ + |NN const struct regnode *node \ + |bool doinit \ + |NULLOK SV **listsvp \ + |NULLOK SV **lonly_utf8_locale \ + |NULLOK SV **output_invlist +# else +Ep |SV* |get_re_gclass_nonbitmap_data \ + |NULLOK const regexp *prog \ + |NN const struct regnode *node \ + |bool doinit \ + |NULLOK SV **listsvp \ + |NULLOK SV **lonly_utf8_locale \ + |NULLOK SV **output_invlist +#endif +Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \ + |NULLOK const RExC_state_t *pRExC_state +Efp |int |re_printf |NN const char *fmt|... +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) +ERp |bool |is_grapheme |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) +EXTp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C) +EpX |SV* |invlist_clone |NN SV* const invlist|NULLOK SV* newlist +#endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) +EiRT |bool |regcurly |NN const char *s +#endif +#if defined(PERL_IN_REGEXEC_C) +ERS |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character|NN const U8* e +ERTS |U8 * |find_next_masked|NN U8 * s \ + |NN const U8 * send \ + |const U8 byte|const U8 mask +ERTS |U8 *|find_span_end |NN U8* s|NN const U8 * send|const U8 span_byte +ERTS |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send \ + |const U8 span_byte|const U8 mask +ERS |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog +WERS |I32 |regrepeat |NN regexp *prog|NN char **startposp \ + |NN const regnode *p \ + |NN char *loceol \ + |NN regmatch_info *const reginfo \ + |I32 max +ERS |bool |regtry |NN regmatch_info *reginfo|NN char **startposp +ERS |bool |reginclass |NULLOK regexp * const prog \ + |NN const regnode * const n \ + |NN const U8 * const p \ + |NN const U8 * const p_end \ + |bool const utf8_target +WES |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\ + |U32 maxopenparen +WES |void |regcppop |NN regexp *rex|NN U32 *maxopenparen_p +WES |void |regcp_restore |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p +ERST |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim +ERST |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \ + |NN const U8 *rlim +ERST |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 * const lim +ERS |char* |find_byclass |NN regexp * prog|NN const regnode *c \ + |NN char *s|NN const char *strend \ + |NULLOK regmatch_info *reginfo +ES |void |to_utf8_substr |NN regexp * prog +ES |bool |to_byte_substr |NN regexp * prog +ERST |I32 |reg_check_named_buff_matched |NN const regexp *rex \ + |NN const regnode *scan +ESR |bool |isGCB |const GCB_enum before \ + |const GCB_enum after \ + |NN const U8 * const strbeg \ + |NN const U8 * const curpos \ + |const bool utf8_target +ESR |GCB_enum|backup_one_GCB|NN const U8 * const strbeg \ + |NN U8 ** curpos \ + |const bool utf8_target +ESR |bool |isLB |LB_enum before \ + |LB_enum after \ + |NN const U8 * const strbeg \ + |NN const U8 * const curpos \ + |NN const U8 * const strend \ + |const bool utf8_target +ESR |LB_enum|advance_one_LB |NN U8 ** curpos \ + |NN const U8 * const strend \ + |const bool utf8_target +ESR |LB_enum|backup_one_LB |NN const U8 * const strbeg \ + |NN U8 ** curpos \ + |const bool utf8_target +ESR |bool |isSB |SB_enum before \ + |SB_enum after \ + |NN const U8 * const strbeg \ + |NN const U8 * const curpos \ + |NN const U8 * const strend \ + |const bool utf8_target +ESR |SB_enum|advance_one_SB |NN U8 ** curpos \ + |NN const U8 * const strend \ + |const bool utf8_target +ESR |SB_enum|backup_one_SB |NN const U8 * const strbeg \ + |NN U8 ** curpos \ + |const bool utf8_target +ESR |bool |isWB |WB_enum previous \ + |WB_enum before \ + |WB_enum after \ + |NN const U8 * const strbeg \ + |NN const U8 * const curpos \ + |NN const U8 * const strend \ + |const bool utf8_target +ESR |WB_enum|advance_one_WB |NN U8 ** curpos \ + |NN const U8 * const strend \ + |const bool utf8_target \ + |const bool skip_Extend_Format +ESR |WB_enum|backup_one_WB |NN WB_enum * previous \ + |NN const U8 * const strbeg \ + |NN U8 ** curpos \ + |const bool utf8_target +EiT |I32 |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len +# ifdef DEBUGGING +ES |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\ + |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth +ES |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\ + |NN const char *start|NN const char *end\ + |NN const char *blurb + +EFp |int |re_exec_indentf|NN const char *fmt|U32 depth|... +# endif +#endif +#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) +EXRp |bool |isFOO_lc |const U8 classnum|const U8 character +#endif + +Ap |void |taint_env +Ap |void |taint_proper |NULLOK const char* f|NN const char *const s +EXp |char * |_byte_dump_string \ + |NN const U8 * const start \ + |const STRLEN len \ + |const bool format + +#if defined(PERL_IN_UTF8_C) +iTR |int |does_utf8_overflow|NN const U8 * const s \ + |NN const U8 * e \ + |const bool consider_overlongs +iTR |int |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \ + |const STRLEN len +iTR |int |isFF_OVERLONG |NN const U8 * const s|const STRLEN len +SR |char * |unexpected_non_continuation_text \ + |NN const U8 * const s \ + |STRLEN print_len \ + |const STRLEN non_cont_byte_pos \ + |const STRLEN expect_len +#if 0 /* Not currently used, but may be needed in the future */ +S |void |warn_on_first_deprecated_use \ + |NN const char * const name \ + |NN const char * const alternative \ + |const bool use_locale \ + |NN const char * const file \ + |const unsigned line +#endif +S |UV |_to_utf8_case |const UV uv1 \ + |NULLOK const U8 *p \ + |NN U8* ustrp \ + |NN STRLEN *lenp \ + |NN SV *invlist \ + |NN const I32 * const invmap \ + |NULLOK const U32 * const * const aux_tables \ + |NULLOK const U8 * const aux_table_lengths \ + |NN const char * const normal S |UV |turkic_fc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp S |UV |turkic_lc |NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp S |UV |turkic_uc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp @@ -2067,7 +2424,7 @@ AxTp |U8* |bytes_from_utf8_loc|NN const U8 *s \ |NN bool *is_utf8p \ |NULLOK const U8 ** first_unconverted Apxd |U8* |bytes_to_utf8 |NN const U8 *s|NN STRLEN *lenp -ApdD |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen +ApdDb |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen CbpdD |UV |utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen CbpD |UV |valid_utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen AMpd |UV |utf8_to_uvchr_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen @@ -2098,7 +2455,7 @@ CTp |UV |_utf8n_to_uvchr_msgs_helper \ |NULLOK U32 * errors \ |NULLOK AV ** msgs CipTRd |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen -Cdp |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags +CdbDp |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags Adm |U8* |uvchr_to_utf8 |NN U8 *d|UV uv Cp |U8* |uvuni_to_utf8 |NN U8 *d|UV uv @@ -2106,7 +2463,7 @@ Adm |U8* |uvchr_to_utf8_flags |NN U8 *d|UV uv|UV flags Admx |U8* |uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs CMpd |U8* |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|const UV flags Cp |U8* |uvoffuni_to_utf8_flags_msgs|NN U8 *d|UV uv|const UV flags|NULLOK HV** msgs -Cdp |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags +CdpbD |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags Apd |char* |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags ApdR |char* |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags EXpR |Size_t |_inverse_folds |const UV cp \ @@ -2190,7 +2547,7 @@ ATpa |Malloc_t|safesysmalloc |MEM_SIZE nbytes ATpa |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size ATpR |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes ATp |Free_t |safesysfree |Malloc_t where -AirTep |void |croak_memory_wrap +CrTp |void |croak_memory_wrap #if defined(PERL_GLOBAL_STRUCT) Ap |struct perl_vars *|GetVars Ap |struct perl_vars*|init_global_struct @@ -2221,12 +2578,12 @@ Apd |char* |pv_display |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \ Apd |char* |pv_escape |NULLOK SV *dsv|NN char const * const str\ |const STRLEN count|const STRLEN max\ |NULLOK STRLEN * const escaped\ - |const U32 flags + |const U32 flags Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\ |const STRLEN count|const STRLEN max\ |NULLOK char const * const start_color\ |NULLOK char const * const end_color\ - |const U32 flags + |const U32 flags Afp |void |dump_indent |I32 level|NN PerlIO *file|NN const char* pat|... Ap |void |dump_vindent |I32 level|NN PerlIO *file|NN const char* pat \ |NULLOK va_list *args @@ -2335,554 +2692,250 @@ Adp |void |sv_nosharing |NULLOK SV *sv AdpbD |void |sv_nolocking |NULLOK SV *sv Adp |bool |sv_destroyable |NULLOK SV *sv AdpbD |void |sv_nounlocking |NULLOK SV *sv -Adp |int |nothreadhook -p |void |init_constants - -#if defined(PERL_IN_DOOP_C) -SR |Size_t |do_trans_simple |NN SV * const sv|NN const OPtrans_map * const tbl -SR |Size_t |do_trans_count |NN SV * const sv|NN const OPtrans_map * const tbl -SR |Size_t |do_trans_complex |NN SV * const sv|NN const OPtrans_map * const tbl -SR |Size_t |do_trans_invmap |NN SV * const sv|NN AV * const map -SR |Size_t |do_trans_count_invmap |NN SV * const sv|NN AV * const map -#endif - -#if defined(PERL_IN_GV_C) -S |void |gv_init_svtype |NN GV *gv|const svtype sv_type -S |void |gv_magicalize_isa |NN GV *gv -S |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \ - |NN const char **name|NN STRLEN *len \ - |NN const char *nambeg|STRLEN full_len \ - |const U32 is_utf8|const I32 add -S |bool|find_default_stash|NN HV **stash|NN const char *name \ - |STRLEN len|const U32 is_utf8|const I32 add \ - |const svtype sv_type -S |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \ - |STRLEN len \ - |const svtype sv_type -S |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type -S |bool|gv_is_in_main|NN const char *name|STRLEN len \ - |const U32 is_utf8 -S |void |require_tie_mod|NN GV *gv|NN const char varname \ - |NN const char * name|STRLEN len \ - |const U32 flags -#endif - -#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) -po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp -#endif - -#if defined(PERL_IN_HV_C) -S |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize -S |void |hv_free_entries|NN HV *hv -S |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry -SR |HE* |new_he -SaTR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags -ST |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store -S |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash -SR |HEK* |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags -rS |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg -iT |U32|ptr_hash|PTRV u -S |struct xpvhv_aux*|hv_auxinit|NN HV *hv -ST |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter -Sx |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \ - |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \ - |U32 hash -Sx |void |clear_placeholders |NN HV *hv|U32 items -#endif - -#if defined(PERL_IN_MG_C) -S |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags -S |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth -S |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \ - |NN SV *meth|U32 flags \ - |int n|NULLOK SV *val -S |void |restore_magic |NULLOK const void *p -S |void |unwind_handler_stack|NULLOK const void *p -S |void |fixup_errno_string|NN SV* sv - -#endif - -#if defined(PERL_IN_OP_C) -SRT |bool |is_handle_constructor|NN const OP *o|I32 numargs -SR |I32 |assignment_type|NULLOK const OP *o -S |void |forget_pmop |NN PMOP *const o -S |void |find_and_forget_pmops |NN OP *o -S |void |cop_free |NN COP *cop -S |OP* |modkids |NULLOK OP *o|I32 type -S |OP* |scalarboolean |NN OP *o -SR |OP* |search_const |NN OP *o -SR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp -S |void |simplify_sort |NN OP *o -SRT |bool |scalar_mod_type|NULLOK const OP *o|I32 type -S |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp -S |OP * |dup_attrlist |NN OP *o -S |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs -S |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp -S |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid -S |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t -S |void |no_bareword_allowed|NN OP *o -SR |OP* |no_fh_allowed|NN OP *o -SR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags -S |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags -S |bool |looks_like_bool|NN const OP* o -S |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \ - |I32 enter_opcode|I32 leave_opcode \ - |PADOFFSET entertarg -S |OP* |ref_array_or_hash|NULLOK OP* cond -S |bool |process_special_blocks |I32 floor \ - |NN const char *const fullname\ - |NN GV *const gv|NN CV *const cv -S |void |clear_special_blocks |NN const char *const fullname\ - |NN GV *const gv|NN CV *const cv -#endif -XpR |void* |Slab_Alloc |size_t sz -Xp |void |Slab_Free |NN void *op -#if defined(PERL_DEBUG_READONLY_OPS) -# if defined(PERL_CORE) -pe |void |Slab_to_ro |NN OPSLAB *slab -pe |void |Slab_to_rw |NN OPSLAB *const slab -# endif -: Used in OpREFCNT_inc() in sv.c -poex |OP * |op_refcnt_inc |NULLOK OP *o -: FIXME - can be static. -poex |PADOFFSET |op_refcnt_dec |NN OP *o -#endif - -#if defined(PERL_IN_PERL_C) -S |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp -S |void |forbid_setid |const char flag|const bool suidscript -S |void |incpush |NN const char *const dir|STRLEN len \ - |U32 flags -S |SV* |mayberelocate |NN const char *const dir|STRLEN len \ - |U32 flags -S |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags -S |void |init_interp -S |void |init_ids -S |void |init_main_stash -S |void |init_perllib -S |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env -S |void |init_predump_symbols -rS |void |my_exit_jump -S |void |nuke_stacks -S |PerlIO *|open_script |NN const char *scriptname|bool dosearch \ - |NN bool *suidscript -Sr |void |usage -#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW -So |void |validate_suid |NN PerlIO *rsfp -#endif -Sr |void |minus_v - -S |void* |parse_body |NULLOK char **env|XSINIT_t xsinit -rS |void |run_body |I32 oldscope -# ifndef PERL_IS_MINIPERL -S |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem -# endif -#endif - -#if defined(PERL_IN_PP_C) -S |size_t |do_chomp |NN SV *retval|NN SV *sv|bool chomping -S |OP* |do_delete_local -SR |SV* |refto |NN SV* sv -#endif -#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) -: Used in pp_hot.c -pReo |GV* |softref2xv |NN SV *const sv|NN const char *const what \ - |const svtype type|NN SV ***spp -iTR |bool |lossless_NV_to_IV|const NV nv|NN IV * ivp -#endif - -#if defined(PERL_IN_PP_PACK_C) -S |SSize_t|unpack_rec |NN struct tempsym* symptr|NN const char *s \ - |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s -S |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist -S |SV* |mul128 |NN SV *sv|U8 m -S |SSize_t|measure_struct |NN struct tempsym* symptr -S |bool |next_symbol |NN struct tempsym* symptr -SR |SV* |is_an_int |NN const char *s|STRLEN l -S |int |div128 |NN SV *pnum|NN bool *done -S |const char *|group_end |NN const char *patptr|NN const char *patend \ - |char ender -SR |const char *|get_num |NN const char *patptr|NN SSize_t *lenptr -TS |bool |need_utf8 |NN const char *pat|NN const char *patend -TS |char |first_symbol |NN const char *pat|NN const char *patend -SR |char * |sv_exp_grow |NN SV *sv|STRLEN needed -STR |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \ - |const bool needs_swap -#endif - -#if defined(PERL_IN_PP_CTL_C) -SdR |OP* |docatch |Perl_ppaddr_t firstpp -SR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \ - |U32 flags|NN OP **opstack|NN OP **oplimit -S |MAGIC *|doparseform |NN SV *sv -STR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize -SR |I32 |dopoptoeval |I32 startingblock -SR |I32 |dopoptogivenfor|I32 startingblock -SR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags -SR |I32 |dopoptoloop |I32 startingblock -SR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock -SR |I32 |dopoptowhen |I32 startingblock -S |void |save_lines |NULLOK AV *array|NN SV *sv -S |bool |doeval_compile |U8 gimme \ - |NULLOK CV* outside|U32 seq|NULLOK HV* hh -SR |PerlIO *|check_type_and_open|NN SV *name -#ifndef PERL_DISABLE_PMC -SR |PerlIO *|doopen_pm |NN SV *name -#endif -iRT |bool |path_is_searchable|NN const char *name -SR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen -SR |PMOP* |make_matcher |NN REGEXP* re -SR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv -S |void |destroy_matcher|NN PMOP* matcher -S |OP* |do_smartmatch |NULLOK HV* seen_this \ - |NULLOK HV* seen_other|const bool copied -#endif - -#if defined(PERL_IN_PP_HOT_C) -S |void |do_oddball |NN SV **oddkey|NN SV **firstkey -i |HV* |opmethod_stash |NN SV* meth -#endif +Adp |int |nothreadhook +p |void |init_constants -#if defined(PERL_IN_PP_SORT_C) -S |I32 |sv_ncmp |NN SV *const a|NN SV *const b -S |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b -S |I32 |amagic_ncmp |NN SV *const a|NN SV *const b -S |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b -S |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2 -# ifdef USE_LOCALE_COLLATE -S |I32 |amagic_cmp_locale|NN SV *const str1|NN SV *const str2 -# endif -S |I32 |sortcv |NN SV *const a|NN SV *const b -S |I32 |sortcv_xsub |NN SV *const a|NN SV *const b -S |I32 |sortcv_stacked |NN SV *const a|NN SV *const b +#if defined(PERL_IN_DOOP_C) +SR |Size_t |do_trans_simple |NN SV * const sv|NN const OPtrans_map * const tbl +SR |Size_t |do_trans_count |NN SV * const sv|NN const OPtrans_map * const tbl +SR |Size_t |do_trans_complex |NN SV * const sv|NN const OPtrans_map * const tbl +SR |Size_t |do_trans_invmap |NN SV * const sv|NN AV * const map +SR |Size_t |do_trans_count_invmap |NN SV * const sv|NN AV * const map #endif -#if defined(PERL_IN_PP_SYS_C) -S |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop -# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) -SR |int |dooneliner |NN const char *cmd|NN const char *filename -# endif -S |SV * |space_join_names_mortal|NULLOK char *const *array +#if defined(PERL_IN_GV_C) +S |void |gv_init_svtype |NN GV *gv|const svtype sv_type +S |void |gv_magicalize_isa |NN GV *gv +S |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \ + |NN const char **name|NN STRLEN *len \ + |NN const char *nambeg|STRLEN full_len \ + |const U32 is_utf8|const I32 add +S |bool|find_default_stash|NN HV **stash|NN const char *name \ + |STRLEN len|const U32 is_utf8|const I32 add \ + |const svtype sv_type +S |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \ + |STRLEN len \ + |const svtype sv_type +S |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type +S |bool|gv_is_in_main|NN const char *name|STRLEN len \ + |const U32 is_utf8 +S |void |require_tie_mod|NN GV *gv|NN const char varname \ + |NN const char * name|STRLEN len \ + |const U32 flags #endif -p |OP * |tied_method|NN SV *methname|NN SV **sp \ - |NN SV *const sv|NN const MAGIC *const mg \ - |const U32 flags|U32 argc|... -#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \ - |NULLOK const RExC_state_t *pRExC_state -Ep |int |re_printf |NN const char *fmt|... -#endif -#if defined(PERL_IN_REGCOMP_C) -ES |regnode_offset|reg |NN RExC_state_t *pRExC_state \ - |I32 paren|NN I32 *flagp|U32 depth -ES |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state \ - |const U8 op \ - |const STRLEN extra_len \ - |NN const char* const name -ES |void |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size -ES |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \ - |U32 arg -ES |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state \ - |const U8 op \ - |const U32 arg1 \ - |const I32 arg2 -ES |regnode_offset|regatom |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth -ES |regnode_offset|regbranch |NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|I32 first|U32 depth -ES |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \ - |NN regnode* const node \ - |NULLOK SV* const cp_list \ - |NULLOK SV* const runtime_defns \ - |NULLOK SV* const only_utf8_locale_list -ES |void |output_posix_warnings \ - |NN RExC_state_t *pRExC_state \ - |NN AV* posix_warnings -EiT |Size_t |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max -ES |AV* |add_multi_match|NULLOK AV* multi_char_matches \ - |NN SV* multi_string \ - |const STRLEN cp_count -ES |regnode_offset|regclass|NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth|const bool stop_at_1 \ - |bool allow_multi_fold \ - |const bool silence_non_portable \ - |const bool strict \ - |bool optimizable \ - |NULLOK SV** ret_invlist -ES |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \ - |NN SV** invlist -Ei |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state \ - |NN I32 *flagp \ - |NN char * parse_start \ - |char ch -ESTR |unsigned int|regex_set_precedence|const U8 my_operator -ES |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \ - |NULLOK SV ** return_invlist \ - |NN I32 *flagp|U32 depth \ - |NN char * const oregcomp_parse -ES |void |set_regex_pv |NN RExC_state_t *pRExC_state|NN REGEXP *Rx -#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING) -ES |void |dump_regex_sets_structures \ - |NN RExC_state_t *pRExC_state \ - |NN AV * stack \ - |const IV fence|NN AV * fence_stack +#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) +po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp #endif -ES |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state -ES |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op -ES |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \ - |NN I32 *flagp|U32 depth -ES |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \ - |NULLOK regnode_offset* nodep \ - |NULLOK UV *code_point_p \ - |NULLOK int* cp_count \ - |NN I32 *flagp \ - |const bool strict \ - |const U32 depth -ES |void |reginsert |NN RExC_state_t *pRExC_state \ - |const U8 op \ - |const regnode_offset operand \ - |const U32 depth -ESR |bool |regtail |NN RExC_state_t * pRExC_state \ - |NN const regnode_offset p \ - |NN const regnode_offset val \ - |const U32 depth -ES |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \ - |U32 flags -ES |U32 |join_exact |NN RExC_state_t *pRExC_state \ - |NN regnode *scan|NN UV *min_subtract \ - |NN bool *unfolded_multi_char \ - |U32 flags|NULLOK regnode *val|U32 depth -EiT |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state -ES |void |nextchar |NN RExC_state_t *pRExC_state -ES |void |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state \ - |NN char ** p \ - |const bool force_to_xmod -EiT |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p -ES |void |scan_commit |NN const RExC_state_t *pRExC_state \ - |NN struct scan_data_t *data \ - |NN SSize_t *minlenp \ - |int is_inf -ES |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr -ES |void |ssc_anything |NN regnode_ssc *ssc -ESRT |int |ssc_is_anything|NN const regnode_ssc *ssc -ES |void |ssc_init |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc -ESRT |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \ - |NN const regnode_ssc *ssc -ES |void |ssc_and |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc \ - |NN const regnode_charclass *and_with -ES |void |ssc_or |NN const RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc \ - |NN const regnode_charclass *or_with -ES |SV* |get_ANYOF_cp_list_for_ssc \ - |NN const RExC_state_t *pRExC_state \ - |NN const regnode_charclass* const node -Ei |void |ssc_intersection|NN regnode_ssc *ssc \ - |NN SV* const invlist|const bool invert_2nd -Ei |void |ssc_union |NN regnode_ssc *ssc \ - |NN SV* const invlist|const bool invert_2nd -Ei |void |ssc_add_range |NN regnode_ssc *ssc \ - |UV const start|UV const end -Ei |void |ssc_cp_and |NN regnode_ssc *ssc \ - |UV const cp -EiT |void |ssc_clear_locale|NN regnode_ssc *ssc -ETS |bool |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \ - |NN const regnode_ssc * ssc -ES |void |ssc_finalize |NN RExC_state_t *pRExC_state \ - |NN regnode_ssc *ssc -ES |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \ - |NN regnode **scanp|NN SSize_t *minlenp \ - |NN SSize_t *deltap|NN regnode *last \ - |NULLOK struct scan_data_t *data \ - |I32 stopparen|U32 recursed_depth \ - |NULLOK regnode_ssc *and_withp \ - |U32 flags|U32 depth -ESR |SV * |get_ANYOFM_contents|NN const regnode * n -ESRT |U32 |add_data |NN RExC_state_t* const pRExC_state \ - |NN const char* const s|const U32 n -rS |void |re_croak2 |bool utf8|NN const char* pat1|NN const char* pat2|... -ES |int |handle_possible_posix \ - |NN RExC_state_t *pRExC_state \ - |NN const char* const s \ - |NULLOK char ** updated_parse_ptr \ - |NULLOK AV** posix_warnings \ - |const bool check_only -ES |I32 |make_trie |NN RExC_state_t *pRExC_state \ - |NN regnode *startbranch|NN regnode *first \ - |NN regnode *last|NN regnode *tail \ - |U32 word_count|U32 flags|U32 depth -ES |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \ - |NN regnode *source|U32 depth -ETSR |int |edit_distance |NN const UV *src \ - |NN const UV *tgt \ - |const STRLEN x \ - |const STRLEN y \ - |const SSize_t maxDistance -EpX |SV * |parse_uniprop_string|NN const char * const name \ - |Size_t name_len \ - |const bool is_utf8 \ - |const bool to_fold \ - |const bool runtime \ - |const bool deferrable \ - |NN bool * user_defined_ptr \ - |NN SV * msg \ - |const STRLEN level -EXp |SV * |handle_user_defined_property|NN const char * name \ - |const STRLEN name_len \ - |const bool is_utf8 \ - |const bool to_fold \ - |const bool runtime \ - |const bool deferrable \ - |NN SV* contents \ - |NN bool *user_defined_ptr \ - |NN SV * msg \ - |const STRLEN level -# ifdef DEBUGGING -Ep |int |re_indentf |NN const char *fmt|U32 depth|... -ES |void |regdump_intflags|NULLOK const char *lead| const U32 flags -ES |void |regdump_extflags|NULLOK const char *lead| const U32 flags -ES |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \ - |NN const regnode *node \ - |NULLOK const regnode *last \ - |NULLOK const regnode *plast \ - |NN SV* sv|I32 indent|U32 depth -ES |void |put_code_point |NN SV* sv|UV c -ES |bool |put_charclass_bitmap_innards|NN SV* sv \ - |NULLOK char* bitmap \ - |NULLOK SV* nonbitmap_invlist \ - |NULLOK SV* only_utf8_locale_invlist\ - |NULLOK const regnode * const node \ - |const U8 flags \ - |const bool force_as_is_display -ES |SV* |put_charclass_bitmap_innards_common \ - |NN SV* invlist \ - |NULLOK SV* posixes \ - |NULLOK SV* only_utf8 \ - |NULLOK SV* not_utf8 \ - |NULLOK SV* only_utf8_locale \ - |const bool invert -ES |void |put_charclass_bitmap_innards_invlist \ - |NN SV *sv \ - |NN SV* invlist -ES |void |put_range |NN SV* sv|UV start|const UV end \ - |const bool allow_literals -ES |void |dump_trie |NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 depth -ES |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 next_alloc|U32 depth -ES |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\ - |NULLOK HV* widecharmap|NN AV *revcharmap\ - |U32 next_alloc|U32 depth -ESR |bool |regtail_study |NN RExC_state_t *pRExC_state \ - |NN regnode_offset p|NN const regnode_offset val|U32 depth + +#if defined(PERL_IN_HV_C) +S |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize +S |void |hv_free_entries|NN HV *hv +S |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry +SR |HE* |new_he +SaTR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags +ST |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store +S |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash +SR |HEK* |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags +rS |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg +iT |U32|ptr_hash|PTRV u +S |struct xpvhv_aux*|hv_auxinit|NN HV *hv +ST |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter +Sx |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \ + |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \ + |U32 hash +Sx |void |clear_placeholders |NN HV *hv|U32 items +#endif + +#if defined(PERL_IN_MG_C) +S |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags +S |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth +S |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \ + |NN SV *meth|U32 flags \ + |int n|NULLOK SV *val +S |void |restore_magic |NULLOK const void *p +S |void |unwind_handler_stack|NULLOK const void *p +S |void |fixup_errno_string|NN SV* sv + +#endif + +#if defined(PERL_IN_OP_C) +SRT |bool |is_handle_constructor|NN const OP *o|I32 numargs +SR |I32 |assignment_type|NULLOK const OP *o +S |void |forget_pmop |NN PMOP *const o +S |void |find_and_forget_pmops |NN OP *o +S |void |cop_free |NN COP *cop +S |OP* |modkids |NULLOK OP *o|I32 type +S |OP* |scalarboolean |NN OP *o +SR |OP* |search_const |NN OP *o +SR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp +S |void |simplify_sort |NN OP *o +SRT |bool |scalar_mod_type|NULLOK const OP *o|I32 type +S |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp +S |OP * |dup_attrlist |NN OP *o +S |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs +S |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp +S |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid +S |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t +S |void |no_bareword_allowed|NN OP *o +SR |OP* |no_fh_allowed|NN OP *o +SR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags +S |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags +S |bool |looks_like_bool|NN const OP* o +S |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \ + |I32 enter_opcode|I32 leave_opcode \ + |PADOFFSET entertarg +S |OP* |ref_array_or_hash|NULLOK OP* cond +S |bool |process_special_blocks |I32 floor \ + |NN const char *const fullname\ + |NN GV *const gv|NN CV *const cv +S |void |clear_special_blocks |NN const char *const fullname\ + |NN GV *const gv|NN CV *const cv +#endif +XpR |void* |Slab_Alloc |size_t sz +Xp |void |Slab_Free |NN void *op +#if defined(PERL_DEBUG_READONLY_OPS) +# if defined(PERL_CORE) +pe |void |Slab_to_ro |NN OPSLAB *slab +pe |void |Slab_to_rw |NN OPSLAB *const slab +# endif +: Used in OpREFCNT_inc() in sv.c +poex |OP * |op_refcnt_inc |NULLOK OP *o +: FIXME - can be static. +poex |PADOFFSET |op_refcnt_dec |NN OP *o +#endif + +#if defined(PERL_IN_PERL_C) +S |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp +S |void |forbid_setid |const char flag|const bool suidscript +S |void |incpush |NN const char *const dir|STRLEN len \ + |U32 flags +S |SV* |mayberelocate |NN const char *const dir|STRLEN len \ + |U32 flags +S |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags +S |void |init_interp +S |void |init_ids +S |void |init_main_stash +S |void |init_perllib +S |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env +S |void |init_predump_symbols +rS |void |my_exit_jump +S |void |nuke_stacks +S |PerlIO *|open_script |NN const char *scriptname|bool dosearch \ + |NN bool *suidscript +Sr |void |usage +#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW +So |void |validate_suid |NN PerlIO *rsfp +#endif +Sr |void |minus_v + +S |void* |parse_body |NULLOK char **env|XSINIT_t xsinit +rS |void |run_body |I32 oldscope +# ifndef PERL_IS_MINIPERL +S |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem # endif #endif -#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) -EXRp |bool |isFOO_lc |const U8 classnum|const U8 character +#if defined(PERL_IN_PP_C) +S |size_t |do_chomp |NN SV *retval|NN SV *sv|bool chomping +S |OP* |do_delete_local +SR |SV* |refto |NN SV* sv +#endif +#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) +: Used in pp_hot.c +pReo |GV* |softref2xv |NN SV *const sv|NN const char *const what \ + |const svtype type|NN SV ***spp +iTR |bool |lossless_NV_to_IV|const NV nv|NN IV * ivp +#endif +#if defined(PERL_IN_PP_HOT_C) +IR |bool |should_we_output_Debug_r|NN regexp * prog #endif -#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) -ERp |bool |is_grapheme |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp +#if defined(PERL_IN_PP_PACK_C) +S |SSize_t|unpack_rec |NN struct tempsym* symptr|NN const char *s \ + |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s +S |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist +S |SV* |mul128 |NN SV *sv|U8 m +S |SSize_t|measure_struct |NN struct tempsym* symptr +S |bool |next_symbol |NN struct tempsym* symptr +SR |SV* |is_an_int |NN const char *s|STRLEN l +S |int |div128 |NN SV *pnum|NN bool *done +S |const char *|group_end |NN const char *patptr|NN const char *patend \ + |char ender +SR |const char *|get_num |NN const char *patptr|NN SSize_t *lenptr +TS |bool |need_utf8 |NN const char *pat|NN const char *patend +TS |char |first_symbol |NN const char *pat|NN const char *patend +SR |char * |sv_exp_grow |NN SV *sv|STRLEN needed +STR |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \ + |const bool needs_swap #endif -#if defined(PERL_IN_REGEXEC_C) -ERS |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character|NN const U8* e -ERTS |U8 * |find_next_masked|NN U8 * s \ - |NN const U8 * send \ - |const U8 byte|const U8 mask -ERTS |U8 *|find_span_end |NN U8* s|NN const U8 * send|const U8 span_byte -ERTS |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send \ - |const U8 span_byte|const U8 mask -ERS |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog -WERS |I32 |regrepeat |NN regexp *prog|NN char **startposp \ - |NN const regnode *p \ - |NN char *loceol \ - |NN regmatch_info *const reginfo \ - |I32 max -ERS |bool |regtry |NN regmatch_info *reginfo|NN char **startposp -ERS |bool |reginclass |NULLOK regexp * const prog \ - |NN const regnode * const n \ - |NN const U8 * const p \ - |NN const U8 * const p_end \ - |bool const utf8_target -WES |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\ - |U32 maxopenparen -WES |void |regcppop |NN regexp *rex|NN U32 *maxopenparen_p -WES |void |regcp_restore |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p -ERST |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim -ERST |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \ - |NN const U8 *rlim -ERST |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 * const lim -ERS |char* |find_byclass |NN regexp * prog|NN const regnode *c \ - |NN char *s|NN const char *strend \ - |NULLOK regmatch_info *reginfo -ES |void |to_utf8_substr |NN regexp * prog -ES |bool |to_byte_substr |NN regexp * prog -ERST |I32 |reg_check_named_buff_matched |NN const regexp *rex \ - |NN const regnode *scan -ESR |bool |isGCB |const GCB_enum before \ - |const GCB_enum after \ - |NN const U8 * const strbeg \ - |NN const U8 * const curpos \ - |const bool utf8_target -ESR |GCB_enum|backup_one_GCB|NN const U8 * const strbeg \ - |NN U8 ** curpos \ - |const bool utf8_target -ESR |bool |isLB |LB_enum before \ - |LB_enum after \ - |NN const U8 * const strbeg \ - |NN const U8 * const curpos \ - |NN const U8 * const strend \ - |const bool utf8_target -ESR |LB_enum|advance_one_LB |NN U8 ** curpos \ - |NN const U8 * const strend \ - |const bool utf8_target -ESR |LB_enum|backup_one_LB |NN const U8 * const strbeg \ - |NN U8 ** curpos \ - |const bool utf8_target -ESR |bool |isSB |SB_enum before \ - |SB_enum after \ - |NN const U8 * const strbeg \ - |NN const U8 * const curpos \ - |NN const U8 * const strend \ - |const bool utf8_target -ESR |SB_enum|advance_one_SB |NN U8 ** curpos \ - |NN const U8 * const strend \ - |const bool utf8_target -ESR |SB_enum|backup_one_SB |NN const U8 * const strbeg \ - |NN U8 ** curpos \ - |const bool utf8_target -ESR |bool |isWB |WB_enum previous \ - |WB_enum before \ - |WB_enum after \ - |NN const U8 * const strbeg \ - |NN const U8 * const curpos \ - |NN const U8 * const strend \ - |const bool utf8_target -ESR |WB_enum|advance_one_WB |NN U8 ** curpos \ - |NN const U8 * const strend \ - |const bool utf8_target \ - |const bool skip_Extend_Format -ESR |WB_enum|backup_one_WB |NN WB_enum * previous \ - |NN const U8 * const strbeg \ - |NN U8 ** curpos \ - |const bool utf8_target -EiT |I32 |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len -# ifdef DEBUGGING -ES |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\ - |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth -ES |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\ - |NN const char *start|NN const char *end\ - |NN const char *blurb +#if defined(PERL_IN_PP_CTL_C) +SdR |OP* |docatch |Perl_ppaddr_t firstpp +SR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \ + |U32 flags|NN OP **opstack|NN OP **oplimit +S |MAGIC *|doparseform |NN SV *sv +STR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize +SR |I32 |dopoptoeval |I32 startingblock +SR |I32 |dopoptogivenfor|I32 startingblock +SR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags +SR |I32 |dopoptoloop |I32 startingblock +SR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock +SR |I32 |dopoptowhen |I32 startingblock +S |void |save_lines |NULLOK AV *array|NN SV *sv +S |bool |doeval_compile |U8 gimme \ + |NULLOK CV* outside|U32 seq|NULLOK HV* hh +SR |PerlIO *|check_type_and_open|NN SV *name +#ifndef PERL_DISABLE_PMC +SR |PerlIO *|doopen_pm |NN SV *name +#endif +iRT |bool |path_is_searchable|NN const char *name +SR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen +SR |PMOP* |make_matcher |NN REGEXP* re +SR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv +S |void |destroy_matcher|NN PMOP* matcher +S |OP* |do_smartmatch |NULLOK HV* seen_this \ + |NULLOK HV* seen_other|const bool copied +#endif + +#if defined(PERL_IN_PP_HOT_C) +S |void |do_oddball |NN SV **oddkey|NN SV **firstkey +i |HV* |opmethod_stash |NN SV* meth +#endif + +#if defined(PERL_IN_PP_SORT_C) +I |I32 |sv_ncmp |NN SV *const a|NN SV *const b +I |I32 |sv_ncmp_desc |NN SV *const a|NN SV *const b +I |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b +I |I32 |sv_i_ncmp_desc |NN SV *const a|NN SV *const b +I |I32 |amagic_ncmp |NN SV *const a|NN SV *const b +I |I32 |amagic_ncmp_desc |NN SV *const a|NN SV *const b +I |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b +I |I32 |amagic_i_ncmp_desc |NN SV *const a|NN SV *const b +I |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2 +I |I32 |amagic_cmp_desc |NN SV *const str1|NN SV *const str2 +I |I32 |cmp_desc |NN SV *const str1|NN SV *const str2 +# ifdef USE_LOCALE_COLLATE +I |I32 |amagic_cmp_locale |NN SV *const str1|NN SV *const str2 +I |I32 |amagic_cmp_locale_desc|NN SV *const str1|NN SV *const str2 +I |I32 |cmp_locale_desc|NN SV *const str1|NN SV *const str2 +# endif +S |I32 |sortcv |NN SV *const a|NN SV *const b +S |I32 |sortcv_xsub |NN SV *const a|NN SV *const b +S |I32 |sortcv_stacked |NN SV *const a|NN SV *const b +I |void |sortsv_flags_impl |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags +#endif -Ep |int |re_exec_indentf |NN const char *fmt|U32 depth|... +#if defined(PERL_IN_PP_SYS_C) +S |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +SR |int |dooneliner |NN const char *cmd|NN const char *filename # endif +S |SV * |space_join_names_mortal|NULLOK char *const *array #endif +Fp |OP * |tied_method|NN SV *methname|NN SV **sp \ + |NN SV *const sv|NN const MAGIC *const mg \ + |const U32 flags|U32 argc|... #if defined(PERL_IN_DUMP_C) S |CV* |deb_curcv |I32 ix @@ -2962,6 +3015,10 @@ EXpR |SV* |get_and_check_backslash_N_name|NN const char* s \ |NN const char* const e \ |const bool is_utf8 \ |NN const char** error_msg +EXpR |HV* |load_charnames |NN SV * char_name \ + |NN const char * context \ + |const STRLEN context_len \ + |NN const char ** error_msg : For use ONLY in B::Hooks::Parser, by special dispensation EXpxR |char* |scan_str |NN char *start|int keep_quoted \ @@ -3369,7 +3426,7 @@ Apo |void* |my_cxt_init |NN int *indexp|size_t size So |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \ |STRLEN xs_len #endif -XpoT |I32 |xs_handshake |const U32 key|NN void * v_my_perl\ +FXpoT |I32 |xs_handshake |const U32 key|NN void * v_my_perl\ |NN const char * file| ... Xp |void |xs_boot_epilog |const I32 ax #ifndef HAS_STRLCAT @@ -3459,7 +3516,7 @@ ATop |void |clone_params_del|NN CLONE_PARAMS *param #endif : Used in perl.c and toke.c -op |void |populate_isa |NN const char *name|STRLEN len|... +Fop |void |populate_isa |NN const char *name|STRLEN len|... : Some static inline functions need predeclaration because they are used : inside other static inline functions. diff --git a/dist/Devel-PPPort/parts/inc/inctools b/dist/Devel-PPPort/parts/inc/inctools index ba181fa6e7bc..f5f712ae95b5 100644 --- a/dist/Devel-PPPort/parts/inc/inctools +++ b/dist/Devel-PPPort/parts/inc/inctools @@ -1,5 +1,12 @@ # These are tools that must be included in ppport.h. It doesn't work if given -# a .pl suffix +# a .pl suffix. +# +# WARNING: Use only constructs that are legal as far back as D:P handles, as +# this is run in the perl version being tested. + +# What revisions are legal, to be output as-is and converted into a pattern +# that matches them precisely +my $r_pat = "[57]"; sub format_version { @@ -20,43 +27,43 @@ sub format_version sub parse_version { - # Returns a triplet, (5, major, minor) from the input, treated as a string, - # which can be in any of several typical formats. + # Returns a triplet, (revision, major, minor) from the input, treated as a + # string, which can be in any of several typical formats. my $ver = shift; $ver = "" unless defined $ver; my($r,$v,$s); - if ( ($r, $v, $s) = $ver =~ /^(5)(\d{3})(\d{3})$/ # 5029010, from the file + if ( ($r, $v, $s) = $ver =~ /^([0-9]+)([0-9]{3})([0-9]{3})$/ # 5029010, from the file # names in our # parts/base/ and # parts/todo directories - or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d+)\.(\d+)$/ # 5.25.7 - or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d{3})(\d{3})$/ # 5.025008, from the - # output of $] - or ($r, $v, $s) = $ver =~ /^(\d+)\.(\d{1,3})()$/ # 5.24, 5.004 - or ($r, $v, $s) = $ver =~ /^(\d+)\.(00[1-5])_?(\d{2})$/ # 5.003_07 + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/ # 5.25.7 + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{3})([0-9]{3})$/ # 5.025008, from the + # output of $] + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.([0-9]{1,3})()$/ # 5.24, 5.004 + or ($r, $v, $s) = $ver =~ /^([0-9]+)\.(00[1-5])_?([0-9]{2})$/ # 5.003_07 ) { $s = 0 unless $s; - die "Only Perl 5 is supported '$ver'\n" if $r != 5; + die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x; die "Invalid version number: $ver\n" if $v >= 1000 || $s >= 1000; - return (5, 0 + $v, 0 + $s); + return (0 +$r, 0 + $v, 0 + $s); } # For some safety, don't assume something is a version number if it has a # literal dot as one of the three characters. This will have to be fixed - # when we reach 5.46 + # when we reach x.46 (since 46 is ord('.')) if ($ver !~ /\./ && (($r, $v, $s) = $ver =~ /^(.)(.)(.)$/)) # vstring 5.25.7 { $r = ord $r; $v = ord $v; $s = ord $s; - die "Only Perl 5 is supported '$ver'\n" if $r != 5; - return (5, $v, $s); + die "Only Perl $r_pat are supported '$ver'\n" unless $r =~ / ^ $r_pat $ /x; + return ($r, $v, $s); } my $mesg = ""; @@ -82,24 +89,30 @@ sub format_version_line # Returns a floating point representation of the input version my $version = int_parse_version(shift); - $version =~ s/^5\B/5./; + $version =~ s/ ^ ( $r_pat ) \B /$1./x; return $version; } -sub dictionary_order($$) # Sort caselessly, ignoring punct -{ +BEGIN { + if ("$]" < "5.006" ) { + # On early perls, the implicit pass by reference doesn't work, so we have + # to use the globals to initialize. + eval q[sub dictionary_order($$) { _dictionary_order($a, $b) } ]; + } elsif ("$]" < "5.022" ) { + eval q[sub dictionary_order($$) { _dictionary_order(@_) } ]; + } else { + eval q[sub dictionary_order :prototype($$) { _dictionary_order(@_) } ]; + } +} + +sub _dictionary_order { # Sort caselessly, ignoring punct + my ($valid_a, $valid_b) = @_; + my ($lc_a, $lc_b); my ($squeezed_a, $squeezed_b); - my ($valid_a, $valid_b); # Meaning valid for all releases - # On early perls, the implicit pass by reference doesn't work, so we have - # to use the globals to initialize. - if ("$]" < "5.006" ) { - $valid_a = $a; $valid_b = $b; - } - else { - ($valid_a, $valid_b) = @_; - } + $valid_a = '' unless defined $valid_a; + $valid_b = '' unless defined $valid_b; $lc_a = lc $valid_a; $lc_b = lc $valid_b; diff --git a/dist/Devel-PPPort/parts/inc/misc b/dist/Devel-PPPort/parts/inc/misc index deb1fb87a63d..dce0b906f6b7 100644 --- a/dist/Devel-PPPort/parts/inc/misc +++ b/dist/Devel-PPPort/parts/inc/misc @@ -50,6 +50,18 @@ __UNDEFINED__ __ASSERT_(statement) assert(statement), __UNDEFINED__ __ASSERT_(statement) #endif +#ifndef WIDEST_UTYPE +# ifdef QUADKIND +# ifdef U64TYPE +# define WIDEST_UTYPE U64TYPE +# else +# define WIDEST_UTYPE unsigned Quad_t +# endif +# else +# define WIDEST_UTYPE U32 +# endif +#endif + /* These could become provided if/when they become part of the public API */ __UNDEF_NOT_PROVIDED__ withinCOUNT(c, l, n) \ (((WIDEST_UTYPE) (((c)) - ((l) | 0))) <= (((WIDEST_UTYPE) ((n) | 0)))) @@ -348,18 +360,6 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); #endif -#ifndef WIDEST_UTYPE -# ifdef QUADKIND -# ifdef U64TYPE -# define WIDEST_UTYPE U64TYPE -# else -# define WIDEST_UTYPE Quad_t -# endif -# else -# define WIDEST_UTYPE U32 -# endif -#endif - /* On versions without NATIVE_TO_ASCII, only ASCII is supported */ #if defined(EBCDIC) && defined(NATIVE_TO_ASCI) __UNDEFINED__ NATIVE_TO_LATIN1(c) NATIVE_TO_ASCII(c) diff --git a/dist/Devel-PPPort/parts/inc/ppphbin b/dist/Devel-PPPort/parts/inc/ppphbin index 975e3f64bab4..a9f6ff661d5f 100644 --- a/dist/Devel-PPPort/parts/inc/ppphbin +++ b/dist/Devel-PPPort/parts/inc/ppphbin @@ -117,7 +117,7 @@ my($hint, $define, $function); sub find_api { - BEGIN { 'warnings'->unimport('uninitialized') if "$]" > '5.006' } + BEGIN { 'warnings'->unimport('uninitialized') if "$]" > 5.006 } my $code = shift; $code =~ s{ / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*) @@ -594,7 +594,7 @@ for $filename (@files) { diag("Uses $func"); } } - $warnings += hint($func); + $warnings += (hint($func) || 0); } unless ($opt{quiet}) { @@ -882,7 +882,7 @@ sub hint $hint =~ s/^/ /mg; print " --- hint for $func ---\n", $hint; } - $rv; + $rv || 0; } sub usage diff --git a/dist/Devel-PPPort/parts/inc/ppphtest b/dist/Devel-PPPort/parts/inc/ppphtest index 9b13279f92e6..849eb16109c0 100644 --- a/dist/Devel-PPPort/parts/inc/ppphtest +++ b/dist/Devel-PPPort/parts/inc/ppphtest @@ -614,8 +614,8 @@ ok($o !~ /Uses SvPVutf8_force/m); $o = ppport(qw(--nochanges --compat-version=5.999.999)); ok($o !~ /Uses SvPVutf8_force/m); -$o = ppport(qw(--nochanges --compat-version=6.0.0)); -ok($o =~ /Only Perl 5 is supported/m); +$o = ppport(qw(--nochanges --compat-version=8.0.0)); +ok($o =~ /Only Perl \[57\] are supported/m); $o = ppport(qw(--nochanges --compat-version=5.1000.999)); ok($o =~ /Invalid version number: 5.1000.999/m); @@ -680,7 +680,7 @@ my %p; my $fail = 0; for (@o) { my($name, $flags) = /^(\w+)(?:\s+\[(\w+(?:,\s+\w+)*)\])?$/ or $fail++; - exists $p{$name} and $fail++; + { exists $p{$name} and $fail++; } $p{$name} = defined $flags ? { map { ($_ => 1) } $flags =~ /(\w+)/g } : ''; } ok(@o > 100); @@ -721,7 +721,7 @@ my %p; my $fail = 0; for (@o) { my($name, $ver) = /^(\w+)\s*\.+\s*([\d._]+)$/ or $fail++; - exists $p{$name} and $fail++; + { exists $p{$name} and $fail++; } $p{$name} = $ver; } ok(@o > 100); diff --git a/dist/Devel-PPPort/parts/inc/utf8 b/dist/Devel-PPPort/parts/inc/utf8 index 28f01c058d39..cf5dec060c0b 100644 --- a/dist/Devel-PPPort/parts/inc/utf8 +++ b/dist/Devel-PPPort/parts/inc/utf8 @@ -127,17 +127,14 @@ __UNDEFINED__ UTF8_IS_INVARIANT(c) (isASCII(c) || isCNTRL_L1(c)) __UNDEFINED__ UVCHR_IS_INVARIANT(c) UTF8_IS_INVARIANT(c) #ifdef UVCHR_IS_INVARIANT -# if 'A' == 65 -# ifdef QUADKIND -# define D_PPP_UVCHR_SKIP_UPPER(c) \ - (WIDEST_UTYPE) (c) < \ - (((WIDEST_UTYPE) 1) << (6 * D_PPP_BYTE_INFO_BITS)) ? 7 : 13 -# else -# define D_PPP_UVCHR_SKIP_UPPER(c) 7 /* 32 bit platform */ -# endif -# else - /* In the releases this is backported to, UTF-EBCDIC had a max of 2**31-1 */ +# if 'A' != 65 || UVSIZE < 8 + /* 32 bit platform, which includes UTF-EBCDIC on the releases this is + * backported to */ # define D_PPP_UVCHR_SKIP_UPPER(c) 7 +# else +# define D_PPP_UVCHR_SKIP_UPPER(c) \ + (((WIDEST_UTYPE) (c)) < \ + (((WIDEST_UTYPE) 1) << (6 * D_PPP_BYTE_INFO_BITS)) ? 7 : 13) # endif __UNDEFINED__ UVCHR_SKIP(c) \ @@ -821,7 +818,7 @@ else { # An empty input is an assertion failure on debugging builds. It is # deliberately the first test. - require Config; import Config; + require Config; Config->import; use vars '%Config'; # VMS doesn't put DEBUGGING in ccflags, and Windows doesn't have diff --git a/dist/Devel-PPPort/parts/inc/version b/dist/Devel-PPPort/parts/inc/version index c321b203c923..053a082a6bb5 100644 --- a/dist/Devel-PPPort/parts/inc/version +++ b/dist/Devel-PPPort/parts/inc/version @@ -15,6 +15,7 @@ PERL_REVISION PERL_VERSION PERL_SUBVERSION PERL_BCDVERSION +__UNDEFINED__ =dontwarn @@ -41,11 +42,12 @@ PERL_PATCHLEVEL_H_IMPLICIT #endif #define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) -#define PERL_BCDVERSION ((D_PPP_DEC2BCD(PERL_REVISION)<<24)|(D_PPP_DEC2BCD(PERL_VERSION)<<12)|D_PPP_DEC2BCD(PERL_SUBVERSION)) - -/* It is very unlikely that anyone will try to use this with Perl 6 - (or greater), but who knows. - */ -#if PERL_REVISION != 5 -# error ppport.h only works with Perl version 5 -#endif /* PERL_REVISION != 5 */ +#define D_PPP_RVS_TO_BCD(r,v,s) ((D_PPP_DEC2BCD(r)<<24)|(D_PPP_DEC2BCD(v)<<12)|D_PPP_DEC2BCD(s)) +#define PERL_BCDVERSION D_PPP_RVS_TO_BCD(PERL_REVISION, PERL_VERSION, PERL_SUBVERSION) + +__UNDEFINED__ PERL_VERSION_EQ(r,v,s) (PERL_BCDVERSION == D_PPP_RVS_TO_BCD(r,v,s)) +__UNDEFINED__ PERL_VERSION_NE(r,v,s) (! PERL_VERSION_EQ(r,v,s)) +__UNDEFINED__ PERL_VERSION_LT(r,v,s) (PERL_BCDVERSION < D_PPP_RVS_TO_BCD(r,v,s)) +__UNDEFINED__ PERL_VERSION_LE(r,v,s) (PERL_BCDVERSION <= D_PPP_RVS_TO_BCD(r,v,s)) +__UNDEFINED__ PERL_VERSION_GT(r,v,s) (! PERL_VERSION_LE(r,v,s)) +__UNDEFINED__ PERL_VERSION_GE(r,v,s) (! PERL_VERSION_LT(r,v,s)) diff --git a/dist/Devel-PPPort/parts/ppptools.pl b/dist/Devel-PPPort/parts/ppptools.pl index c73e2b016064..868e50541cb3 100644 --- a/dist/Devel-PPPort/parts/ppptools.pl +++ b/dist/Devel-PPPort/parts/ppptools.pl @@ -80,7 +80,7 @@ sub expand_version { my($op, $ver) = @_; my($r, $v, $s) = parse_version($ver); - $r == 5 or die "only Perl revision 5 is supported\n"; + $r =~ / ^ [57] $ /x or die "only Perl revisions [57] are supported\n"; my $bcdver = sprintf "0x%d%03d%03d", $r, $v, $s; return "(PERL_BCDVERSION $op $bcdver)"; } diff --git a/dist/Devel-PPPort/parts/todo/5003007 b/dist/Devel-PPPort/parts/todo/5003007 index fc87a0c321e1..2f50b422a164 100644 --- a/dist/Devel-PPPort/parts/todo/5003007 +++ b/dist/Devel-PPPort/parts/todo/5003007 @@ -39,7 +39,6 @@ CopyD # T CPPMINUS # T CPPSTDIN # T croak # T -croak_memory_wrap # T croak_no_modify # T croak_sv # T croak_xs_usage # T @@ -480,6 +479,12 @@ PERL_UQUAD_MIN # T PERL_USHORT_MAX # T PERL_USHORT_MIN # T PERL_VERSION # T +PERL_VERSION_EQ # T +PERL_VERSION_GE # T +PERL_VERSION_GT # T +PERL_VERSION_LE # T +PERL_VERSION_LT # T +PERL_VERSION_NE # T PL_bufend # T PL_bufptr # T PL_compiling # T diff --git a/dist/Devel-PPPort/t/01_test.t b/dist/Devel-PPPort/t/01_test.t index 0215f9020bc9..cbf56df12812 100644 --- a/dist/Devel-PPPort/t/01_test.t +++ b/dist/Devel-PPPort/t/01_test.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/HvNAME.t b/dist/Devel-PPPort/t/HvNAME.t index f0212e045130..e7ba8517518c 100644 --- a/dist/Devel-PPPort/t/HvNAME.t +++ b/dist/Devel-PPPort/t/HvNAME.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/MY_CXT.t b/dist/Devel-PPPort/t/MY_CXT.t index 7a7ce396c032..5555ee9d42ac 100644 --- a/dist/Devel-PPPort/t/MY_CXT.t +++ b/dist/Devel-PPPort/t/MY_CXT.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/SvPV.t b/dist/Devel-PPPort/t/SvPV.t index 7da38e254513..8a55c7e0ca22 100644 --- a/dist/Devel-PPPort/t/SvPV.t +++ b/dist/Devel-PPPort/t/SvPV.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/SvREFCNT.t b/dist/Devel-PPPort/t/SvREFCNT.t index d918e2b18a31..44be76ae8bf5 100644 --- a/dist/Devel-PPPort/t/SvREFCNT.t +++ b/dist/Devel-PPPort/t/SvREFCNT.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/Sv_set.t b/dist/Devel-PPPort/t/Sv_set.t index 821cf01fcce8..770f654a0f58 100644 --- a/dist/Devel-PPPort/t/Sv_set.t +++ b/dist/Devel-PPPort/t/Sv_set.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/call.t b/dist/Devel-PPPort/t/call.t index c26a5a6ec9c0..c09ce82e2d3e 100644 --- a/dist/Devel-PPPort/t/call.t +++ b/dist/Devel-PPPort/t/call.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/cop.t b/dist/Devel-PPPort/t/cop.t index 649b45d78eba..e90411c64ee0 100644 --- a/dist/Devel-PPPort/t/cop.t +++ b/dist/Devel-PPPort/t/cop.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/exception.t b/dist/Devel-PPPort/t/exception.t index 09633631fd3d..6e7434c8631f 100644 --- a/dist/Devel-PPPort/t/exception.t +++ b/dist/Devel-PPPort/t/exception.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/format.t b/dist/Devel-PPPort/t/format.t index ef471e096034..8767611a36da 100644 --- a/dist/Devel-PPPort/t/format.t +++ b/dist/Devel-PPPort/t/format.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/grok.t b/dist/Devel-PPPort/t/grok.t index 98c54a4954b6..0755a42c2a0a 100644 --- a/dist/Devel-PPPort/t/grok.t +++ b/dist/Devel-PPPort/t/grok.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/gv.t b/dist/Devel-PPPort/t/gv.t index 6e807687986b..f892fd19f437 100644 --- a/dist/Devel-PPPort/t/gv.t +++ b/dist/Devel-PPPort/t/gv.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/limits.t b/dist/Devel-PPPort/t/limits.t index d2dfc7ff1f15..f29400a242f4 100644 --- a/dist/Devel-PPPort/t/limits.t +++ b/dist/Devel-PPPort/t/limits.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/locale.t b/dist/Devel-PPPort/t/locale.t index 67929c469874..8bc9d5033c4e 100644 --- a/dist/Devel-PPPort/t/locale.t +++ b/dist/Devel-PPPort/t/locale.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/mPUSH.t b/dist/Devel-PPPort/t/mPUSH.t index fd4b499c411e..00c6bba022fe 100644 --- a/dist/Devel-PPPort/t/mPUSH.t +++ b/dist/Devel-PPPort/t/mPUSH.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/magic.t b/dist/Devel-PPPort/t/magic.t index 471c4853ae70..3afa99703551 100644 --- a/dist/Devel-PPPort/t/magic.t +++ b/dist/Devel-PPPort/t/magic.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/memory.t b/dist/Devel-PPPort/t/memory.t index 45bda3b30d48..fb42b2172765 100644 --- a/dist/Devel-PPPort/t/memory.t +++ b/dist/Devel-PPPort/t/memory.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/mess.t b/dist/Devel-PPPort/t/mess.t index 986d79bf2d60..eed8aeaa8e10 100644 --- a/dist/Devel-PPPort/t/mess.t +++ b/dist/Devel-PPPort/t/mess.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/misc.t b/dist/Devel-PPPort/t/misc.t index 6901a19ab9b1..2502aa493194 100644 --- a/dist/Devel-PPPort/t/misc.t +++ b/dist/Devel-PPPort/t/misc.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/newCONSTSUB.t b/dist/Devel-PPPort/t/newCONSTSUB.t index f279875d4596..663dd01c5c44 100644 --- a/dist/Devel-PPPort/t/newCONSTSUB.t +++ b/dist/Devel-PPPort/t/newCONSTSUB.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/newRV.t b/dist/Devel-PPPort/t/newRV.t index 211cdd617e22..9a2091b5081b 100644 --- a/dist/Devel-PPPort/t/newRV.t +++ b/dist/Devel-PPPort/t/newRV.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/newSV_type.t b/dist/Devel-PPPort/t/newSV_type.t index 1f82d4a721e9..10044f1de20e 100644 --- a/dist/Devel-PPPort/t/newSV_type.t +++ b/dist/Devel-PPPort/t/newSV_type.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/newSVpv.t b/dist/Devel-PPPort/t/newSVpv.t index a0a54e085cb5..fb1ec787ffe7 100644 --- a/dist/Devel-PPPort/t/newSVpv.t +++ b/dist/Devel-PPPort/t/newSVpv.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/podtest.t b/dist/Devel-PPPort/t/podtest.t index 73173b4b9fc6..f02fba3edfec 100644 --- a/dist/Devel-PPPort/t/podtest.t +++ b/dist/Devel-PPPort/t/podtest.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/ppphtest.t b/dist/Devel-PPPort/t/ppphtest.t index 70a1b4437bf3..26d683082a5a 100644 --- a/dist/Devel-PPPort/t/ppphtest.t +++ b/dist/Devel-PPPort/t/ppphtest.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; @@ -655,8 +655,8 @@ ok($o !~ /Uses SvPVutf8_force/m); $o = ppport(qw(--nochanges --compat-version=5.999.999)); ok($o !~ /Uses SvPVutf8_force/m); -$o = ppport(qw(--nochanges --compat-version=6.0.0)); -ok($o =~ /Only Perl 5 is supported/m); +$o = ppport(qw(--nochanges --compat-version=8.0.0)); +ok($o =~ /Only Perl \[57\] are supported/m); $o = ppport(qw(--nochanges --compat-version=5.1000.999)); ok($o =~ /Invalid version number: 5.1000.999/m); @@ -721,7 +721,7 @@ my %p; my $fail = 0; for (@o) { my($name, $flags) = /^(\w+)(?:\s+\[(\w+(?:,\s+\w+)*)\])?$/ or $fail++; - exists $p{$name} and $fail++; + { exists $p{$name} and $fail++; } $p{$name} = defined $flags ? { map { ($_ => 1) } $flags =~ /(\w+)/g } : ''; } ok(@o > 100); @@ -762,7 +762,7 @@ my %p; my $fail = 0; for (@o) { my($name, $ver) = /^(\w+)\s*\.+\s*([\d._]+)$/ or $fail++; - exists $p{$name} and $fail++; + { exists $p{$name} and $fail++; } $p{$name} = $ver; } ok(@o > 100); diff --git a/dist/Devel-PPPort/t/pv_tools.t b/dist/Devel-PPPort/t/pv_tools.t index d887eeac576f..dfd0c95e5b17 100644 --- a/dist/Devel-PPPort/t/pv_tools.t +++ b/dist/Devel-PPPort/t/pv_tools.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/pvs.t b/dist/Devel-PPPort/t/pvs.t index 7b96bb531d3c..eacbc09f070c 100644 --- a/dist/Devel-PPPort/t/pvs.t +++ b/dist/Devel-PPPort/t/pvs.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/shared_pv.t b/dist/Devel-PPPort/t/shared_pv.t index c705b18bef49..38b55e10b0fa 100644 --- a/dist/Devel-PPPort/t/shared_pv.t +++ b/dist/Devel-PPPort/t/shared_pv.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/snprintf.t b/dist/Devel-PPPort/t/snprintf.t index 5e6bb33a6be7..513fc6b486c2 100644 --- a/dist/Devel-PPPort/t/snprintf.t +++ b/dist/Devel-PPPort/t/snprintf.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/sprintf.t b/dist/Devel-PPPort/t/sprintf.t index 51a42b08c19a..50062d4e2362 100644 --- a/dist/Devel-PPPort/t/sprintf.t +++ b/dist/Devel-PPPort/t/sprintf.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/strlfuncs.t b/dist/Devel-PPPort/t/strlfuncs.t index dee840c36061..103c18f73a2f 100644 --- a/dist/Devel-PPPort/t/strlfuncs.t +++ b/dist/Devel-PPPort/t/strlfuncs.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/sv_xpvf.t b/dist/Devel-PPPort/t/sv_xpvf.t index 3ab10c961723..e71ea3bd966e 100644 --- a/dist/Devel-PPPort/t/sv_xpvf.t +++ b/dist/Devel-PPPort/t/sv_xpvf.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/threads.t b/dist/Devel-PPPort/t/threads.t index 0e16cc719c56..e0dce1775d4a 100644 --- a/dist/Devel-PPPort/t/threads.t +++ b/dist/Devel-PPPort/t/threads.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/utf8.t b/dist/Devel-PPPort/t/utf8.t index 12a593e20329..957a089d9d3d 100644 --- a/dist/Devel-PPPort/t/utf8.t +++ b/dist/Devel-PPPort/t/utf8.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; @@ -194,7 +194,7 @@ else { # An empty input is an assertion failure on debugging builds. It is # deliberately the first test. - require Config; import Config; + require Config; Config->import; use vars '%Config'; # VMS doesn't put DEBUGGING in ccflags, and Windows doesn't have diff --git a/dist/Devel-PPPort/t/uv.t b/dist/Devel-PPPort/t/uv.t index e915cfd0bcef..78b2a5495730 100644 --- a/dist/Devel-PPPort/t/uv.t +++ b/dist/Devel-PPPort/t/uv.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/variables.t b/dist/Devel-PPPort/t/variables.t index fb836f1be400..b23079171adf 100644 --- a/dist/Devel-PPPort/t/variables.t +++ b/dist/Devel-PPPort/t/variables.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main; diff --git a/dist/Devel-PPPort/t/warn.t b/dist/Devel-PPPort/t/warn.t index 734332a25a66..86d6677acd40 100644 --- a/dist/Devel-PPPort/t/warn.t +++ b/dist/Devel-PPPort/t/warn.t @@ -16,7 +16,7 @@ BEGIN { if ($ENV{'PERL_CORE'}) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib' && -d '../ext'; - require Config; import Config; + require Config; Config->import; use vars '%Config'; if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; @@ -48,7 +48,7 @@ package Devel::PPPort; use vars '@ISA'; require DynaLoader; @ISA = qw(DynaLoader); -bootstrap Devel::PPPort; +Devel::PPPort->bootstrap; package main;