diff --git a/.github/workflows/lite.yml b/.github/workflows/lite.yml new file mode 100644 index 00000000000..1ae37e11139 --- /dev/null +++ b/.github/workflows/lite.yml @@ -0,0 +1,55 @@ +name: lite + +on: + push: + branches: + - "**" + tags-ignore: + - "*" + pull_request: + +jobs: + +## ------------------------------------------------------------------------------------------- +## ------------------------------------------------------------------------------------------- + + linux: + name: "linux ${{ matrix.configure }}" + runs-on: ubuntu-latest + timeout-minutes: 120 + + strategy: + fail-fast: false + matrix: + configure: + [ + "", + "-Dusethreads", + ] + env: + PERL_SKIP_TTY_TEST: 1 + CONTINUOUS_INTEGRATION: 1 + WORKSPACE: ${{ github.workspace }} + + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: git cfg + fetch tags + run: | + git config diff.renameLimit 999999 + git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - name: Configure + run: | + ./Configure -des -Dusedevel ${{ matrix.configure }} -Dprefix="$HOME/perl-blead" -DDEBUGGING + - name: Build + run: | + make -j2 + - name: Run Tests + run: | + TEST_JOBS=2 make -j2 test + diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml.off similarity index 100% rename from .github/workflows/testsuite.yml rename to .github/workflows/testsuite.yml.off diff --git a/.gitignore b/.gitignore index 594952ccf4c..2f72d8e93c6 100644 --- a/.gitignore +++ b/.gitignore @@ -205,3 +205,6 @@ GTAGS # generated by Porting/sync-with-cpan /make.log + +# ignore core dumps +*.core diff --git a/.travis.yml b/.travis.yml index df0d5cf6089..f0304373890 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,15 +22,16 @@ env: - CONFIGURE_ARGS='-Uusethreads' - CONFIGURE_ARGS='-Dusethreads' # test scripts can be sensitive to PERL_UNICODE, and check long doubles - - CONFIGURE_ARGS='-Duseshrplib -Dusesitecustomize -Duselongdouble' PERL_UNICODE='' LANG='en_US.UTF-8' + #- CONFIGURE_ARGS='-Duseshrplib -Dusesitecustomize -Duselongdouble' PERL_UNICODE='' LANG='en_US.UTF-8' # we've rarely had a problem with non-Englush locales, and exercise quadmath - - CONFIGURE_ARGS='-Duseshrplib -Dusequadmath -Dusecbacktrace -Dusethreads' PERL_UNICODE='' LANG='de_DE.UTF-8' + #- CONFIGURE_ARGS='-Duseshrplib -Dusequadmath -Dusecbacktrace -Dusethreads' PERL_UNICODE='' LANG='de_DE.UTF-8' matrix: fast_finish: true script: - - ./Configure -des -Dusedevel -Uversiononly -Dcc="ccache $CC" $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead -DDEBUGGING + - echo "disabled" + #- ./Configure -des -Dusedevel -Uversiononly -Dcc="ccache $CC" $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead -DDEBUGGING # all script commands are always run # rather than using one very long oneliner using '&&', just always check the build status - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then TEST_JOBS=$JOBS make -j$JOBS test_harness_notty; fi @@ -47,23 +48,23 @@ addons: - zlib1g-dev - libbz2-dev -notifications: -## use dedicated email for smoking ? -# email: -# recipients: -# - perl5-porters@perl.org -# on_success: never # default: change -# on_failure: always # default: always - irc: - nick: travisci - channels: - - "irc.perl.org#p5p-qa" -# - "irc.perl.org#bot-test" - template: - - "Report for %{repository} (%{commit}) from %{author} (%{elapsed_time})" - - "Status: %{message}" - - "Build URL: %{build_url}" - - "GitHub URL: https://github.com/%{repository_slug}/commit/%{commit}" - on_success: change # default: always - on_failure: always # default: always -# use_notice: true +# notifications: +# ## use dedicated email for smoking ? +# # email: +# # recipients: +# # - perl5-porters@perl.org +# # on_success: never # default: change +# # on_failure: always # default: always +# irc: +# nick: travisci +# channels: +# - "irc.perl.org#p5p-qa" +# # - "irc.perl.org#bot-test" +# template: +# - "Report for %{repository} (%{commit}) from %{author} (%{elapsed_time})" +# - "Status: %{message}" +# - "Build URL: %{build_url}" +# - "GitHub URL: https://github.com/%{repository_slug}/commit/%{commit}" +# on_success: change # default: always +# on_failure: always # default: always +# # use_notice: true diff --git a/Configure b/Configure index cef8c3c078b..9c76d54fc9d 100755 --- a/Configure +++ b/Configure @@ -1901,7 +1901,7 @@ fi touch posthint.sh : set package name -package='perl5' +package='perl7' first=`echo $package | sed -e 's/^\(.\).*/\1/'` last=`echo $package | sed -e 's/^.\(.*\)/\1/'` case "`echo AbyZ | tr '[:lower:]' '[:upper:]' 2>/dev/null`"-"`echo AbyZ | tr '[:upper:]' '[:lower:]' 2>/dev/null`" in @@ -2290,7 +2290,7 @@ You may safely delete it if you wish. EOF : See if we are using a devel version and want that -xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` +xversion=`awk '/define[ ]+PERL_VERSION_MINOR/ {print $3}' $rsrc/patchlevel.h` case "$usedevel" in $define|true|[yY]*) usedevel="$define" ;; @@ -4339,9 +4339,9 @@ esac' echo " " echo "Getting the current patchlevel..." >&4 if $test -r $rsrc/patchlevel.h;then - revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` - patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` - subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` + revision=`awk '/define[ ]+PERL_VERSION_MAJOR/ {print $3}' $rsrc/patchlevel.h` + patchlevel=`awk '/define[ ]+PERL_VERSION_MINOR/ {print $3}' $rsrc/patchlevel.h` + subversion=`awk '/define[ ]+PERL_VERSION_PATCH/ {print $3}' $rsrc/patchlevel.h` api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` @@ -9637,7 +9637,7 @@ case "$usecbacktrace" in : Check if faststdio is requested and available case "$usefaststdio" in $define|true|[yY]*|'') - xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` + xversion=`awk '/define[ ]+PERL_VERSION_MINOR/ {print $3}' $rsrc/patchlevel.h` case "$xversion" in [68]) dflt='y' ;; *) dflt='n' ;; diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux index 8813d1d4b90..f4cbbba5370 100644 --- a/Cross/config.sh-arm-linux +++ b/Cross/config.sh-arm-linux @@ -31,12 +31,12 @@ afsroot='/afs' alignbytes='4' aphostname='/bin/hostname' api_revision='5' -api_subversion='1' -api_version='33' -api_versionstring='5.33.1' +api_subversion='0' +api_version='1' +api_versionstring='7.1.0' ar='ar' -archlib='/usr/lib/perl5/5.33.1/armv4l-linux' -archlibexp='/usr/lib/perl5/5.33.1/armv4l-linux' +archlib='/usr/lib/perl/7.1.0/armv4l-linux' +archlibexp='/usr/lib/perl/7.1.0/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -55,7 +55,7 @@ castflags='0' cat='cat' cc='cc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.33.1/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl/7.1.0/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -824,7 +824,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.33.1/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl/7.1.0/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -832,13 +832,13 @@ installman1dir='./install_me_here/usr/share/man/man1' installman3dir='./install_me_here/usr/share/man/man3' installprefix='./install_me_here/usr' installprefixexp='./install_me_here/usr' -installprivlib='./install_me_here/usr/lib/perl5/5.33.1' +installprivlib='./install_me_here/usr/lib/perl/7.1.0' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl/site_perl/7.1.0/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.33.1' +installsitelib='./install_me_here/usr/lib/perl/site_perl/7.1.0' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -952,7 +952,7 @@ orderlib='false' osname='linux' osvers='2.4.6-rmk1-np2-embedix' otherlibdirs=' ' -package='perl5' +package='perl7' pager='/usr/bin/less' passcat='cat /etc/passwd' patchlevel='9' @@ -972,8 +972,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.33.1' -privlibexp='/usr/lib/perl5/5.33.1' +privlib='/usr/lib/perl/7.1.0' +privlibexp='/usr/lib/perl/7.1.0' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1038,17 +1038,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0' sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' +sitearch='/usr/lib/perl/site_perl/7.1.0/armv4l-linux' +sitearchexp='/usr/lib/perl/site_perl/7.1.0/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.33.1' +sitelib='/usr/lib/perl/site_perl/7.1.0' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.33.1' +sitelibexp='/usr/lib/perl/site_perl/7.1.0' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1178,8 +1178,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.33.1' -version_patchlevel_string='version 33 subversion 1' +version='7.1.0' +version_patchlevel_string='version 1 subversion 0' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1191,11 +1191,11 @@ zip='zip' config_arg0='Configure' config_args='' config_argc=0 -PERL_REVISION=5 -PERL_VERSION=33 -PERL_SUBVERSION=1 -PERL_API_REVISION=5 -PERL_API_VERSION=33 -PERL_API_SUBVERSION=1 +PERL_VERSION_MAJOR=7 +PERL_VERSION_MINOR=1 +PERL_VERSION_PATCH=0 +PERL_API_REVISION=7 +PERL_API_VERSION=1 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770 index 30c37cff796..6ede5e25914 100644 --- a/Cross/config.sh-arm-linux-n770 +++ b/Cross/config.sh-arm-linux-n770 @@ -31,12 +31,12 @@ afsroot='/afs' alignbytes='4' aphostname='/bin/hostname' api_revision='5' -api_subversion='1' -api_version='33' -api_versionstring='5.33.1' +api_subversion='0' +api_version='1' +api_versionstring='7.1.0' ar='ar' -archlib='/usr/lib/perl5/5.33.1/armv4l-linux' -archlibexp='/usr/lib/perl5/5.33.1/armv4l-linux' +archlib='/usr/lib/perl/7.1.0/armv4l-linux' +archlibexp='/usr/lib/perl/7.1.0/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -54,7 +54,7 @@ castflags='0' cat='cat' cc='arm-none-linux-gnueabi-gcc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.33.1/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl/7.1.0/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -822,7 +822,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.33.1/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl/7.1.0/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -830,13 +830,13 @@ installman1dir='./install_me_here/usr/share/man/man1' installman3dir='./install_me_here/usr/share/man/man3' installprefix='./install_me_here/usr' installprefixexp='./install_me_here/usr' -installprivlib='./install_me_here/usr/lib/perl5/5.33.1' +installprivlib='./install_me_here/usr/lib/perl/7.1.0' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl/site_perl/7.1.0/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.33.1' +installsitelib='./install_me_here/usr/lib/perl/site_perl/7.1.0' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -950,7 +950,7 @@ orderlib='false' osname='linux' osvers='2.6' otherlibdirs=' ' -package='perl5' +package='perl7' pager='/usr/bin/less' passcat='cat /etc/passwd' patchlevel='11' @@ -970,8 +970,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.33.1' -privlibexp='/usr/lib/perl5/5.33.1' +privlib='/usr/lib/perl/7.1.0' +privlibexp='/usr/lib/perl/7.1.0' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1036,17 +1036,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0' sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.33.1/armv4l-linux' +sitearch='/usr/lib/perl/site_perl/7.1.0/armv4l-linux' +sitearchexp='/usr/lib/perl/site_perl/7.1.0/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.33.1' +sitelib='/usr/lib/perl/site_perl/7.1.0' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.33.1' +sitelibexp='/usr/lib/perl/site_perl/7.1.0' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1176,8 +1176,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.33.1' -version_patchlevel_string='version 33 subversion 1' +version='7.1.0' +version_patchlevel_string='version 1 subversion 0' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1189,11 +1189,11 @@ zip='zip' config_arg0='Configure' config_args='' config_argc=0 -PERL_REVISION=5 -PERL_VERSION=33 -PERL_SUBVERSION=1 -PERL_API_REVISION=5 -PERL_API_VERSION=33 -PERL_API_SUBVERSION=1 +PERL_VERSION_MAJOR=7 +PERL_VERSION_MINOR=1 +PERL_VERSION_PATCH=0 +PERL_API_REVISION=7 +PERL_API_VERSION=1 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/INSTALL b/INSTALL index 7acf874f70a..ac73ca0e21b 100644 --- a/INSTALL +++ b/INSTALL @@ -615,7 +615,7 @@ The directories set up by Configure fall into three broad categories. =item Directories for the perl distribution -By default, Configure will use the following directories for 5.33.1. +By default, Configure will use the following directories for 7.1.0. $version is the full perl version number, including subversion, e.g. 5.12.3, and $archname is a string like sun4-sunos, determined by Configure. The full definitions of all Configure @@ -2438,7 +2438,7 @@ L =head1 Coexistence with earlier versions of perl 5 -Perl 5.33.1 is not binary compatible with earlier versions of Perl. +Perl 7.1.0 is not binary compatible with earlier versions of Perl. In other words, you will have to recompile your XS modules. In general, you can usually safely upgrade from one stable version of Perl @@ -2513,9 +2513,9 @@ won't interfere with another version. (The defaults guarantee this for libraries after 5.6.0, but not for executables. TODO?) One convenient way to do this is by using a separate prefix for each version, such as - sh Configure -Dprefix=/opt/perl5.33.1 + sh Configure -Dprefix=/opt/perl7.1.0 -and adding /opt/perl5.33.1/bin to the shell PATH variable. Such users +and adding /opt/perl7.1.0/bin to the shell PATH variable. Such users may also wish to add a symbolic link /usr/local/bin/perl so that scripts can still start with #!/usr/local/bin/perl. @@ -2530,11 +2530,11 @@ yet. =head2 Upgrading from 5.32.0 or earlier -B Perl modules having binary parts (meaning that a C compiler is used) will have to be recompiled to be -used with 5.33.1. If you find you do need to rebuild an extension with -5.33.1, you may safely do so without disturbing the older +used with 7.1.0. If you find you do need to rebuild an extension with +7.1.0, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl 5"> above.) @@ -2567,15 +2567,15 @@ Firstly, the bare minimum to run this script print("$f\n"); } -in Linux with perl-5.33.1 is as follows (under $Config{prefix}): +in Linux with perl-7.1.0 is as follows (under $Config{prefix}): ./bin/perl - ./lib/perl5/5.33.1/strict.pm - ./lib/perl5/5.33.1/warnings.pm - ./lib/perl5/5.33.1/i686-linux/File/Glob.pm - ./lib/perl5/5.33.1/feature.pm - ./lib/perl5/5.33.1/XSLoader.pm - ./lib/perl5/5.33.1/i686-linux/auto/File/Glob/Glob.so + ./lib/perl/7.1.0/strict.pm + ./lib/perl/7.1.0/warnings.pm + ./lib/perl/7.1.0/i686-linux/File/Glob.pm + ./lib/perl/7.1.0/feature.pm + ./lib/perl/7.1.0/XSLoader.pm + ./lib/perl/7.1.0/i686-linux/auto/File/Glob/Glob.so Secondly, for perl-5.10.1, the Debian perl-base package contains 591 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its diff --git a/META.json b/META.json index 5ebde5e3be5..5afd09ce10e 100644 --- a/META.json +++ b/META.json @@ -130,6 +130,6 @@ "url" : "https://github.com/Perl/perl5" } }, - "version" : "5.033001", + "version" : "7.001000", "x_serialization_backend" : "JSON::PP version 4.05" } diff --git a/META.yml b/META.yml index 2587f06a8d2..b45e9d2a734 100644 --- a/META.yml +++ b/META.yml @@ -117,5 +117,5 @@ resources: homepage: https://www.perl.org/ license: https://dev.perl.org/licenses/ repository: https://github.com/Perl/perl5 -version: '5.033001' +version: '7.001000' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/Makefile.SH b/Makefile.SH index 236ef493c29..fb386558993 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -589,7 +589,7 @@ esac $spitshell >>$Makefile <<'!NO!SUBS!' -perltoc_pod_prereqs = extra.pods pod/perl5331delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl710delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) generated_headers = uudmap.h bitcount.h mg_data.h @@ -1153,9 +1153,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST $(MINIPERL) pod/perlmodlib.PL -q -pod/perl5331delta.pod: pod/perldelta.pod - $(RMS) pod/perl5331delta.pod - $(LNS) perldelta.pod pod/perl5331delta.pod +pod/perl710delta.pod: pod/perldelta.pod + $(RMS) pod/perl710delta.pod + $(LNS) perldelta.pod pod/perl710delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/NetWare/Makefile b/NetWare/Makefile index 07d31f0e12a..b083de0e4b8 100644 --- a/NetWare/Makefile +++ b/NetWare/Makefile @@ -86,7 +86,7 @@ NLM_VERSION = 3,20,0 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW - -MODULE_DESC = "Perl 5.33.1 for NetWare" +MODULE_DESC = "Perl 7.1.0 for NetWare" CCTYPE = CodeWarrior C_COMPILER = mwccnlm -c CPP_COMPILER = mwccnlm @@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER = \5.33.1 +INST_VER = \7.1.0 # # Comment this out if you DON'T want your perl installation to have diff --git a/NetWare/Nwmain.c b/NetWare/Nwmain.c index 0b9728a8ac8..ebf99d31d3d 100644 --- a/NetWare/Nwmain.c +++ b/NetWare/Nwmain.c @@ -1337,12 +1337,12 @@ void fnGetPerlScreenName(char *sPerlScreenName) char sPerlVersion[32 * sizeof(char)] = {'\0'}; char sPerlSubVersion[32 * sizeof(char)] = {'\0'}; - // The defines for PERL_REVISION, PERL_VERSION, PERL_SUBVERSION are available in + // The defines for PERL_VERSION_MAJOR, PERL_VERSION_MINOR, PERL_VERSION_PATCH are available in // patchlevel.h under root and gets included when perl.h is included. // The number 10 below indicates base 10. - itoa(PERL_REVISION, sPerlRevision, 10); - itoa(PERL_VERSION, sPerlVersion, 10); - itoa(PERL_SUBVERSION, sPerlSubVersion, 10); + itoa(PERL_VERSION_MAJOR, sPerlRevision, 10); + itoa(PERL_VERSION_MINOR, sPerlVersion, 10); + itoa(PERL_VERSION_PATCH, sPerlSubVersion, 10); // Concatenate substrings to get a string like Perl5.6.1 which is used as the screen name. sprintf(sPerlScreenName, "%s%s.%s.%s", PERL_COMMAND_NAME, diff --git a/NetWare/config.wc b/NetWare/config.wc index b0a02f56052..553f8ed40ac 100644 --- a/NetWare/config.wc +++ b/NetWare/config.wc @@ -927,7 +927,7 @@ orderlib='false' osname='NetWare' osvers='5.x' otherlibdirs='' -package='perl5' +package='perl7' pager='more /e' passcat='' patchlevel='~PATCHLEVEL~' @@ -1136,14 +1136,14 @@ vi='' xlibpth='/usr/lib/386 /lib/386' zcat='' zip='zip' -PERL_REVISION='~PERL_REVISION~' -PERL_SUBVERSION='~PERL_SUBVERSION~' -PERL_VERSION='~PERL_VERSION~' +PERL_VERSION_MAJOR='~PERL_VERSION_MAJOR~' +PERL_VERSION_PATCH='~PERL_VERSION_PATCH~' +PERL_VERSION_MINOR='~PERL_VERSION_MINOR~' PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' +PATCHLEVEL='~PERL_VERSION_MINOR~' +SUBVERSION='~PERL_VERSION_PATCH~' PERL_CONFIG_SH='true' base_import='' nlm_version='' diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc index dc55b95f2df..cc8bb97963d 100644 --- a/NetWare/config_H.wc +++ b/NetWare/config_H.wc @@ -887,7 +887,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.33.1\\lib\\NetWare-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\7.1.0\\lib\\NetWare-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -918,8 +918,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.33.1\\bin\\NetWare-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.33.1\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN "c:\\perl\\7.1.0\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\7.1.0\\bin\\NetWare-x86-multi-thread" /**/ /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, @@ -2878,7 +2878,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.33.1\\lib\\NetWare-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\7.1.0\\lib\\NetWare-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2901,7 +2901,7 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.33.1\\lib" /**/ +#define SITELIB "c:\\perl\\site\\7.1.0\\lib" /**/ /*#define SITELIB_EXP "" /**/ #define SITELIB_STEM "" /**/ diff --git a/NetWare/config_sh.PL b/NetWare/config_sh.PL index d2daf0ecc16..8150834fd03 100644 --- a/NetWare/config_sh.PL +++ b/NetWare/config_sh.PL @@ -54,7 +54,7 @@ if (-e $pl_h) { else { die "Can't find $pl_h: $!"; } -$opt{VERSION} = "$opt{PERL_REVISION}.$opt{PERL_VERSION}.$opt{PERL_SUBVERSION}"; +$opt{VERSION} = "$opt{PERL_VERSION_MAJOR}.$opt{PERL_VERSION_MINOR}.$opt{PERL_VERSION_PATCH}"; $opt{INST_VER} =~ s|~VERSION~|$opt{VERSION}|g; $opt{'cf_by'} = $ENV{USERNAME} unless $opt{'cf_by'}; diff --git a/Porting/Glossary b/Porting/Glossary index e11e4eed234..65ea9648cbe 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -4578,7 +4578,7 @@ patchlevel (patchlevel.U): The patchlevel level of this package. The value of patchlevel comes from the patchlevel.h file. In a version number such as 5.6.1, this is the "6". - In patchlevel.h, this is referred to as "PERL_VERSION". + In patchlevel.h, this is referred to as "PERL_VERSION_MINOR". path_sep (Unix.U): This is an old synonym for p_ in Head.U, the character @@ -4595,21 +4595,21 @@ perl5 (perl5.U): to determine inc_version_list. PERL_API_REVISION (patchlevel.h): - This number describes the earliest compatible PERL_REVISION of + This number describes the earliest compatible PERL_VERSION_MAJOR of Perl ("compatibility" here being defined as sufficient binary/API compatibility to run XS code built with the older version). Normally this does not change across maintenance releases. Please read the comment in patchlevel.h. PERL_API_SUBVERSION (patchlevel.h): - This number describes the earliest compatible PERL_SUBVERSION of + This number describes the earliest compatible PERL_VERSION_PATCH of Perl ("compatibility" here being defined as sufficient binary/API compatibility to run XS code built with the older version). Normally this does not change across maintenance releases. Please read the comment in patchlevel.h. PERL_API_VERSION (patchlevel.h): - This number describes the earliest compatible PERL_VERSION of + This number describes the earliest compatible PERL_VERSION_MINOR of Perl ("compatibility" here being defined as sufficient binary/API compatibility to run XS code built with the older version). Normally this does not change across maintenance releases. @@ -4632,7 +4632,7 @@ perl_patchlevel (patchlevel.U): the maintenance versus development dichotomy except by also being increasing. -PERL_REVISION (Oldsyms.U): +PERL_VERSION_MAJOR (Oldsyms.U): In a Perl version number such as 5.6.2, this is the 5. This value is manually set in patchlevel.h @@ -4646,13 +4646,13 @@ perl_static_inline (d_static_inline.U): static _inline (older MSVC) static (c89 compilers) -PERL_SUBVERSION (Oldsyms.U): +PERL_VERSION_PATCH (Oldsyms.U): In a Perl version number such as 5.6.2, this is the 2. Values greater than 50 represent potentially unstable development subversions. This value is manually set in patchlevel.h -PERL_VERSION (Oldsyms.U): +PERL_VERSION_MINOR (Oldsyms.U): In a Perl version number such as 5.6.2, this is the 6. This value is manually set in patchlevel.h @@ -4785,7 +4785,7 @@ readdir_r_proto (d_readdir_r.U): revision (patchlevel.U): The value of revision comes from the patchlevel.h file. In a version number such as 5.6.1, this is the "5". - In patchlevel.h, this is referred to as "PERL_REVISION". + In patchlevel.h, this is referred to as "PERL_VERSION_MAJOR". rm (Loc.U): This variable is used internally by Configure to determine the @@ -5329,7 +5329,7 @@ subversion (patchlevel.U): The subversion level of this package. The value of subversion comes from the patchlevel.h file. In a version number such as 5.6.1, this is the "1". - In patchlevel.h, this is referred to as "PERL_SUBVERSION". + In patchlevel.h, this is referred to as "PERL_VERSION_PATCH". This is unique to perl. sysman (sysman.U): diff --git a/Porting/bisect-runner.pl b/Porting/bisect-runner.pl index b6c75a9ad4f..61e3ff52f50 100755 --- a/Porting/bisect-runner.pl +++ b/Porting/bisect-runner.pl @@ -1495,10 +1495,10 @@ sub match_and_exit { if defined $dev_c && $dev_C == $dev_c && $ino_C == $ino_c; } -# This changes to PERL_VERSION in 4d8076ea25903dcb in 1999 +# This changes to PERL_VERSION_MINOR in 4d8076ea25903dcb in 1999 my $major = extract_from_file('patchlevel.h', - qr/^#define\s+(?:PERL_VERSION|PATCHLEVEL)\s+(\d+)\s/, + qr/^#define\s+(?:PERL_VERSION_MINOR|PERL_VERSION|PATCHLEVEL)\s+(\d+)\s/, 0); my $unfixable_db_file; diff --git a/Porting/bump-perl-version b/Porting/bump-perl-version index fcc5eb2ab71..0de430c6ad7 100644 --- a/Porting/bump-perl-version +++ b/Porting/bump-perl-version @@ -31,7 +31,7 @@ # all of the changes at once and then edit the results via git). # This utility 'knows' about certain files and formats, and so can spot -# 'hidden' version numbers, like PERL_SUBVERSION=9. +# 'hidden' version numbers, like PERL_VERSION_PATCH=9. # # A third variant makes use of this knowledge to check that all the things # it knows about are at the current version: @@ -63,7 +63,7 @@ usage: $0 -c -i -c check files and warn if any known string values (eg - PERL_SUBVERSION) don't match the specified version + PERL_VERSION_PATCH) don't match the specified version -s scan files and produce list of possible change lines to stdout @@ -91,9 +91,9 @@ else { } usage('only one of -c, -s, -u and -i') if keys %opts > 1; -my ($oldx, $oldy, $oldz) = $ARGV[0] =~ /^(\d+)\.(\d+)\.(\d+)$/ +my ($oldx, $oldy, $oldz) = $ARGV[0] =~ /^(\d+)\.(\d+)\.(\d+)$/a or usage("bad version: $ARGV[0]"); -my ($newx, $newy, $newz) = $ARGV[1] =~ /^(\d+)\.(\d+)\.(\d+)$/ +my ($newx, $newy, $newz) = $ARGV[1] =~ /^(\d+)\.(\d+)\.(\d+)$/a or usage("bad version: $ARGV[1]"); my $old_decimal = sprintf "%d.%03d%03d", $oldx, $oldy, $oldz; # 5.011001 @@ -142,12 +142,22 @@ my @maps = ( qr/config/, ], [ - qr{\b (PERL_(?:API_)?VERSION(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, + qr{\b (PERL_API_VERSION(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, sub { $2, "$1$newy$3"}, $oldy, ], [ - qr{\b (PERL_SUBVERSION(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, + qr{\b (PERL_VERSION_MAJOR(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, + sub { $2, "$1$newx$3"}, + $oldy, + ], + [ + qr{\b (PERL_VERSION_MINOR(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, + sub { $2, "$1$newy$3"}, + $oldy, + ], + [ + qr{\b (PERL_VERSION_PATCH(?:=|\s+)'?) (\d+) ('?) (?!\.)}x, sub { $2, "$1$newz$3"}, ($oldy % 2) ? $oldz : 0, ], diff --git a/Porting/config.sh b/Porting/config.sh index 122a61982a1..6f2b4c64bfd 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -43,13 +43,13 @@ afs='false' afsroot='/afs' alignbytes='8' aphostname='' -api_revision='5' -api_subversion='1' -api_version='33' -api_versionstring='5.33.1' +api_revision='7' +api_subversion='0' +api_version='1' +api_versionstring='7.1.0' ar='ar' -archlib='/opt/perl/lib/5.33.1/x86_64-linux' -archlibexp='/opt/perl/lib/5.33.1/x86_64-linux' +archlib='/opt/perl/lib/7.1.0/x86_64-linux' +archlibexp='/opt/perl/lib/7.1.0/x86_64-linux' archname64='' archname='x86_64-linux' archobjs='' @@ -848,7 +848,7 @@ incpath='' incpth='/usr/lib/gcc/x86_64-linux-gnu/4.9/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/include' inews='' initialinstalllocation='/opt/perl/bin' -installarchlib='/opt/perl/lib/5.33.1/x86_64-linux' +installarchlib='/opt/perl/lib/7.1.0/x86_64-linux' installbin='/opt/perl/bin' installhtml1dir='' installhtml3dir='' @@ -856,13 +856,13 @@ installman1dir='/opt/perl/man/man1' installman3dir='/opt/perl/man/man3' installprefix='/opt/perl' installprefixexp='/opt/perl' -installprivlib='/opt/perl/lib/5.33.1' +installprivlib='/opt/perl/lib/7.1.0' installscript='/opt/perl/bin' -installsitearch='/opt/perl/lib/site_perl/5.33.1/x86_64-linux' +installsitearch='/opt/perl/lib/site_perl/7.1.0/x86_64-linux' installsitebin='/opt/perl/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/opt/perl/lib/site_perl/5.33.1' +installsitelib='/opt/perl/lib/site_perl/7.1.0' installsiteman1dir='/opt/perl/man/man1' installsiteman3dir='/opt/perl/man/man3' installsitescript='/opt/perl/bin' @@ -976,7 +976,7 @@ orderlib='false' osname='linux' osvers='3.16.0-4-amd64' otherlibdirs=' ' -package='perl5' +package='perl7' pager='/usr/bin/less -R' passcat='cat /etc/passwd' patchlevel='27' @@ -987,7 +987,7 @@ perl_patchlevel='' perl_static_inline='static __inline__' perladmin='yourname@yourhost.yourplace.com' perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc' -perlpath='/opt/perl/bin/perl5.33.1' +perlpath='/opt/perl/bin/perl7.1.0' pg='pg' phostname='' pidtype='pid_t' @@ -996,8 +996,8 @@ pmake='' pr='' prefix='/opt/perl' prefixexp='/opt/perl' -privlib='/opt/perl/lib/5.33.1' -privlibexp='/opt/perl/lib/5.33.1' +privlib='/opt/perl/lib/7.1.0' +privlibexp='/opt/perl/lib/7.1.0' procselfexe='"/proc/self/exe"' ptrsize='8' quadkind='2' @@ -1062,17 +1062,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' sig_size='69' signal_t='void' -sitearch='/opt/perl/lib/site_perl/5.33.1/x86_64-linux' -sitearchexp='/opt/perl/lib/site_perl/5.33.1/x86_64-linux' +sitearch='/opt/perl/lib/site_perl/7.1.0/x86_64-linux' +sitearchexp='/opt/perl/lib/site_perl/7.1.0/x86_64-linux' sitebin='/opt/perl/bin' sitebinexp='/opt/perl/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/opt/perl/lib/site_perl/5.33.1' +sitelib='/opt/perl/lib/site_perl/7.1.0' sitelib_stem='/opt/perl/lib/site_perl' -sitelibexp='/opt/perl/lib/site_perl/5.33.1' +sitelibexp='/opt/perl/lib/site_perl/7.1.0' siteman1dir='/opt/perl/man/man1' siteman1direxp='/opt/perl/man/man1' siteman3dir='/opt/perl/man/man3' @@ -1098,7 +1098,7 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/opt/perl/bin/perl5.33.1' +startperl='#!/opt/perl/bin/perl7.1.0' startsh='#!/bin/sh' static_ext=' ' stdchar='char' @@ -1208,8 +1208,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.33.1' -version_patchlevel_string='version 33 subversion 1' +version='7.1.0' +version_patchlevel_string='version 1 subversion 0' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1217,12 +1217,12 @@ yacc='yacc' yaccflags='' zcat='' zip='zip' -PERL_REVISION=5 -PERL_VERSION=33 -PERL_SUBVERSION=1 -PERL_API_REVISION=5 -PERL_API_VERSION=33 -PERL_API_SUBVERSION=1 +PERL_VERSION_MAJOR=7 +PERL_VERSION_MINOR=1 +PERL_VERSION_PATCH=0 +PERL_API_REVISION=7 +PERL_API_VERSION=1 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL='' PERL_CONFIG_SH=true : Variables propagated from previous config.sh file. diff --git a/Porting/config_H b/Porting/config_H index 708add2bb70..131780a7498 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -1239,8 +1239,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "/opt/perl/lib/5.33.1/x86_64-linux" /**/ -#define ARCHLIB_EXP "/opt/perl/lib/5.33.1/x86_64-linux" /**/ +#define ARCHLIB "/opt/perl/lib/7.1.0/x86_64-linux" /**/ +#define ARCHLIB_EXP "/opt/perl/lib/7.1.0/x86_64-linux" /**/ /* BIN: * This symbol holds the path of the bin directory where the package will @@ -1293,8 +1293,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/opt/perl/lib/5.33.1" /**/ -#define PRIVLIB_EXP "/opt/perl/lib/5.33.1" /**/ +#define PRIVLIB "/opt/perl/lib/7.1.0" /**/ +#define PRIVLIB_EXP "/opt/perl/lib/7.1.0" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1311,8 +1311,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "/opt/perl/lib/site_perl/5.33.1/x86_64-linux" /**/ -#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.33.1/x86_64-linux" /**/ +#define SITEARCH "/opt/perl/lib/site_perl/7.1.0/x86_64-linux" /**/ +#define SITEARCH_EXP "/opt/perl/lib/site_perl/7.1.0/x86_64-linux" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1334,8 +1334,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "/opt/perl/lib/site_perl/5.33.1" /**/ -#define SITELIB_EXP "/opt/perl/lib/site_perl/5.33.1" /**/ +#define SITELIB "/opt/perl/lib/site_perl/7.1.0" /**/ +#define SITELIB_EXP "/opt/perl/lib/site_perl/7.1.0" /**/ #define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* PERL_VENDORARCH: @@ -4109,7 +4109,7 @@ * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/opt/perl/bin/perl5.33.1" /**/ +#define STARTPERL "#!/opt/perl/bin/perl7.1.0" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array diff --git a/Porting/makemeta b/Porting/makemeta index 760377e060e..e204ea8b333 100644 --- a/Porting/makemeta +++ b/Porting/makemeta @@ -131,9 +131,9 @@ sub _determine_status { } } unless ( $status ) { - $status = $defines{PERL_VERSION} % 2 ? 'unstable' : 'stable'; + $status = $defines{PERL_VERSION_MINOR} % 2 ? 'unstable' : 'stable'; } - if ( my @wotsits = grep { defined $defines{$_} } qw(PERL_REVISION PERL_VERSION PERL_SUBVERSION) ) { + if ( my @wotsits = grep { defined $defines{$_} } qw(PERL_VERSION_MAJOR PERL_VERSION_MINOR PERL_VERSION_PATCH) ) { $version = sprintf '%d.%03d%03d', map { $defines{$_} } @wotsits; } else { diff --git a/Porting/makerel b/Porting/makerel index b08a28733a6..ef7e39f2d9b 100755 --- a/Porting/makerel +++ b/Porting/makerel @@ -53,9 +53,9 @@ my @patchlevel_h = ; close PATCHLEVEL; my $patchlevel_h = join "", grep { /^#\s*define/ } @patchlevel_h; print $patchlevel_h; -$revision = $1 if $patchlevel_h =~ /PERL_REVISION\s+(\d+)/; -$patchlevel = $1 if $patchlevel_h =~ /PERL_VERSION\s+(\d+)/; -$subversion = $1 if $patchlevel_h =~ /PERL_SUBVERSION\s+(\d+)/; +$revision = $1 if $patchlevel_h =~ /PERL_VERSION_MAJOR\s+(\d+)/; +$patchlevel = $1 if $patchlevel_h =~ /PERL_VERSION_MINOR\s+(\d+)/; +$subversion = $1 if $patchlevel_h =~ /PERL_VERSION_PATCH\s+(\d+)/; die "Unable to parse patchlevel.h" unless $subversion >= 0; $vers = sprintf("%d.%d.%d", $revision, $patchlevel, $subversion); diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod index dd4f6ec41d6..ed536a4f55c 100644 --- a/Porting/perldelta_template.pod +++ b/Porting/perldelta_template.pod @@ -403,7 +403,7 @@ died, add a short obituary here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.33.1..HEAD + perl Porting/acknowledgements.pl v7.1.0..HEAD =head1 Reporting Bugs diff --git a/Porting/pod_lib.pl b/Porting/pod_lib.pl index 1098074f328..fbacefc107f 100644 --- a/Porting/pod_lib.pl +++ b/Porting/pod_lib.pl @@ -15,7 +15,7 @@ =head1 SYNOPSIS =head1 DESCRIPTION -This program, when Cd into other programs in the Perl 5 core +This program, when Cd into other programs in the Perl core distribution, provides functions useful during building and, secondarily, testing. @@ -405,7 +405,7 @@ sub __prime_state { my $filename = "pod/$source"; my $contents = slurp_or_die($filename); my @want = - $contents =~ /perldelta - what is new for perl v(5)\.(\d+)\.(\d+)\r?\n/; + $contents =~ /perldelta - what is new for perl v([57])\.(\d+)\.(\d+)\r?\n/a; die "Can't extract version from $filename" unless @want; my $delta_leaf = join '', 'perl', @want, 'delta'; $state{delta_target} = "$delta_leaf.pod"; diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod index b4990942caa..4f7467b2a93 100644 --- a/Porting/release_schedule.pod +++ b/Porting/release_schedule.pod @@ -11,10 +11,21 @@ release schedules for the next, current and previous stable versions of Perl. Dates with two or more question marks will only be releases if deemed necessary by the Pumpking. +=head2 Perl 7.0 & Perl 7.1 + + 2020-??-?? 7.1.0 + 2020-??-?? 7.0.0 + =head2 Perl 5.32 - 2020-06-20 5.32.0 ✓ Sawyer X - 2020-??-?? 5.32.1 +Code freezes (which happen in the 5.31.X series) + + 2020-01-20 5.31.8 ✓ Contentious changes freeze + 2020-02-20 5.31.9 ✓ User-visible changes to correctly + functioning programs freeze + 2020-03-20 5.31.10 ✓ Full code freeze + 2020-04-28 5.31.11 ✓ Full code freeze (clearing BBCs) + 2020-05-20 5.32.0 ✓ Stable release! (Hopefully) =head2 Perl 5.30 diff --git a/Porting/todo.pod b/Porting/todo.pod index 9a7ce0a4905..9f71bbf7183 100644 --- a/Porting/todo.pod +++ b/Porting/todo.pod @@ -486,7 +486,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall. On these systems, it might be the default compilation mode, and there is currently no guarantee that passing no use64bitall option to the Configure process will build a 32bit perl. Implementing -Duse32bit* -options would be nice for perl 5.33.1. +options would be nice for perl 7.1.0. =head2 Profile Perl - am I hot or not? @@ -1189,7 +1189,7 @@ L =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.33.1" +of 7.1.0" =head2 make ithreads more robust diff --git a/README.haiku b/README.haiku index dd1db176943..533cce039cd 100644 --- a/README.haiku +++ b/README.haiku @@ -22,9 +22,9 @@ The build procedure is completely standard: Make perl executable and create a symlink for libperl: chmod a+x /boot/common/bin/perl - cd /boot/common/lib; ln -s perl5/5.33.1/BePC-haiku/CORE/libperl.so . + cd /boot/common/lib; ln -s perl/7.1.0/BePC-haiku/CORE/libperl.so . -Replace C<5.33.1> with your respective version of Perl. +Replace C<7.1.0> with your respective version of Perl. =head1 KNOWN PROBLEMS diff --git a/README.macosx b/README.macosx index 7a4e4f2d84e..bf9bb5b11a9 100644 --- a/README.macosx +++ b/README.macosx @@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X This document briefly describes Perl under Mac OS X. - curl -O https://www.cpan.org/src/perl-5.33.1.tar.gz - tar -xzf perl-5.33.1.tar.gz - cd perl-5.33.1 + curl -O https://www.cpan.org/src/perl-7.1.0.tar.gz + tar -xzf perl-7.1.0.tar.gz + cd perl-7.1.0 ./Configure -des -Dprefix=/usr/local/ make make test @@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X. =head1 DESCRIPTION -The latest Perl release (5.33.1 as of this writing) builds without changes +The latest Perl release (7.1.0 as of this writing) builds without changes under all versions of Mac OS X from 10.3 "Panther" onwards. In order to build your own version of Perl you will need 'make', diff --git a/README.os2 b/README.os2 index 142395725df..125678a00e2 100644 --- a/README.os2 +++ b/README.os2 @@ -619,7 +619,7 @@ C in F, see L">. =item Additional Perl modules - unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.33.1/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/7.1.0/ Same remark as above applies. Additionally, if this directory is not one of directories on @INC (and @INC is influenced by C), you diff --git a/README.os390 b/README.os390 index 73ec3f8103f..d6bcb450dc5 100644 --- a/README.os390 +++ b/README.os390 @@ -452,7 +452,9 @@ Updated 12 March 2001 to mention //'SYS1.TCPPARMS(TCPDATA)'. Updated 28 November 2001 for broken URLs. -Updated 03 October 2019 for perl-5.33.1+ +Updated 03 October 2019 for perl-5.31.5+ + +Updated 28 July 2020 for perl-7.0.0+ =cut diff --git a/README.vms b/README.vms index b51a75698dd..099628f6d48 100644 --- a/README.vms +++ b/README.vms @@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of choice. Once you have done so, use a command like the following to unpack the archive: - vmstar -xvf perl-5^.33^.1.tar + vmstar -xvf perl-7^.1^.0.tar Then set default to the top-level source directory like so: - set default [.perl-5^.33^.1] + set default [.perl-7^.1^.0] and proceed with configuration as described in the next section. diff --git a/README.win32 b/README.win32 index 128d517d6cb..53f128f1766 100644 --- a/README.win32 +++ b/README.win32 @@ -399,7 +399,7 @@ Be sure to read the instructions near the top of the makefiles carefully. Type "dmake" ("gmake" for GNU make, or "nmake" if you are using that make). This should build everything. Specifically, it will create perl.exe, -perl533.dll at the perl toplevel, and various other extension dll's +perl70.dll at the perl toplevel, and various other extension dll's under the lib\auto directory. If the build fails for any reason, make sure you have done the previous steps correctly. diff --git a/configpm b/configpm index 8c4bd14ffcf..faa864c871e 100755 --- a/configpm +++ b/configpm @@ -233,16 +233,16 @@ my %seen_quotes; while () { next if m:^#!/bin/sh:; - # Catch PERL_CONFIG_SH=true and PERL_VERSION=n line from Configure. + # Catch PERL_CONFIG_SH=true and PERL_VERSION_MINOR=n line from Configure. s/^(\w+)=(true|\d+)\s*$/$1='$2'\n/ or m/^(\w+)='(.*)'$/; my($k, $v) = ($1, $2); # grandfather PATCHLEVEL and SUBVERSION and CONFIG if ($k) { - if ($k eq 'PERL_VERSION') { + if ($k eq 'PERL_VERSION_MINOR') { push @v_others, "PATCHLEVEL='$v'\n"; } - elsif ($k eq 'PERL_SUBVERSION') { + elsif ($k eq 'PERL_VERSION_PATCH') { push @v_others, "SUBVERSION='$v'\n"; } elsif ($k eq 'PERL_CONFIG_SH') { diff --git a/configure.com b/configure.com index 713e875d336..bddbd03fa41 100644 --- a/configure.com +++ b/configure.com @@ -404,7 +404,7 @@ $! Unfortunately Configure.COM in DCL is not yet set up to do this - $! maybe someday $! $!: set package name -$ package = "perl5" +$ package = "perl7" $ packageup = F$EDIT((package - "5"),"UPCASE") $! $!: Eunice requires " " instead of "", can you believe it @@ -735,7 +735,7 @@ $ IF F$TYPE(usedevel) .EQS. "" THEN usedevel = "undef" $ patchlevel_h = F$SEARCH("[-]patchlevel.h") $ IF (patchlevel_h.NES."") $ THEN -$ SEARCH 'patchlevel_h' "define","PERL_VERSION","epoch"/match=and/out=[]ver.out +$ SEARCH 'patchlevel_h' "define","PERL_VERSION_MINOR","epoch"/match=and/out=[]ver.out $ IF .NOT. usedevel .AND. usedevel .NES. "define" $ THEN $ OPEN/READ CONFIG []ver.out @@ -812,7 +812,7 @@ $ TYPE SYS$INPUT: $ DECK This installation shell script will examine your system and ask you questions -to determine how the perl5 package should be installed. If you get +to determine how the perl7 package should be installed. If you get stuck on a question, you may use a ^C or ^Y shell escape to STOP this process, edit something, then restart this process as you just did. Many of the questions will have default answers in square @@ -1207,13 +1207,13 @@ $ got_perl_patchlevel= "false" $ OPEN/READONLY CONFIG 'patchlevel_h' $Patchlevel_h_loop: $ READ/END_Of_File=Close_patch/ERROR=Close_patch CONFIG line -$ IF ((F$LOCATE("#define PERL_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) +$ IF ((F$LOCATE("#define PERL_VERSION_MINOR",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") $ patchlevel = F$ELEMENT(2," ",line) $ got_patch = "true" $ ENDIF -$ IF ((F$LOCATE("#define PERL_SUBVERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_sub)) +$ IF ((F$LOCATE("#define PERL_VERSION_PATCH",line).NE.F$LENGTH(line)).AND.(.NOT.got_sub)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") $ subversion = F$ELEMENT(2," ",line) @@ -2467,14 +2467,14 @@ $! $!: set the prefixit variable, to compute a suitable default value $! $!: determine where private library files go -$!: Usual default is /usr/local/lib/perl5. Also allow things like -$!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. +$!: Usual default is /usr/local/lib/perl7. Also allow things like +$!: /opt/perl/lib, since /opt/perl/lib/perl7 would be redundant. $ IF .NOT.silent $ THEN $ TYPE SYS$INPUT: $ DECK -There are some auxiliary files for perl5 that need to be put into a +There are some auxiliary files for perl7 that need to be put into a private library directory that is accessible by everyone. $ EOD $ ENDIF @@ -6026,11 +6026,11 @@ $ WC "# Target system : " + myuname $ WC "" $ WC "Makefile_SH='" + Makefile_SH + "'" $ WC "Mcc='" + Mcc + "'" -$ WC "PERL_REVISION='" + revision + "'" -$ WC "PERL_VERSION='" + patchlevel + "'" -$ WC "PERL_SUBVERSION='" + subversion + "'" +$ WC "PERL_VERSION_MAJOR='" + revision + "'" +$ WC "PERL_VERSION_MINOR='" + patchlevel + "'" +$ WC "PERL_VERSION_PATCH='" + subversion + "'" $ WC "PERL_API_REVISION='" + api_revision + "'" -$ WC "PERL_API_VERSION='" + api_version + "'" +$ WC "PERL_API_VERSION='" + api_version + "'" $ WC "PERL_API_SUBVERSION='" + api_subversion + "'" $ WC "PERL_PATCHLEVEL='" + perl_patchlevel + "'" $ WC "perl_patchlevel='" + perl_patchlevel + "'" diff --git a/dist/Devel-PPPort/Changes b/dist/Devel-PPPort/Changes index 2c7a1646639..b2ec2d32075 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 03437942b1c..5cf783afdba 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 bc5f502e98c..9cc43283ae2 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 f578954c198..3c51fbea8f7 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 b3a5946f7c7..6acbc415933 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 217afefe7ec..5637eaf7240 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 268ada46a4f..1def2487aa9 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 f4550383974..5b65d5eb272 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 896dabc9746..6985bfc9c88 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 5bcd299ae56..d5ee4835a24 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 6789972a0ce..9cc6b93028a 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 231cc5ccc49..e0f435ed506 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 b0206dce348..61dd94b53c6 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 7424595b838..13f521a0c09 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 4bb864f1221..589ab1a59cb 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 ba181fa6e7b..f5f712ae95b 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 deb1fb87a63..dce0b906f6b 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 975e3f64bab..a9f6ff661d5 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 9b13279f92e..849eb16109c 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 28f01c058d3..cf5dec060c0 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 c321b203c92..053a082a6bb 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 c73e2b01606..868e50541cb 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 fc87a0c321e..2f50b422a16 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 0215f9020bc..cbf56df1281 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 f0212e04513..e7ba8517518 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 7a7ce396c03..5555ee9d42a 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 7da38e25451..8a55c7e0ca2 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 d918e2b18a3..44be76ae8bf 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 821cf01fcce..770f654a0f5 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 c26a5a6ec9c..c09ce82e2d3 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 649b45d78eb..e90411c64ee 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 09633631fd3..6e7434c8631 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 ef471e09603..8767611a36d 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 98c54a4954b..0755a42c2a0 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 6e807687986..f892fd19f43 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 d2dfc7ff1f1..f29400a242f 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 67929c46987..8bc9d5033c4 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 fd4b499c411..00c6bba022f 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 471c4853ae7..3afa9970355 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 45bda3b30d4..fb42b217276 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 986d79bf2d6..eed8aeaa8e1 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 6901a19ab9b..2502aa49319 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 f279875d459..663dd01c5c4 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 211cdd617e2..9a2091b5081 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 1f82d4a721e..10044f1de20 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 a0a54e085cb..fb1ec787ffe 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 73173b4b9fc..f02fba3edfe 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 70a1b4437bf..26d683082a5 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 d887eeac576..dfd0c95e5b1 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 7b96bb531d3..eacbc09f070 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 c705b18bef4..38b55e10b0f 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 5e6bb33a6be..513fc6b486c 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 51a42b08c19..50062d4e236 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 dee840c3606..103c18f73a2 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 3ab10c96172..e71ea3bd966 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 0e16cc719c5..e0dce1775d4 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 12a593e2032..957a089d9d3 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 e915cfd0bce..78b2a549573 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 fb836f1be40..b23079171ad 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 734332a25a6..86d6677acd4 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; diff --git a/dist/Module-CoreList/Changes b/dist/Module-CoreList/Changes index b7e548ab10d..ca8cbbf5948 100644 --- a/dist/Module-CoreList/Changes +++ b/dist/Module-CoreList/Changes @@ -1,5 +1,5 @@ -5.20200820 - - Updated for v5.33.1 +7.20200820 + - Updated for v7.0.0 5.20200717 - Updated for v5.33.0 diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm index d5b78462c40..645f07c02b2 100644 --- a/dist/Module-CoreList/lib/Module/CoreList.pm +++ b/dist/Module-CoreList/lib/Module/CoreList.pm @@ -4,7 +4,7 @@ use strict; our ( %released, %version, %families, %upstream, %bug_tracker, %deprecated, %delta ); use version; -our $VERSION = '5.20200820'; +our $VERSION = '7.20200820'; sub PKG_PATTERN () { q#\A[a-zA-Z_][0-9a-zA-Z_]*(?:(::|')[0-9a-zA-Z_]+)*\z# } sub _looks_like_invocant ($) { local $@; !!eval { $_[0]->isa(__PACKAGE__) } } @@ -367,7 +367,7 @@ sub changes_between { 5.030003 => '2020-06-01', 5.032000 => '2020-06-20', 5.033000 => '2020-07-17', - 5.033001 => '2020-08-20', + 7.001000 => '2020-08-20', ); for my $version ( sort { $a <=> $b } keys %released ) { @@ -17529,13 +17529,13 @@ for my $version ( sort { $a <=> $b } keys %released ) { removed => { } }, - 5.033001 => { + 7.001000 => { delta_from => 5.033000, changed => { - 'B::Op_private' => '5.033001', - 'Config' => '5.033001', - 'Module::CoreList' => '5.20200820', - 'Module::CoreList::Utils'=> '5.20200820', + 'B::Op_private' => '7.001000', + 'Config' => '7.001000', + 'Module::CoreList' => '7.20200820', + 'Module::CoreList::Utils'=> '7.20200820', }, removed => { } @@ -18668,7 +18668,7 @@ sub is_core removed => { } }, - 5.033001 => { + 7.001000 => { delta_from => 5.033, changed => { }, diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm index 61fa17a94e1..8002426d167 100644 --- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm +++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Module::CoreList; -our $VERSION = '5.20200820'; +our $VERSION = '7.20200820'; our %utilities; sub utilities { @@ -1629,7 +1629,7 @@ my %delta = ( removed => { } }, - 5.033001 => { + 7.001000 => { delta_from => 5.033000, changed => { }, diff --git a/dist/Storable/Storable.pm b/dist/Storable/Storable.pm index 1a750f1ba56..da5c709ac6d 100644 --- a/dist/Storable/Storable.pm +++ b/dist/Storable/Storable.pm @@ -27,8 +27,9 @@ our @EXPORT_OK = qw( our ($canonical, $forgive_me); +our $VERSION; BEGIN { - our $VERSION = '3.21'; + $VERSION = '3.22'; } our $recursion_limit; diff --git a/dist/Storable/Storable.xs b/dist/Storable/Storable.xs index 4c4c268b156..e407cf177b4 100644 --- a/dist/Storable/Storable.xs +++ b/dist/Storable/Storable.xs @@ -16,11 +16,11 @@ #include #include -#ifndef PATCHLEVEL -#include /* Perl's one, needed since 5.6 */ +#ifndef PERL_CORE +#include "ppport.h" /* handle old perls */ #endif -#if !defined(PERL_VERSION) || PERL_VERSION < 10 || (PERL_VERSION == 10 && PERL_SUBVERSION < 1) +#if !defined(PERL_VERSION) || PERL_VERSION_LT(5,10,1) #define NEED_PL_parser #define NEED_sv_2pv_flags #define NEED_load_module @@ -28,7 +28,6 @@ #define NEED_newCONSTSUB #define NEED_newSVpvn_flags #define NEED_newRV_noinc -#include "ppport.h" /* handle old perls */ #endif #ifdef DEBUGGING @@ -521,7 +520,7 @@ static MAGIC *THX_sv_magicext(pTHX_ #if defined(MULTIPLICITY) || defined(PERL_OBJECT) || defined(PERL_CAPI) -#if (PATCHLEVEL <= 4) && (SUBVERSION < 68) +#if PERL_VERSION_LT(5,4,68) #define dSTCXT_SV \ SV *perinterp_sv = get_sv(MY_VERSION, 0) #else /* >= perl5.004_68 */ @@ -1012,22 +1011,22 @@ static const char byteorderstr_56[] = {BYTEORDER_BYTES_56, 0}; #define STORABLE_BIN_MAJOR 2 /* Binary major "version" */ #define STORABLE_BIN_MINOR 11 /* Binary minor "version" */ -#if (PATCHLEVEL <= 5) +#if PERL_VERSION_LT(5,6,0) #define STORABLE_BIN_WRITE_MINOR 4 #elif !defined (SvVOK) /* * Perl 5.6.0-5.8.0 can do weak references, but not vstring magic. */ #define STORABLE_BIN_WRITE_MINOR 8 -#elif PATCHLEVEL >= 19 +#elif PERL_VERSION_GE(5,19,0) /* Perl 5.19 takes away the special meaning of PL_sv_undef in arrays. */ /* With 3.x we added LOBJECT */ #define STORABLE_BIN_WRITE_MINOR 11 #else #define STORABLE_BIN_WRITE_MINOR 9 -#endif /* (PATCHLEVEL <= 5) */ +#endif /* PERL_VERSION_LT(5,6,0) */ -#if (PATCHLEVEL < 8 || (PATCHLEVEL == 8 && SUBVERSION < 1)) +#if PERL_VERSION_LT(5,8,1) #define PL_sv_placeholder PL_sv_undef #endif @@ -1354,7 +1353,7 @@ static U32 Sntohl(U32 x) { * sortsv is not available ( <= 5.6.1 ). */ -#if (PATCHLEVEL <= 6) +#if PERL_VERSION_LT(5,7,0) #if defined(USE_ITHREADS) @@ -1373,12 +1372,12 @@ static U32 Sntohl(U32 x) { #endif /* USE_ITHREADS */ -#else /* PATCHLEVEL > 6 */ +#else /* PERL >= 5.7.0 */ #define STORE_HASH_SORT \ sortsv(AvARRAY(av), len, Perl_sv_cmp); -#endif /* PATCHLEVEL <= 6 */ +#endif /* PERL_VERSION_LT(5,7,0) */ static int store(pTHX_ stcxt_t *cxt, SV *sv); static SV *retrieve(pTHX_ stcxt_t *cxt, const char *cname); @@ -1650,7 +1649,7 @@ static void init_store_context(pTHX_ * * It is reported fixed in 5.005, hence the #if. */ -#if PERL_VERSION >= 5 +#if PERL_VERSION_GE(5,5,0) #define HBUCKETS 4096 /* Buckets for %hseen */ #ifndef USE_PTR_TABLE HvMAX(cxt->hseen) = HBUCKETS - 1; /* keys %hseen = $HBUCKETS; */ @@ -1667,7 +1666,7 @@ static void init_store_context(pTHX_ cxt->hclass = newHV(); /* Where seen classnames are stored */ -#if PERL_VERSION >= 5 +#if PERL_VERSION_GE(5,5,0) HvMAX(cxt->hclass) = HBUCKETS - 1; /* keys %hclass = $HBUCKETS; */ #endif @@ -2244,7 +2243,7 @@ static AV *array_call(pTHX_ return av; } -#if PERL_VERSION < 15 +#if PERL_VERSION_LT(5,15,0) static void cleanup_recursive_av(pTHX_ AV* av) { SSize_t i = AvFILLp(av); @@ -2252,7 +2251,7 @@ cleanup_recursive_av(pTHX_ AV* av) { if (SvMAGICAL(av)) return; while (i >= 0) { if (arr[i]) { -#if PERL_VERSION < 14 +#if PERL_VERSION_LT(5,14,0) arr[i] = NULL; #else SvREFCNT_dec(arr[i]); @@ -2283,7 +2282,7 @@ cleanup_recursive_hv(pTHX_ HV* hv) { } i--; } -#if PERL_VERSION < 8 +#if PERL_VERSION_LT(5,8,0) ((XPVHV*)SvANY(hv))->xhv_array = NULL; #else HvARRAY(hv) = NULL; @@ -2394,7 +2393,7 @@ static int store_ref(pTHX_ stcxt_t *cxt, SV *sv) TRACEME((">ref recur_depth %" IVdf ", recur_sv (0x%" UVxf ") max %" IVdf, cxt->recur_depth, PTR2UV(cxt->recur_sv), cxt->max_recur_depth)); if (RECURSION_TOO_DEEP()) { -#if PERL_VERSION < 15 +#if PERL_VERSION_LT(5,15,0) cleanup_recursive_data(aTHX_ (SV*)sv); #endif CROAK((MAX_DEPTH_ERROR)); @@ -2498,7 +2497,7 @@ static int store_scalar(pTHX_ stcxt_t *cxt, SV *sv) /* public string - go direct to string read. */ goto string_readlen; } else if ( -#if (PATCHLEVEL <= 6) +#if PERL_VERSION_LT(5,7,0) /* For 5.6 and earlier NV flag trumps IV flag, so only use integer direct if NV flag is off. */ (flags & (SVf_NOK | SVf_IOK)) == SVf_IOK @@ -2576,7 +2575,7 @@ static int store_scalar(pTHX_ stcxt_t *cxt, SV *sv) */ Zero(&nv, 1, NV_bytes); #endif -#if (PATCHLEVEL <= 6) +#if PERL_VERSION_LT(5,7,0) nv.nv = SvNV(sv); /* * Watch for number being an integer in disguise. @@ -2699,7 +2698,7 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av) if (recur_sv != (SV*)av) { if (RECURSION_TOO_DEEP()) { /* with <= 5.14 it recurses in the cleanup also, needing 2x stack size */ -#if PERL_VERSION < 15 +#if PERL_VERSION_LT(5,15,0) cleanup_recursive_data(aTHX_ (SV*)av); #endif CROAK((MAX_DEPTH_ERROR)); @@ -2717,7 +2716,7 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av) STORE_SV_UNDEF(); continue; } -#if PATCHLEVEL >= 19 +#if PERL_VERSION_GE(5,19,0) /* In 5.19.3 and up, &PL_sv_undef can actually be stored in * an array; it no longer represents nonexistent elements. * Historically, we have used SX_SV_UNDEF in arrays for @@ -2748,7 +2747,7 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av) } -#if (PATCHLEVEL <= 6) +#if PERL_VERSION_LT(5,7,0) /* * sortcmp @@ -2765,7 +2764,7 @@ sortcmp(const void *a, const void *b) return sv_cmp(*(SV * const *) a, *(SV * const *) b); } -#endif /* PATCHLEVEL <= 6 */ +#endif /* PERL_VERSION_LT(5,7,0) */ /* * store_hash @@ -2861,7 +2860,7 @@ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv) ++cxt->recur_depth; } if (RECURSION_TOO_DEEP_HASH()) { -#if PERL_VERSION < 15 +#if PERL_VERSION_LT(5,15,0) cleanup_recursive_data(aTHX_ (SV*)hv); #endif CROAK((MAX_DEPTH_ERROR)); @@ -3275,7 +3274,7 @@ static int store_lhash(pTHX_ stcxt_t *cxt, HV *hv, unsigned char hash_flags) ++cxt->recur_depth; } if (RECURSION_TOO_DEEP_HASH()) { -#if PERL_VERSION < 15 +#if PERL_VERSION_LT(5,15,0) cleanup_recursive_data(aTHX_ (SV*)hv); #endif CROAK((MAX_DEPTH_ERROR)); @@ -3311,7 +3310,7 @@ static int store_lhash(pTHX_ stcxt_t *cxt, HV *hv, unsigned char hash_flags) */ static int store_code(pTHX_ stcxt_t *cxt, CV *cv) { -#if PERL_VERSION < 6 +#if PERL_VERSION_LT(5,6,0) /* * retrieve_code does not work with perl 5.005 or less */ @@ -3410,10 +3409,10 @@ static int store_code(pTHX_ stcxt_t *cxt, CV *cv) #endif } -#if PERL_VERSION < 8 +#if PERL_VERSION_LT(5,8,0) # define PERL_MAGIC_qr 'r' /* precompiled qr// regex */ # define BFD_Svs_SMG_OR_RMG SVs_RMG -#elif ((PERL_VERSION==8) && (PERL_SUBVERSION >= 1) || (PERL_VERSION>8)) +#elif PERL_VERSION_GE(5,8,1) # define BFD_Svs_SMG_OR_RMG SVs_SMG # define MY_PLACEHOLDER PL_sv_placeholder #else @@ -3424,7 +3423,7 @@ static int store_code(pTHX_ stcxt_t *cxt, CV *cv) static int get_regexp(pTHX_ stcxt_t *cxt, SV* sv, SV **re, SV **flags) { dSP; SV* rv; -#if PERL_VERSION >= 12 +#if PERL_VERSION_GE(5,12,0) CV *cv = get_cv("re::regexp_pattern", 0); #else CV *cv = get_cv("Storable::_regexp_pattern", 0); @@ -4286,7 +4285,7 @@ static int sv_type(pTHX_ SV *sv) { switch (SvTYPE(sv)) { case SVt_NULL: -#if PERL_VERSION <= 10 +#if PERL_VERSION_LT(5,11,0) case SVt_IV: #endif case SVt_NV: @@ -4296,7 +4295,7 @@ static int sv_type(pTHX_ SV *sv) */ return svis_SCALAR; case SVt_PV: -#if PERL_VERSION <= 10 +#if PERL_VERSION_LT(5,11,0) case SVt_RV: #else case SVt_IV: @@ -4314,7 +4313,7 @@ static int sv_type(pTHX_ SV *sv) */ return SvROK(sv) ? svis_REF : svis_SCALAR; case SVt_PVMG: -#if PERL_VERSION <= 10 +#if PERL_VERSION_LT(5,11,0) if ((SvFLAGS(sv) & (SVs_OBJECT|SVf_OK|SVs_GMG|SVs_SMG|SVs_RMG)) == (SVs_OBJECT|BFD_Svs_SMG_OR_RMG) && mg_find(sv, PERL_MAGIC_qr)) { @@ -4327,7 +4326,7 @@ static int sv_type(pTHX_ SV *sv) (mg_find(sv, 'p'))) return svis_TIED_ITEM; /* FALL THROUGH */ -#if PERL_VERSION < 9 +#if PERL_VERSION_LT(5,9,0) case SVt_PVBM: #endif if ((SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) == @@ -4345,10 +4344,10 @@ static int sv_type(pTHX_ SV *sv) return svis_HASH; case SVt_PVCV: return svis_CODE; -#if PERL_VERSION > 8 +#if PERL_VERSION_GE(5,9,0) /* case SVt_INVLIST: */ #endif -#if PERL_VERSION > 10 +#if PERL_VERSION_GE(5,11,0) case SVt_REGEXP: return svis_REGEXP; #endif @@ -6689,7 +6688,7 @@ static SV *retrieve_flag_hash(pTHX_ stcxt_t *cxt, const char *cname) */ static SV *retrieve_code(pTHX_ stcxt_t *cxt, const char *cname) { -#if PERL_VERSION < 6 +#if PERL_VERSION_LT(5,6,0) CROAK(("retrieve_code does not work with perl 5.005 or less\n")); #else dSP; @@ -6817,7 +6816,7 @@ static SV *retrieve_code(pTHX_ stcxt_t *cxt, const char *cname) } static SV *retrieve_regexp(pTHX_ stcxt_t *cxt, const char *cname) { -#if PERL_VERSION >= 8 +#if PERL_VERSION_GE(5,8,0) int op_flags; U32 re_len; STRLEN flags_len; @@ -7582,7 +7581,7 @@ static SV *do_retrieve( if (!sv) { TRACEMED(("retrieve ERROR")); -#if (PATCHLEVEL <= 4) +#if PERL_VERSION_LT(5,5,0) /* perl 5.00405 seems to screw up at this point with an 'attempt to modify a read only value' error reported in the eval { $self = pretrieve(*FILE) } in _retrieve. @@ -7712,7 +7711,7 @@ static SV *dclone(pTHX_ SV *sv) */ if ((SvTYPE(sv) == SVt_PVLV -#if PERL_VERSION < 8 +#if PERL_VERSION_LT(5,8,0) || SvTYPE(sv) == SVt_PVMG #endif ) && (SvFLAGS(sv) & (SVs_GMG|SVs_SMG|SVs_RMG)) == diff --git a/dist/Storable/t/malice.t b/dist/Storable/t/malice.t index 5888863d845..8adae955023 100644 --- a/dist/Storable/t/malice.t +++ b/dist/Storable/t/malice.t @@ -63,7 +63,7 @@ sub test_hash { is (ref $clone, "HASH", "Get hash back"); is (scalar keys %$clone, 1, "with 1 key"); is ((keys %$clone)[0], "perl", "which is correct"); - is ($clone->{perl}, "rules"); + is ($clone->{perl}, "rules", "Got expected value when looking up key in clone"); } sub test_header { @@ -238,7 +238,7 @@ sub test_things { } } -ok (defined store(\%hash, $file)); +ok (defined store(\%hash, $file), "store() returned defined value"); my $expected = 20 + length ($file_magic_str) + $other_magic + $fancy; my $length = -s $file; @@ -266,7 +266,7 @@ test_things($stored, \&freeze_and_thaw, 'string'); # Network order. unlink $file or die "Can't unlink '$file': $!"; -ok (defined nstore(\%hash, $file)); +ok (defined nstore(\%hash, $file), "nstore() returned defined value"); $expected = 20 + length ($file_magic_str) + $network_magic + $fancy; $length = -s $file; diff --git a/dist/threads/lib/threads.pm b/dist/threads/lib/threads.pm index ee201a2bea0..4453a8d48e6 100644 --- a/dist/threads/lib/threads.pm +++ b/dist/threads/lib/threads.pm @@ -5,7 +5,7 @@ use 5.008; use strict; use warnings; -our $VERSION = '2.25'; # remember to update version in POD! +our $VERSION = '2.26'; # remember to update version in POD! my $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -134,7 +134,7 @@ threads - Perl interpreter-based threads =head1 VERSION -This document describes threads version 2.25 +This document describes threads version 2.26 =head1 WARNING diff --git a/dist/threads/threads.xs b/dist/threads/threads.xs index ab64dc0f845..e544ebad2fb 100644 --- a/dist/threads/threads.xs +++ b/dist/threads/threads.xs @@ -421,7 +421,7 @@ STATIC const MGVTBL ithread_vtbl = { ithread_mg_free, /* free */ 0, /* copy */ ithread_mg_dup, /* dup */ -#if (PERL_VERSION > 8) || (PERL_VERSION == 8 && PERL_SUBVERSION > 8) +#if PERL_VERSION_GT(5,8,8) 0 /* local */ #endif }; @@ -751,7 +751,7 @@ S_ithread_create( AV *params; SV **array; -#if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7 +#if PERL_VERSION_LE(5,8,7) SV **tmps_tmp = PL_tmps_stack; IV tmps_ix = PL_tmps_ix; #endif @@ -849,7 +849,7 @@ S_ithread_create( * context for the duration of our work for new interpreter. */ { -#if (PERL_VERSION > 13) || (PERL_VERSION == 13 && PERL_SUBVERSION > 1) +#if PERL_VERSION_GE(5,13,2) CLONE_PARAMS *clone_param = Perl_clone_params_new(aTHX, thread->interp); #else CLONE_PARAMS clone_param_s; @@ -859,7 +859,7 @@ S_ithread_create( MY_CXT_CLONE; -#if (PERL_VERSION < 13) || (PERL_VERSION == 13 && PERL_SUBVERSION <= 1) +#if PERL_VERSION_LT(5,13,2) clone_param->flags = 0; #endif @@ -886,7 +886,7 @@ S_ithread_create( perl_clone() and sv_dup_inc(). Hence copy the parameters somewhere under our control first, before duplicating. */ if (num_params) { -#if (PERL_VERSION > 8) +#if PERL_VERSION_GE(5,9,0) Copy(parent_perl->Istack_base + params_start, array, num_params, SV *); #else Copy(parent_perl->Tstack_base + params_start, array, num_params, SV *); @@ -897,11 +897,11 @@ S_ithread_create( } } -#if (PERL_VERSION > 13) || (PERL_VERSION == 13 && PERL_SUBVERSION > 1) +#if PERL_VERSION_GE(5,13,2) Perl_clone_params_del(clone_param); #endif -#if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7 +#if PERL_VERSION_LT(5,8,8) /* The code below checks that anything living on the tmps stack and * has been cloned (so it lives in the ptr_table) has a refcount * higher than 0. @@ -1339,7 +1339,7 @@ ithread_join(...) /* Get the return value from the call_sv */ /* Objects do not survive this process - FIXME */ if ((thread->gimme & G_WANT) != G_VOID) { -#if (PERL_VERSION < 13) || (PERL_VERSION == 13 && PERL_SUBVERSION <= 1) +#if PERL_VERSION_LT(5,13,2) AV *params_copy; PerlInterpreter *other_perl; CLONE_PARAMS clone_params; @@ -1766,7 +1766,7 @@ ithread_error(...) /* If thread died, then clone the error into the calling thread */ if (thread->state & PERL_ITHR_DIED) { -#if (PERL_VERSION < 13) || (PERL_VERSION == 13 && PERL_SUBVERSION <= 1) +#if PERL_VERSION_LT(5,13,2) PerlInterpreter *other_perl; CLONE_PARAMS clone_params; ithread *current_thread; diff --git a/dosish.h b/dosish.h index 5b2716046d7..5b6a52693df 100644 --- a/dosish.h +++ b/dosish.h @@ -29,9 +29,9 @@ # ifndef PERL_CORE # define PERL_FS_VER_FMT "%d_%d_%d" # endif -# define PERL_FS_VERSION STRINGIFY(PERL_REVISION) "_" \ - STRINGIFY(PERL_VERSION) "_" \ - STRINGIFY(PERL_SUBVERSION) +# define PERL_FS_VERSION STRINGIFY(PERL_VERSION_MAJOR) "_" \ + STRINGIFY(PERL_VERSION_MINOR) "_" \ + STRINGIFY(PERL_VERSION_PATCH) #elif defined(WIN32) # define PERL_SYS_INIT_BODY(c,v) \ MALLOC_CHECK_TAINT2(*c,*v) Perl_win32_init(c,v); PERLIO_INIT diff --git a/ext/Hash-Util/Util.xs b/ext/Hash-Util/Util.xs index 095a78c6e6d..fdadc2bc85a 100644 --- a/ext/Hash-Util/Util.xs +++ b/ext/Hash-Util/Util.xs @@ -284,7 +284,7 @@ bucket_ratio(rhv) if (SvROK(rhv)) { rhv= SvRV(rhv); if ( SvTYPE(rhv)==SVt_PVHV ) { -#if PERL_VERSION < 25 +#if PERL_VERSION_LT(5,25,0) SV *ret= Perl_hv_scalar(aTHX_ (HV*)rhv); #else SV *ret= Perl_hv_bucket_ratio(aTHX_ (HV*)rhv); diff --git a/ext/Hash-Util/lib/Hash/Util.pm b/ext/Hash-Util/lib/Hash/Util.pm index 4224239d91d..a58b038ba0b 100644 --- a/ext/Hash-Util/lib/Hash/Util.pm +++ b/ext/Hash-Util/lib/Hash/Util.pm @@ -39,10 +39,11 @@ our @EXPORT_OK = qw( used_buckets num_buckets ); +our $VERSION; BEGIN { # make sure all our XS routines are available early so their prototypes # are correctly applied in the following code. - our $VERSION = '0.23'; + $VERSION = '0.24'; require XSLoader; XSLoader::load(); } diff --git a/ext/Pod-Html/testdir/perlvar-copy.pod b/ext/Pod-Html/testdir/perlvar-copy.pod index efb00a012dc..f49178dd16a 100644 --- a/ext/Pod-Html/testdir/perlvar-copy.pod +++ b/ext/Pod-Html/testdir/perlvar-copy.pod @@ -1331,10 +1331,10 @@ startup. This information is used by perl when it's in adjust-utf8ness-to-locale mode (as when run with the C<-CL> command-line switch); see L for more info on this. -=item $PERL_VERSION +=item $PERL_VERSION_MINOR =item $^V -X<$^V> X<$PERL_VERSION> +X<$^V> X<$PERL_VERSION_MINOR> The revision, version, and subversion of the Perl interpreter, represented as a C object. diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs index 55873cc1068..4c4d3549581 100644 --- a/ext/XS-APItest/APItest.xs +++ b/ext/XS-APItest/APItest.xs @@ -2014,7 +2014,7 @@ test_share_unshare_pvn(input) OUTPUT: RETVAL -#if PERL_VERSION >= 9 +#if PERL_VERSION_GE(5,9,0) bool refcounted_he_exists(key, level=0) diff --git a/ext/XS-APItest/t/xsub_h.t b/ext/XS-APItest/t/xsub_h.t index a7e2541e425..51b3d706042 100644 --- a/ext/XS-APItest/t/xsub_h.t +++ b/ext/XS-APItest/t/xsub_h.t @@ -117,7 +117,7 @@ foreach $XS_VERSION (undef, @versions) { is_deeply([XS_APIVERSION_valid("Pie")], [], "XS_APIVERSION_BOOTCHECK passes"); is(eval {XS_APIVERSION_invalid("Pie"); 1}, undef, "XS_APIVERSION_BOOTCHECK croaks for an invalid version"); -like($@, qr/Perl API version v1.0.16 of Pie does not match v5\.\d+\.\d+/, +like($@, qr/Perl API version v1.0.16 of Pie does not match \Q$^V\E/a, "expected error"); my @xsreturn; diff --git a/hints/README.hints b/hints/README.hints index e8ff5eee44b..398125fa6f8 100644 --- a/hints/README.hints +++ b/hints/README.hints @@ -6,7 +6,7 @@ README.hints - hint files used by Configure These files are used by Configure to set things which Configure either can't or doesn't guess properly. Most of these hint files have been -tested with at least some version of perl5, but some are still left +tested with at least some version of Perl, but some are still left over from perl4. Please report any problems or suggested changes at diff --git a/hints/atheos.sh b/hints/atheos.sh index c3acdbb910f..8d75cf93fe8 100644 --- a/hints/atheos.sh +++ b/hints/atheos.sh @@ -1,7 +1,7 @@ # AtheOS hints file ( http://www.atheos.cx/ ) # Kurt Skauen, kurt@atheos.cx -prefix="/usr/perl5" +prefix="/usr/perl" libpth='/system/libs /usr/lib' usrinc='/include' diff --git a/hints/bsdos.sh b/hints/bsdos.sh index a1ba113f7a1..4ae92e2583c 100644 --- a/hints/bsdos.sh +++ b/hints/bsdos.sh @@ -52,15 +52,15 @@ case "$bsdos_distribution" in d_dosuid='define' d_portable='undef' prefix='/usr/contrib' - perlpath='/usr/bin/perl5' - startperl='#!/usr/bin/perl5' + perlpath='/usr/bin/perl' + startperl='#!/usr/bin/perl' scriptdir='/usr/contrib/bin' - privlib='/usr/libdata/perl5' + privlib='/usr/libdata/perl' man1dir='/usr/contrib/man/man1' man3dir='/usr/contrib/man/man3' # phlib added by BSDI -- we share the *.ph include dir with perl4 - phlib="/usr/libdata/perl5/site_perl/$(arch)-$osname/include" - phlibexp="/usr/libdata/perl5/site_perl/$(arch)-$osname/include" + phlib="/usr/libdata/perl/site_perl/$(arch)-$osname/include" + phlibexp="/usr/libdata/perl/site_perl/$(arch)-$osname/include" ;; esac diff --git a/hints/catamount.sh b/hints/catamount.sh index e7660e4f674..509a9f9751c 100644 --- a/hints/catamount.sh +++ b/hints/catamount.sh @@ -31,11 +31,11 @@ # mkdir -p /opt/perl-catamount # mkdir -p /opt/perl-catamount/include # mkdir -p /opt/perl-catamount/lib -# mkdir -p /opt/perl-catamount/lib/perl5/5.33.1 +# mkdir -p /opt/perl-catamount/lib/perl/7.1.0 # mkdir -p /opt/perl-catamount/bin # cp *.h /opt/perl-catamount/include # cp libperl.a /opt/perl-catamount/lib -# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.33.1 +# cp -pr lib/* /opt/perl-catamount/lib/perl/7.1.0 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib # # With the headers and the libperl.a you can embed Perl to your Catamount diff --git a/hints/darwin.sh b/hints/darwin.sh index fdfbdd4a3b9..c38e08d6422 100644 --- a/hints/darwin.sh +++ b/hints/darwin.sh @@ -8,9 +8,9 @@ ## # Configure hasn't figured out the version number yet. Bummer. -perl_revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $src/patchlevel.h` -perl_version=`awk '/define[ ]+PERL_VERSION/ {print $3}' $src/patchlevel.h` -perl_subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h` +perl_revision=`awk '/define[ ]+PERL_VERSION_MAJOR/ {print $3}' $src/patchlevel.h` +perl_version=`awk '/define[ ]+PERL_VERSION_MINOR/ {print $3}' $src/patchlevel.h` +perl_subversion=`awk '/define[ ]+PERL_VERSION_PATCH/ {print $3}' $src/patchlevel.h` version="${perl_revision}.${perl_version}.${perl_subversion}" # Pretend that Darwin doesn't know about those system calls in Tiger diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh index 8f5fa337829..9551a3b9eba 100644 --- a/hints/dos_djgpp.sh +++ b/hints/dos_djgpp.sh @@ -57,7 +57,7 @@ usemymalloc='n' timetype='time_t' prefix=$DJDIR -privlib=$prefix/lib/perl5 +privlib=$prefix/lib/perl archlib=$privlib sitelib=$privlib/site sitearch=$sitelib diff --git a/hints/freebsd.sh b/hints/freebsd.sh index 72db521ef75..27a5b61bf99 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -185,8 +185,8 @@ case "$osvers" in # the equivalent in the main Configure so we copy a little # from Configure XXX Configure should be fixed. if $test -r $src/patchlevel.h;then - patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $src/patchlevel.h` - subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h` + patchlevel=`awk '/define[ ]+PERL_VERSION_MINOR/ {print $3}' $src/patchlevel.h` + subversion=`awk '/define[ ]+PERL_VERSION_PATCH/ {print $3}' $src/patchlevel.h` else patchlevel=0 subversion=0 diff --git a/hints/hpux.sh b/hints/hpux.sh index da5f81dfe12..a9cb34b725f 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -68,7 +68,7 @@ shift cppflags="-Aa -D__STDC_EXT__ $cc_cppflags" case "$prefix" in - "") prefix='/opt/perl5' ;; + "") prefix='/opt/perl' ;; esac gnu_as=no diff --git a/installman b/installman index 0154be4d68c..f354a8418e4 100755 --- a/installman +++ b/installman @@ -22,8 +22,8 @@ $ENV{SHELL} = 'sh' if $^O eq 'os2'; my $patchlevel = substr($],3,2); die "Patchlevel of perl ($patchlevel)", - "and patchlevel of config.sh ($Config{'PERL_VERSION'}) don't match\n" - if $patchlevel != $Config{'PERL_VERSION'}; + "and patchlevel of config.sh ($Config{'PERL_VERSION_MINOR'}) don't match\n" + if $patchlevel != $Config{'PERL_VERSION_MINOR'}; my $usage = "Usage: installman --man1dir=/usr/wherever --man1ext=1 diff --git a/installperl b/installperl index 6cd65a09238..dd4e37b6aac 100755 --- a/installperl +++ b/installperl @@ -189,8 +189,8 @@ my $ver = $Config{version}; my $release = substr($],0,3); # Not used currently. my $patchlevel = substr($],3,2); die "Patchlevel of perl ($patchlevel)", - "and patchlevel of config.sh ($Config{'PERL_VERSION'}) don't match\n" - if $patchlevel != $Config{'PERL_VERSION'}; + "and patchlevel of config.sh ($Config{'PERL_VERSION_MINOR'}) don't match\n" + if $patchlevel != $Config{'PERL_VERSION_MINOR'}; # Fetch some frequently-used items from %Config my $installbin = "$opts{destdir}$Config{installbin}"; @@ -267,7 +267,7 @@ if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin) { if ($Is_Cygwin) { $perldll = $libperl; } else { - $perldll = 'perl5'.$Config{patchlevel}.'.'.$so; + $perldll = 'perl7'.$Config{patchlevel}.'.'.$so; } if ($dlsrc ne "dl_none.xs") { @@ -729,7 +729,7 @@ sub installlib { # Also preserve modification times for .a libraries. # On some systems, if you do # ranlib libperl.a -# cp libperl.a /usr/local/lib/perl5/archlib/CORE/libperl.a +# cp libperl.a /usr/local/lib/perl/archlib/CORE/libperl.a # and then try to link against the installed libperl.a, you might # get an error message to the effect that the symbol table is older # than the library. diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm index 5b49783d5fa..99229e31e37 100644 --- a/lib/B/Op_private.pm +++ b/lib/B/Op_private.pm @@ -118,7 +118,7 @@ package B::Op_private; our %bits; -our $VERSION = "5.033001"; +our $VERSION = "7.001000"; $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv); $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv); diff --git a/lib/Config.t b/lib/Config.t index abd93169ff8..e315ef1c0ab 100644 --- a/lib/Config.t +++ b/lib/Config.t @@ -28,11 +28,11 @@ ok(exists($Config{$first_each}), "First key exists"); ok(!exists($Config{"\n$first"}), "Check that first key with prepended newline isn't falsely existing"); -is($Config{PERL_REVISION}, 5, "PERL_REVISION is 5"); +is($Config{PERL_VERSION_MAJOR}, 7, "PERL_VERSION_MAJOR is 7"); # Check that old config variable names are aliased to their new ones. -my %grandfathers = ( PERL_VERSION => 'PATCHLEVEL', - PERL_SUBVERSION => 'SUBVERSION', +my %grandfathers = ( PERL_VERSION_MINOR => 'PATCHLEVEL', + PERL_VERSION_PATCH => 'SUBVERSION', PERL_CONFIG_SH => 'CONFIG' ); while( my($new, $old) = each %grandfathers ) { diff --git a/lib/feature.pm b/lib/feature.pm index 1d3711e53ee..d6545f802ce 100644 --- a/lib/feature.pm +++ b/lib/feature.pm @@ -5,7 +5,7 @@ package feature; -our $VERSION = '1.60'; +our $VERSION = '1.61'; our %feature = ( fc => 'feature_fc', @@ -53,9 +53,10 @@ $feature_bundle{"5.29"} = $feature_bundle{"5.27"}; $feature_bundle{"5.30"} = $feature_bundle{"5.27"}; $feature_bundle{"5.31"} = $feature_bundle{"5.27"}; $feature_bundle{"5.32"} = $feature_bundle{"5.27"}; -$feature_bundle{"5.33"} = $feature_bundle{"5.27"}; -$feature_bundle{"5.34"} = $feature_bundle{"5.27"}; $feature_bundle{"5.9.5"} = $feature_bundle{"5.10"}; +$feature_bundle{"7.0"} = $feature_bundle{"5.27"}; +$feature_bundle{"7.1"} = $feature_bundle{"5.27"}; +$feature_bundle{"7.2"} = $feature_bundle{"5.27"}; my %noops = ( postderef => 1, lexical_subs => 1, @@ -426,7 +427,11 @@ The following feature bundles are available: postderef_qq say state switch unicode_eval unicode_strings - :5.34 bitwise current_sub evalbytes fc indirect + :7.0 bitwise current_sub evalbytes fc indirect + postderef_qq say state switch unicode_eval + unicode_strings + + :7.2 bitwise current_sub evalbytes fc indirect postderef_qq say state switch unicode_eval unicode_strings diff --git a/os2/Makefile.SHs b/os2/Makefile.SHs index 00e785fef18..b8d81fbab75 100644 --- a/os2/Makefile.SHs +++ b/os2/Makefile.SHs @@ -6,7 +6,7 @@ # Additional rules supported: perl_, aout_test, aout_install, use them # for a.out style perl (which may fork). -perl_fullversion="5.00${PERL_VERSION}_$PERL_SUBVERSION" +perl_fullversion="${PERL_VERSION_MAJOR}.00${PERL_VERSION_MINOR}_$PERL_VERSION_PATCH" case "$archname" in *-thread*) perl_fullversion="${perl_fullversion}-threaded";; esac diff --git a/os2/os2.c b/os2/os2.c index 68f14ff1692..da8d826cf33 100644 --- a/os2/os2.c +++ b/os2/os2.c @@ -2050,7 +2050,7 @@ mod2fname(pTHX_ SV *sv) different DLL, even if a DLL with the same basename is loaded already. Thus there is no need to include the version into the mangling scheme. */ #if 0 - sum += PERL_VERSION * 200 + PERL_SUBVERSION * 2; /* Up to 5.6.1 */ + sum += PERL_VERSION_MINOR * 200 + PERL_VERSION_PATCH * 2; /* Up to 5.6.1 */ #else # ifndef COMPATIBLE_VERSION_SUM /* Binary compatibility with the 5.00553 binary */ # define COMPATIBLE_VERSION_SUM (5 * 200 + 53 * 2) @@ -2411,14 +2411,14 @@ perllib_mangle(char *s, unsigned int l) if (perllib_mangle_installed && (name = perllib_mangle_installed(s,l))) return name; if (!newp && !notfound) { - newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_REVISION) - STRINGIFY(PERL_VERSION) STRINGIFY(PERL_SUBVERSION) + newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_VERSION_MAJOR) + STRINGIFY(PERL_VERSION_MINOR) STRINGIFY(PERL_VERSION_PATCH) "_PREFIX"); if (!newp) - newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_REVISION) - STRINGIFY(PERL_VERSION) "_PREFIX"); + newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_VERSION_MAJOR) + STRINGIFY(PERL_VERSION_MINOR) "_PREFIX"); if (!newp) - newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_REVISION) "_PREFIX"); + newp = PerlEnv_getenv(name = "PERLLIB_" STRINGIFY(PERL_VERSION_MAJOR) "_PREFIX"); if (!newp) newp = PerlEnv_getenv(name = "PERLLIB_PREFIX"); if (newp) { diff --git a/patchlevel.h b/patchlevel.h index 598a928fe38..57693daed27 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -39,9 +39,32 @@ Instead use one of the version comparison macros. See C>. /* do not adjust the whitespace! Configure expects the numbers to be * exactly on the third column */ -#define PERL_REVISION 5 /* age */ -#define PERL_VERSION 33 /* epoch */ -#define PERL_SUBVERSION 1 /* generation */ +/* Perl semantic versioning + you should avoid using these variables directly + and prefer using the compare functions. + - PERL_VERSION_EQ + - PERL_VERSION_NE + - PERL_VERSION_LT + - PERL_VERSION_GT + - PERL_VERSION_LE + - PERL_VERSION_GE +*/ +#define PERL_VERSION_MAJOR 7 +#define PERL_VERSION_MINOR 1 +#define PERL_VERSION_PATCH 0 +#define PERL_VERSION_RELEASE 0 /* for future usage */ +#define PERL_VERSION_BUILD 0 /* for future usage */ + +/* Legacy Perl5 VERSION macro hardcoded to 5.255.255 + You should never change these values + This fixes two XS Perl5 modules issues: + - modules using an old version of ppport.h + - incomplete version checks when only using PERL_VERSION for example + view define GCC_DIAG_PRAGMA(x) _Pragma (#x) +*/ +#define PERL_REVISION 5 +#define PERL_VERSION 255 +#define PERL_SUBVERSION 255 /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API @@ -60,9 +83,9 @@ Instead use one of the version comparison macros. See C>. to be released for blead releases, and to 5.X.0 for maint releases. Manually changing them should not be necessary. */ -#define PERL_API_REVISION 5 -#define PERL_API_VERSION 33 -#define PERL_API_SUBVERSION 1 +#define PERL_API_REVISION 7 +#define PERL_API_VERSION 1 +#define PERL_API_SUBVERSION 0 /* XXX Note: The selection of non-default Configure options, such as -Duselonglong may invalidate these settings. Currently, Configure diff --git a/perl.c b/perl.c index 9f0f2303016..240ec534260 100644 --- a/perl.c +++ b/perl.c @@ -3791,9 +3791,9 @@ S_minus_v(pTHX) #endif /* #ifdef PERL_PATCHNUM */ PIO_stdout = PerlIO_stdout(); PerlIO_printf(PIO_stdout, - "\nThis is perl " STRINGIFY(PERL_REVISION) - ", version " STRINGIFY(PERL_VERSION) - ", subversion " STRINGIFY(PERL_SUBVERSION) + "\nThis is perl " STRINGIFY(PERL_VERSION_MAJOR) + ", version " STRINGIFY(PERL_VERSION_MINOR) + ", subversion " STRINGIFY(PERL_VERSION_PATCH) " (%" SVf ") built for " ARCHNAME, SVfARG(level) ); SvREFCNT_dec_NN(level); diff --git a/perl.h b/perl.h index 16003ecfa10..567a982cf17 100644 --- a/perl.h +++ b/perl.h @@ -4578,9 +4578,17 @@ EXTERN_C char **environ; /* environment variables supplied via exec */ #include "patchlevel.h" #undef PERL_PATCHLEVEL_H_IMPLICIT -#define PERL_VERSION_STRING STRINGIFY(PERL_REVISION) "." \ - STRINGIFY(PERL_VERSION) "." \ - STRINGIFY(PERL_SUBVERSION) +/* Version as a single 4-byte hex number + Use this for numeric comparisons */ +#define PERL_VERSION_HEX ((PERL_VERSION_MAJOR << 24) | \ + (PERL_VERSION_MINOR << 16) | \ + (PERL_VERSION_PATCH << 8) | \ + (PERL_VERSION_RELEASE << 4) | \ + (PERL_VERSION_BUILD << 0)) + +#define PERL_VERSION_STRING STRINGIFY(PERL_VERSION_MAJOR) "." \ + STRINGIFY(PERL_VERSION_MINOR) "." \ + STRINGIFY(PERL_VERSION_PATCH) #define PERL_API_VERSION_STRING STRINGIFY(PERL_API_REVISION) "." \ STRINGIFY(PERL_API_VERSION) "." \ @@ -4666,11 +4674,11 @@ EXTCONST char PL_cshname[] library we're linking against. */ EXTCONST U8 PL_revision - INIT(PERL_REVISION); + INIT(PERL_VERSION_MAJOR); EXTCONST U8 PL_version - INIT(PERL_VERSION); + INIT(PERL_VERSION_MINOR); EXTCONST U8 PL_subversion - INIT(PERL_SUBVERSION); + INIT(PERL_VERSION_PATCH); EXTCONST char PL_uuemap[65] INIT("`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"); diff --git a/plan9/config.plan9 b/plan9/config.plan9 index 0c0c602ca24..b976fae3be1 100644 --- a/plan9/config.plan9 +++ b/plan9/config.plan9 @@ -3131,8 +3131,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/sys/lib/perl/5.33.1" /**/ -#define PRIVLIB_EXP "/sys/lib/perl/5.33.1" /**/ +#define PRIVLIB "/sys/lib/perl/7.1.0" /**/ +#define PRIVLIB_EXP "/sys/lib/perl/7.1.0" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -3259,9 +3259,9 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "/sys/lib/perl/5.33.1/site_perl" /**/ -#define SITELIB_EXP "/sys/lib/perl/5.33.1/site_perl" /**/ -#define SITELIB_STEM "/sys/lib/perl/5.33.1/site_perl" /**/ +#define SITELIB "/sys/lib/perl/7.1.0/site_perl" /**/ +#define SITELIB_EXP "/sys/lib/perl/7.1.0/site_perl" /**/ +#define SITELIB_STEM "/sys/lib/perl/7.1.0/site_perl" /**/ /* Size_t_size: * This symbol holds the size of a Size_t in bytes. diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample index 00cf8d47a26..f707d2f54ca 100644 --- a/plan9/config_sh.sample +++ b/plan9/config_sh.sample @@ -6,7 +6,7 @@ # instead choose to run each of the .SH files by yourself, or "Configure -S". # -# Package name : perl5 +# Package name : perl7 # Source directory : . # Configuration time: Sun Nov 24 20:57:48 EST 2002 # Configured by : unknown @@ -31,12 +31,12 @@ afsroot='/afs' alignbytes='4' aphostname='/bin/uname -n' api_revision='5' -api_subversion='1' -api_version='33' -api_versionstring='5.33.1' +api_subversion='0' +api_version='1' +api_versionstring='7.1.0' ar='ar' -archlib='/sys/lib/perl5/5.33.1/386' -archlibexp='/sys/lib/perl5/5.33.1/386' +archlib='/sys/lib/perl/7.1.0/386' +archlibexp='/sys/lib/perl/7.1.0/386' archname64='' archname='386' archobjs='' @@ -818,18 +818,18 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='/sys/lib/perl/5.33.1/386' +installarchlib='/sys/lib/perl/7.1.0/386' installbin='/usr/bin' installman1dir='/sys/man/1pub' installman3dir='/sys/man/2pub' installprefix='/usr' installprefixexp='/usr' -installprivlib='/sys/lib/perl/5.33.1' +installprivlib='/sys/lib/perl/7.1.0' installscript='/usr/bin' -installsitearch='/sys/lib/perl/5.33.1/site_perl/386' +installsitearch='/sys/lib/perl/7.1.0/site_perl/386' installsitebin='/usr/bin' -installsitelib='/sys/lib/perl/5.33.1/site_perl' -installstyle='lib/perl5' +installsitelib='/sys/lib/perl/7.1.0/site_perl' +installstyle='lib/perl' installusrbinperl='undef' installvendorarch='' installvendorbin='' @@ -933,7 +933,7 @@ orderlib='false' osname='plan9' osvers='1' otherlibdirs=' ' -package='perl5' +package='perl7' pager='/usr/ucb/more' passcat='' patchlevel='8' @@ -953,8 +953,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/sys/lib/perl/5.33.1' -privlibexp='/sys/lib/perl/5.33.1' +privlib='/sys/lib/perl/7.1.0' +privlibexp='/sys/lib/perl/7.1.0' procselfexe='' prototype='define' ptrsize='4' @@ -1019,13 +1019,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0' sig_size='50' signal_t='void' -sitearch='/sys/lib/perl/5.33.1/site_perl/386' +sitearch='/sys/lib/perl/7.1.0/site_perl/386' sitearchexp='/sys/lib/perl/site_perl/386' sitebin='/usr/bin' sitebinexp='/usr/bin' -sitelib='/sys/lib/perl/5.33.1/site_perl' -sitelib_stem='/sys/lib/perl/5.33.1/site_perl' -sitelibexp='/sys/lib/perl/5.33.1/site_perl' +sitelib='/sys/lib/perl/7.1.0/site_perl' +sitelib_stem='/sys/lib/perl/7.1.0/site_perl' +sitelibexp='/sys/lib/perl/7.1.0/site_perl' siteprefix='/usr' siteprefixexp='/usr' sizesize='4' @@ -1037,7 +1037,7 @@ sockethdr='' socketlib='' socksizetype='int' sort='sort' -spackage='Perl5' +spackage='Perl7' spitshell='cat' srand48_r_proto='0' srandom_r_proto='0' @@ -1139,8 +1139,8 @@ vendorlib_stem='' vendorlibexp='' vendorprefix='' vendorprefixexp='' -version='5.33.1' -version_patchlevel_string='version 33 subversion 1' +version='7.1.0' +version_patchlevel_string='version 1 subversion 0' versiononly='undef' vi='' xlibpth='' @@ -1152,11 +1152,11 @@ zip='zip' config_arg0='./Configure' config_args='' config_argc=0 -PERL_REVISION=5 -PERL_VERSION=33 -PERL_SUBVERSION=1 -PERL_API_REVISION=5 -PERL_API_VERSION=33 -PERL_API_SUBVERSION=1 +PERL_VERSION_MAJOR=7 +PERL_VERSION_MINOR=1 +PERL_VERSION_PATCH=0 +PERL_API_REVISION=7 +PERL_API_VERSION=1 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/plan9/genconfig.pl b/plan9/genconfig.pl index ebd97db0183..f63edb2e658 100644 --- a/plan9/genconfig.pl +++ b/plan9/genconfig.pl @@ -66,7 +66,7 @@ # $0 # Time: $time -package='perl5' +package='perl7' CONFIG='true' cf_time='$time' cf_by='$cf_by' @@ -269,18 +269,18 @@ if (open(PL,'<',"${outdir}patchlevel.h")) { while () { - if (/^#define PERL_VERSION\s+(\S+)/) { - print OUT "PERL_VERSION='$1'\n"; + if (/^#define PERL_VERSION_MINOR\s+(\S+)/) { + print OUT "PERL_VERSION_MINOR='$1'\n"; print OUT "PATCHLEVEL='$1'\n"; # XXX compat } - elsif (/^#define PERL_SUBVERSION\s+(\S+)/) { - print OUT "PERL_SUBVERSION='$1'\n"; + elsif (/^#define PERL_VERSION_PATCH\s+(\S+)/) { + print OUT "PERL_VERSION_PATCH='$1'\n"; print OUT "SUBVERSION='$1'\n"; # XXX compat } } close PL; } -else { warn "Can't read ${outdir}patchlevel.h - skipping 'PERL_VERSION'"; } +else { warn "Can't read ${outdir}patchlevel.h - skipping 'PERL_VERSION_MINOR'"; } print OUT "pager='/bin/p'\n"; diff --git a/plan9/myconfig.plan9 b/plan9/myconfig.plan9 index ecf40174c60..bff0edbbaa9 100644 --- a/plan9/myconfig.plan9 +++ b/plan9/myconfig.plan9 @@ -15,7 +15,7 @@ $spitshell< "buildinfo"; diff --git a/pod/.gitignore b/pod/.gitignore index 34c82336cfe..10e8b15a007 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -49,7 +49,7 @@ /roffitall # generated -/perl5331delta.pod +/perl710delta.pod /perlapi.pod /perlintern.pod /perlmodlib.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 13332c75dbb..a3b35084672 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -5,15 +5,15 @@ [ this is a template for a new perldelta file. Any text flagged as XXX needs to be processed before release. ] -perldelta - what is new for perl v5.33.1 +perldelta - what is new for perl v7.1.0 =head1 DESCRIPTION -This document describes differences between the 5.33.0 release and the 5.33.1 +This document describes differences between the 5.32.0 release and the 7.1.0 release. -If you are upgrading from an earlier release such as 5.32.0, first read -L, which describes differences between 5.32.0 and 5.33.0. +If you are upgrading from an earlier release such as 5.30.0, first read +L, which describes differences between 5.30.0 and 5.32.0. =head1 Notice @@ -311,13 +311,13 @@ XXX =head2 Discontinued Platforms +XXX List any platforms that this version of perl no longer compiles on. + =over 4 -=item Symbian +=item XXX-some-platform -Support code relating to Symbian has been removed. Symbian was an -operating system for mobile devices. The port was last updated in July -2009, and the platform itself in October 2012. +XXX =back @@ -342,13 +342,13 @@ XXX Changes which affect the interface available to C code go here. Other significant internal changes for future core maintainers should be noted as well. +[ List each change as an =item entry ] + =over 4 =item * -The C compilation option has been removed, and -with it the need or the C macro. C remains defined as a -no-op outside C for backwards compatiblity with XS modules. +XXX =back @@ -403,7 +403,7 @@ died, add a short obituary here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.33.0..HEAD + perl Porting/acknowledgements.pl v7.1.0..HEAD =head1 Reporting Bugs diff --git a/pp_ctl.c b/pp_ctl.c index 40e9ae7289c..f6b5a8679d2 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -3775,7 +3775,7 @@ S_require_version(pTHX_ SV *sv) lav = MUTABLE_AV(SvRV(*hv_fetchs(MUTABLE_HV(req), "version", FALSE))); first = SvIV(*av_fetch(lav,0,0)); - if ( first > (int)PERL_REVISION /* probably 'use 6.0' */ + if ( first > (int)PERL_VERSION_MAJOR /* probably 'use 6.0' */ || hv_exists(MUTABLE_HV(req), "qv", 2 ) /* qv style */ || av_tindex(lav) > 1 /* FP with > 3 digits */ || strstr(SvPVX(pv),".0") /* FP with leading 0 */ diff --git a/regen/feature.pl b/regen/feature.pl index cab3928f347..278e535d5ef 100755 --- a/regen/feature.pl +++ b/regen/feature.pl @@ -45,6 +45,7 @@ BEGIN # be changed to account. # 5.odd implies the next 5.even, but an explicit 5.even can override it. +my @all_features = sort keys %feature; # features bundles use constant V5_9_5 => sort qw{say state switch indirect}; @@ -54,7 +55,7 @@ BEGIN use constant V5_27 => sort ( +V5_23, qw{bitwise} ); my %feature_bundle = ( - all => [ sort keys %feature ], + all => [ @all_features ], default => [ qw{indirect} ], # using 5.9.5 features bundle "5.9.5" => [ +V5_9_5 ], @@ -74,7 +75,8 @@ BEGIN "5.27" => [ +V5_27 ], "5.29" => [ +V5_27 ], "5.31" => [ +V5_27 ], - "5.33" => [ +V5_27 ], + "7.0" => [ +V5_27 ], + "7.1" => [ +V5_27 ], ); my @noops = qw( postderef lexical_subs ); @@ -96,8 +98,8 @@ BEGIN } for (keys %feature_bundle) { - next unless /^5\.(\d*[13579])\z/; - $feature_bundle{"5.".($1+1)} ||= $feature_bundle{$_}; + next unless /^(\d+)\.(\d*[13579])\z/a; + $feature_bundle{"$1.".($2+1)} ||= $feature_bundle{$_}; } my %UniqueBundles; # "say state switch" => 5.10 @@ -117,7 +119,7 @@ BEGIN sort { $a eq 'default' ? -1 : $b eq 'default' ? 1 : $a cmp $b } values %UniqueBundles ) { - next if $bund =~ /[^\d.]/ and $bund ne 'default'; + next if $bund =~ /[^\d.]/a and $bund ne 'default'; for (@{$feature_bundle{$bund}}) { if (@{$BundleRanges{$_} ||= []} == 2) { $BundleRanges{$_}[1] = $bund @@ -149,8 +151,7 @@ BEGIN my $bits_needed = length sprintf "%b", scalar keys %UniqueBundles; $bits =~ /1{$bits_needed}/ - or die "Not enough bits (need $bits_needed)" - . " in $bits (binary for $hex):\n\n$_\n "; + or die "Not enough bits (need $bits_needed) in $bits (binary for $hex):\n\n$_\n"; } if ($Uni8Bit && $HintMask) { last } } @@ -160,7 +161,7 @@ BEGIN close "perl.h"; my @HintedBundles = - ('default', grep !/[^\d.]/, sort values %UniqueBundles); + ('default', grep !/[^\d.]/a, sort values %UniqueBundles); ########################################################################### @@ -244,9 +245,9 @@ sub longest { $::bundle, $::feature . -for ('default', sort grep /\.\d[02468]/, keys %feature_bundle) { - $::bundle = ":$_"; - $::feature = join ' ', @{$feature_bundle{$_}}; +foreach my $bundle ('default', sort grep /\.\d*[02468]\z/a, keys %feature_bundle) { + $::bundle = ":$bundle"; + $::feature = join ' ', @{$feature_bundle{$bundle}}; write $pm; print $pm "\n"; } @@ -475,7 +476,7 @@ sub longest { __END__ package feature; -our $VERSION = '1.60'; +our $VERSION = '1.61'; FEATURES diff --git a/regen/regen_lib.pl b/regen/regen_lib.pl index cbe51eda718..ec30595fbd5 100644 --- a/regen/regen_lib.pl +++ b/regen/regen_lib.pl @@ -239,13 +239,13 @@ sub perl_version { open my $fh, "<", $plh or die "can't open '$plh': $!\n"; my ($v1,$v2,$v3); while (<$fh>) { - $v1 = $1 if /PERL_REVISION\s+(\d+)/; - $v2 = $1 if /PERL_VERSION\s+(\d+)/; - $v3 = $1 if /PERL_SUBVERSION\s+(\d+)/; + $v1 = $1 if /PERL_VERSION_MAJOR\s+(\d+)/; + $v2 = $1 if /PERL_VERSION_MINOR\s+(\d+)/; + $v3 = $1 if /PERL_VERSION_PATCH\s+(\d+)/; } - die "can't locate PERL_REVISION in '$plh'" unless defined $v1; - die "can't locate PERL_VERSION in '$plh'" unless defined $v2; - die "can't locate PERL_SUBVERSION in '$plh'" unless defined $v3; + die "can't locate PERL_VERSION_MAJOR in '$plh'" unless defined $v1; + die "can't locate PERL_VERSION_MINOR in '$plh'" unless defined $v2; + die "can't locate PERL_VERSION_PATCH in '$plh'" unless defined $v3; return ($v1,$v2,$v3, sprintf("%d.%03d%03d", $v1, $v2, $v3)); } diff --git a/t/comp/use.t b/t/comp/use.t index 12409cfac5f..fe3ee6a8ab9 100644 --- a/t/comp/use.t +++ b/t/comp/use.t @@ -17,40 +17,40 @@ sub _ok { my $result; if ($type eq 'is') { - $result = $got eq $expected; + $result = $got eq $expected; } elsif ($type eq 'isnt') { - $result = $got ne $expected; + $result = $got ne $expected; } elsif ($type eq 'like') { - $result = $got =~ $expected; + $result = $got =~ $expected; } elsif ($type eq 'ok') { - $result = not not $got; + $result = not not $got; } else { - die "Unexpected type '$type'$name"; + die "Unexpected type '$type'$name"; } if ($result) { - if ($name) { - print "ok $test - $name\n"; - } else { - print "ok $test\n"; - } + if ($name) { + print "ok $test - $name\n"; + } else { + print "ok $test\n"; + } } else { - if ($name) { - print "not ok $test - $name\n"; - } else { - print "not ok $test\n"; - } - my @caller = caller(1); - print "# Failed test at $caller[1] line $caller[2]\n"; - print "# Got '$got'\n"; - if ($type eq 'is') { - print "# Expected '$expected'\n"; - } elsif ($type eq 'isnt') { - print "# Expected not '$expected'\n"; - } elsif ($type eq 'like') { - print "# Expected $expected\n"; - } elsif ($type eq 'ok') { - print "# Expected a true value\n"; - } + if ($name) { + print "not ok $test - $name\n"; + } else { + print "not ok $test\n"; + } + my @caller = caller(1); + print "# Failed test at $caller[1] line $caller[2]\n"; + print "# Got '$got'\n"; + if ($type eq 'is') { + print "# Expected '$expected'\n"; + } elsif ($type eq 'isnt') { + print "# Expected not '$expected'\n"; + } elsif ($type eq 'like') { + print "# Expected $expected\n"; + } elsif ($type eq 'ok') { + print "# Expected a true value\n"; + } } $test = $test + 1; $result; @@ -69,78 +69,94 @@ sub ok($;$) { _ok ('ok', shift, undef, @_); } -eval "use 5"; # implicit semicolon -is ($@, ''); +eval "use 5"; +is ($@, '', "implicit semicolon"); eval "use 5;"; -is ($@, ''); +is ($@, '', "explicit semicolon"); -eval "{use 5}"; # [perl #70884] -is ($@, ''); +eval "{use 5}"; +is ($@, '', "[perl #70884] -> GH 9990"); -eval "{use 5 }"; # [perl #70884] -is ($@, ''); +eval "{use 5 }"; +is ($@, '', "[perl #70884] -> GH 9990"); # new style version numbers eval q{ use v5.5.630; }; -is ($@, ''); +is ($@, '', "3-part version number"); eval q{ use 10.0.2; }; -like ($@, qr/^Perl v10\.0\.2 required/); +like ($@, qr/^Perl v10\.0\.2 required/, + "Got expected error message: insufficient Perl version"); -eval "use 5.000"; # implicit semicolon -is ($@, ''); +eval "use 5.000"; +is ($@, '', "implicit semicolon - decimal version number"); eval "use 5.000;"; -is ($@, ''); +is ($@, '', "explicit semicolon - decimal version number"); -eval "use 6.000;"; -like ($@, qr/Perl v6\.0\.0 required--this is only \Q$^V\E, stopped/); +eval "use 666.000;"; +like ($@, qr/Perl v666\.0\.0 required--this is only \Q$^V\E, stopped/, + "Got expected error message: insufficient Perl version - decimal version number"); -eval "no 6.000;"; -is ($@, ''); +eval "no 8.000;"; +is ($@, '', "No error for 'no 8.000'"); eval "no 5.000;"; -like ($@, qr/Perls since v5\.0\.0 too modern--this is \Q$^V\E, stopped/); +like ($@, qr/Perls since v5\.0\.0 too modern--this is \Q$^V\E, stopped/, + "Got expected error message: 'no 5.000'"); -eval "use 5.6;"; -like ($@, qr/Perl v5\.600\.0 required \(did you mean v5\.6\.0\?\)--this is only \Q$^V\E, stopped/); +eval "use 7.6;"; +like ($@, qr/Perl v7\.600\.0 required \(did you mean v7\.6\.0\?\)--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use 7.6;'"); -eval "use 5.8;"; -like ($@, qr/Perl v5\.800\.0 required \(did you mean v5\.8\.0\?\)--this is only \Q$^V\E, stopped/); +eval "use 7.8;"; +like ($@, qr/Perl v7\.800\.0 required \(did you mean v7\.8\.0\?\)--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use 7.8;'"); -eval "use 5.9;"; -like ($@, qr/Perl v5\.900\.0 required \(did you mean v5\.9\.0\?\)--this is only \Q$^V\E, stopped/); +eval "use 7.9;"; +like ($@, qr/Perl v7\.900\.0 required \(did you mean v7\.9\.0\?\)--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use 7.9;'"); -eval "use 5.10;"; -like ($@, qr/Perl v5\.100\.0 required \(did you mean v5\.10\.0\?\)--this is only \Q$^V\E, stopped/); +eval "use 7.10;"; +like ($@, qr/Perl v7\.100\.0 required \(did you mean v7\.10\.0\?\)--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use 7.10;'"); + +{ + local $::TODO = "patch pp_ctl.c S_require_version for use 5.x"; + eval "use 5.8;"; + like ($@, qr/Perl v5\.800\.0 required \(did you mean v5\.8\.0\?\)--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use 5.8;' # TODO $::TODO"); +} -eval "use 5.11;"; -like ($@, qr/Perl v5\.110\.0 required \(did you mean v5\.11\.0\?\)--this is only \Q$^V\E, stopped/); eval sprintf "use %.6f;", $]; -is ($@, ''); +is ($@, '', "No error message on: 'use %.6f;'"); eval sprintf "use %.6f;", $] - 0.000001; -is ($@, ''); +is ($@, '', "No error message on: 'use %.6f;'"); eval sprintf("use %.6f;", $] + 1); -like ($@, qr/Perl v6.\d+.\d+ required--this is only \Q$^V\E, stopped/); +like ($@, qr/Perl v8.\d+.\d+ required--this is only \Q$^V\E, stopped/, + "Got expected error message: 'use %.6f;'"); eval sprintf "use %.6f;", $] + 0.00001; -like ($@, qr/Perl v5.\d+.\d+ required--this is only \Q$^V\E, stopped/); +like ($@, qr/Perl v7.\d+.\d+ required--this is only \Q$^V\E, stopped/a, + "Got expected error message: 'use %.6f;'"); # check that "use 5.11.0" (and higher) loads strictures eval 'use 5.11.0; ${"foo"} = "bar";'; -like ($@, qr/Can't use string \("foo"\) as a SCALAR ref while "strict refs" in use/); +like ($@, qr/Can't use string \("foo"\) as a SCALAR ref while "strict refs" in use/, + "5.11.0 (and higher) loads strictures"); # but that they can be disabled eval 'use 5.11.0; no strict "refs"; ${"foo"} = "bar";'; -is ($@, ""); +is ($@, "", "... but strictures can be disabled"); # and they are properly scoped eval '{use 5.11.0;} ${"foo"} = "bar";'; -is ($@, ""); +is ($@, "", "... and they are properly scoped"); + eval 'no strict; use 5.012; ${"foo"} = "bar"'; is $@, "", 'explicit "no strict" overrides later ver decl'; eval 'use strict; use 5.01; ${"foo"} = "bar"'; @@ -165,7 +181,7 @@ eval 'no strict "vars"; use 5.012; ursine_word'; ok $@, 'no strict vars allows ver decl to enable subs'; -{ use test_use } # check that subparse saves pending tokens +{ use test_use } # check that subparse saves pending tokens use test_use { () }; is ref $test_use::got[0], 'HASH', 'use parses arguments in term lexing cx'; @@ -173,127 +189,133 @@ is ref $test_use::got[0], 'HASH', 'use parses arguments in term lexing cx'; local $test_use::VERSION = 1.0; eval "use test_use 0.9"; -is ($@, ''); +is ($@, '', "use test_use 0.9"); eval "use test_use 1.0"; -is ($@, ''); +is ($@, '', "use test_use 1.0"); eval "use test_use 1.01"; -isnt ($@, ''); +isnt ($@, '', 'use test_use 1.01'); eval "use test_use 0.9 qw(fred)"; -is ($@, ''); +is ($@, '', 'use test_use 0.9 qw(fred)'); -is("@test_use::got", "fred"); +is("@test_use::got", "fred", 'got fred'); eval "use test_use 1.0 qw(joe)"; -is ($@, ''); +is ($@, '', 'use test_use 1.0 qw(joe)'); -is("@test_use::got", "joe"); +is("@test_use::got", "joe", 'got joe'); eval "use test_use 1.01 qw(freda)"; -isnt($@, ''); +isnt($@, '', 'use test_use 1.01 qw(freda)'); -is("@test_use::got", "joe"); +is("@test_use::got", "joe", 'got joe'); { local $test_use::VERSION = 35.36; eval "use test_use v33.55"; - is ($@, ''); + is ($@, '', 'use test_use v33.55'); eval "use test_use v100.105"; - like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/); + like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/, + "Got expected error message: insufficient test_use version"); eval "use test_use 33.55"; - is ($@, ''); + is ($@, '', 'use test_use 33.55'); eval "use test_use 100.105"; - like ($@, qr/test_use version 100.105 required--this is only version 35.36/); + like ($@, qr/test_use version 100.105 required--this is only version 35.36/, + "Got expected error message: insufficient test_use version"); local $test_use::VERSION = '35.36'; eval "use test_use v33.55"; - like ($@, ''); + like ($@, '', 'use test_use v33.55'); eval "use test_use v100.105"; - like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/); + like ($@, qr/test_use version v100.105.0 required--this is only version v35\.360\.0/, + "Got expected error message: insufficient test_use version"); eval "use test_use 33.55"; - is ($@, ''); + is ($@, '', 'use test_use 33.55'); eval "use test_use 100.105"; - like ($@, qr/test_use version 100.105 required--this is only version 35.36/); + like ($@, qr/test_use version 100.105 required--this is only version 35.36/, + "Got expected error message: insufficient test_use version"); local $test_use::VERSION = v35.36; eval "use test_use v33.55"; - is ($@, ''); + is ($@, '', 'use test_use v33.55'); eval "use test_use v100.105"; - like ($@, qr/test_use version v100.105.0 required--this is only version v35\.36\.0/); + like ($@, qr/test_use version v100.105.0 required--this is only version v35\.36\.0/, + "Got expected error message: insufficient test_use version"); eval "use test_use 33.55"; - is ($@, ''); + is ($@, '', 'use test_use 33.55'); eval "use test_use 100.105"; - like ($@, qr/test_use version 100.105 required--this is only version v35.36/); + like ($@, qr/test_use version 100.105 required--this is only version v35.36/, + "Got expected error message: insufficient test_use version"); } { - # Regression test for patch 14937: + # Regression test for patch 14937: # Check that a .pm file with no package or VERSION doesn't core. # (git commit 2658f4d9934aba5f8b23afcc078dc12b3a40223) eval "use test_use_14937 3"; - like ($@, qr/^test_use_14937 defines neither package nor VERSION--version check failed at/); + like ($@, qr/^test_use_14937 defines neither package nor VERSION--version check failed at/, "test_use_14937"); } my @ver = split /\./, sprintf "%vd", $^V; foreach my $index (-3..+3) { foreach my $v (0, 1) { - my @parts = @ver; - if ($index) { - if ($index < 0) { - # Jiggle one of the parts down - --$parts[-$index - 1]; - if ($parts[-$index - 1] < 0) { - # perl's version number ends with '.0' - $parts[-$index - 1] = 0; - $parts[-$index - 2] -= 2; - } - } else { - # Jiggle one of the parts up - ++$parts[$index - 1]; - } - } - my $v_version = sprintf "v%d.%d.%d", @parts; - my $version; - if ($v) { - $version = $v_version; - } else { - $version = $parts[0] + $parts[1] / 1000 + $parts[2] / 1000000; - } - - eval "use $version"; - if ($index > 0) { - # The future - like ($@, - qr/Perl $v_version required--this is only \Q$^V\E, stopped/, - "use $version"); - } else { - # The present or past - is ($@, '', "use $version"); - } - - eval "no $version"; - if ($index <= 0) { - # The present or past - like ($@, - qr/Perls since $v_version too modern--this is \Q$^V\E, stopped/, - "no $version"); - } else { - # future - is ($@, '', "no $version"); - } + my @parts = @ver; + if ($index) { + if ($index < 0) { + # Jiggle one of the parts down + --$parts[-$index - 1] if $parts[-$index - 1] > 1; + if ($parts[-$index - 1] < 0) { + # perl's version number ends with '.0' + $parts[-$index - 1] = 0; + $parts[-$index - 2] -= 2 if $parts[-$index - 2] > 2; + } + } else { + # Jiggle one of the parts up + ++$parts[$index - 1]; + } + } + my $v_version = sprintf "v%d.%d.%d", @parts; + my $version; + if ($v) { + $version = $v_version; + } else { + $version = $parts[0] + $parts[1] / 1000 + $parts[2] / 1000000; + } + + eval "use $version"; + if ($index > 0) { + # The future + like ($@, + qr/Perl $v_version required--this is only \Q$^V\E, stopped/, + "use $version"); + } else { + # The present or past + is ($@, '', "use $version"); + } + + eval "no $version"; + if ($index <= 0) { + # The present or past + like ($@, + qr/Perls since $v_version too modern--this is \Q$^V\E, stopped/, + "no $version"); + } else { + # future + is ($@, '', "no $version"); + } } } diff --git a/t/porting/customized.dat b/t/porting/customized.dat index c38a92ee16a..c3cc6400680 100644 --- a/t/porting/customized.dat +++ b/t/porting/customized.dat @@ -30,4 +30,4 @@ Win32API::File cpan/Win32API-File/File.pm 8fd212857f821cb26648878b96e57f13bf21b9 Win32API::File cpan/Win32API-File/File.xs beb870fed4490d2faa547b4a8576b8d64d1d27c5 experimental cpan/experimental/t/basic.t cb9da8dd05b854375809872a05dd32637508d5da version cpan/version/lib/version.pm 7ef9219d1d5f1d71f08a79f3b0577df138b21b12 -version vutil.c 601cc57bbc0070ae33eab7fd2d667f20efbe15f8 +version vutil.c 8b6af97faadfad5404e2482dbba762946718c69b diff --git a/t/porting/customized.t b/t/porting/customized.t index d425e5b775a..272d5beb189 100644 --- a/t/porting/customized.t +++ b/t/porting/customized.t @@ -128,8 +128,7 @@ customized.t - Test that CUSTOMIZED files in Maintainers.pl have not been overwr =head1 SYNOPSIS - cd t - ./perl -I../lib porting/customized.t --regen + cd t; ./perl -I../lib porting/customized.t --regen; cd - =head1 DESCRIPTION diff --git a/t/porting/regen.t b/t/porting/regen.t index 2c3fa219981..014af353ed8 100644 --- a/t/porting/regen.t +++ b/t/porting/regen.t @@ -2,6 +2,11 @@ # Verify that all files generated by perl scripts are up to date. +# Hint: A failure in this file can often be corrected by running: +# ./perl -Ilib regen/_________.pl +# ... where you fill in the blank by looking at what 'make test_porting' +# tells you. + BEGIN { @INC = '..' if -f '../TestInit.pm'; } diff --git a/t/run/switches.t b/t/run/switches.t index aa8d9c5427c..89f99e5fa93 100644 --- a/t/run/switches.t +++ b/t/run/switches.t @@ -7,7 +7,7 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; - require Config; import Config; + require Config; Config->import; } BEGIN { require "./test.pl"; require "./loc_tools.pl"; } @@ -19,6 +19,7 @@ use Config; # due to a bug in VMS's piping which makes it impossible for runperl() # to emulate echo -n (ie. stdin always winds up with a newline), these # tests almost totally fail. +our $TODO; $TODO = "runperl() unable to emulate echo -n due to pipe bug" if $^O eq 'VMS'; my $r; @@ -121,7 +122,7 @@ SKIP: { # Win32 won't let us open the directory, so we never get to die with # EISDIR, which happens after open. require Errno; - import Errno qw(EACCES EISDIR); + Errno->import( qw(EACCES EISDIR) ); my $error = do { local $! = $^O eq 'MSWin32' ? &EACCES : &EISDIR; "$!" }; @@ -267,7 +268,7 @@ is runperl(stderr => 1, prog => '#!perl -M'), '-V generates 20+ lines' ); like( runperl( switches => ['-V'] ), - qr/\ASummary of my perl5 .*configuration:/, + qr/\ASummary of my perl7 .*configuration:/, '-V looks okay' ); # lookup a known config var @@ -301,10 +302,12 @@ is runperl(stderr => 1, prog => '#!perl -M'), skip "Win32 miniperl produces a default archname in -v", 1 if $^O eq 'MSWin32' && is_miniperl; my $v = sprintf "%vd", $^V; - my $ver = $Config{PERL_VERSION}; - my $rel = $Config{PERL_SUBVERSION}; + my $rev = $Config{PERL_VERSION_MAJOR}; + my $ver = $Config{PERL_VERSION_MINOR}; + my $rel = $Config{PERL_VERSION_PATCH}; + print STDERR "# $rev-$ver-$rel\n"; like( runperl( switches => ['-v'] ), - qr/This is perl 5, version \Q$ver\E, subversion \Q$rel\E \(v\Q$v\E(?:[-*\w]+| \([^)]+\))?\) built for \Q$Config{archname}\E.+Copyright.+Larry Wall.+Artistic License.+GNU General Public License/s, + qr/This is perl \Q$rev\E, version \Q$ver\E, subversion \Q$rel\E \(v\Q$v\E(?:[-*\w]+| \([^)]+\))?\) built for \Q$Config{archname}\E.+Copyright.+Larry Wall.+Artistic License.+GNU General Public License/s, '-v looks okay' ); } } diff --git a/toke.c b/toke.c index 27273d941e5..b995af25f3c 100644 --- a/toke.c +++ b/toke.c @@ -8713,7 +8713,7 @@ yyl_try(pTHX_ char *s) } if (PL_minus_E) sv_catpvs(PL_linestr, - "use feature ':5." STRINGIFY(PERL_VERSION) "';"); + "use feature ':" STRINGIFY(PERL_VERSION_MAJOR) "." STRINGIFY(PERL_VERSION_MINOR) "';"); if (PL_minus_n || PL_minus_p) { sv_catpvs(PL_linestr, "LINE: while (<>) {"/*}*/); if (PL_minus_l) diff --git a/uconfig.h b/uconfig.h index 24e0a358135..5038f110902 100644 --- a/uconfig.h +++ b/uconfig.h @@ -7,7 +7,7 @@ * For a more permanent change edit uconfig.sh and rerun config_h.SH. */ -/* Package name : perl5 +/* Package name : perl7 * Source directory : . * Configuration time: Thu Jan 1 00:00:00 GMT 1970 * Configured by : root@localhost @@ -1219,7 +1219,7 @@ /* ARCHLIB: * This variable, if defined, holds the name of the directory in * which the user wants to put architecture-dependent public - * library files for perl5. It is most often a local directory + * library files for perl7. It is most often a local directory * such as /usr/local/lib. Programs using this variable must be * prepared to deal with filename expansion. If ARCHLIB is the * same as PRIVLIB, it is not defined, since presumably the @@ -1229,8 +1229,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define ARCHLIB "/usr/local/lib/perl5/5.33/unknown" / **/ -/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.33/unknown" / **/ +/*#define ARCHLIB "/usr/local/lib/perl/7.0/unknown" / **/ +/*#define ARCHLIB_EXP "/usr/local/lib/perl/7.0/unknown" / **/ /* BIN: * This symbol holds the path of the bin directory where the package will @@ -1283,8 +1283,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/usr/local/lib/perl5/5.33" /**/ -#define PRIVLIB_EXP "/usr/local/lib/perl5/5.33" /**/ +#define PRIVLIB "/usr/local/lib/perl/7.0" /**/ +#define PRIVLIB_EXP "/usr/local/lib/perl/7.0" /**/ /* SITEARCH: * This symbol contains the name of the private library for this package. @@ -1301,8 +1301,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define SITEARCH "/usr/local/lib/perl5/5.33/unknown" / **/ -/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.33/unknown" / **/ +/*#define SITEARCH "/usr/local/lib/perl/7.0/unknown" / **/ +/*#define SITEARCH_EXP "/usr/local/lib/perl/7.0/unknown" / **/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -1324,9 +1324,9 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "/usr/local/lib/perl5/5.33" /**/ -#define SITELIB_EXP "/usr/local/lib/perl5/5.33" /**/ -#define SITELIB_STEM "/usr/local/lib/perl5" /**/ +#define SITELIB "/usr/local/lib/perl/7.0" /**/ +#define SITELIB_EXP "/usr/local/lib/perl/7.0" /**/ +#define SITELIB_STEM "/usr/local/lib/perl7" /**/ /* PERL_VENDORARCH: * If defined, this symbol contains the name of a private library. @@ -5261,5 +5261,5 @@ /* Generated from: * 14796a77fb4ae3335f5e589a98445bc6e838b688194f6f112537495f0814f5d5 config_h.SH - * 36943454dd4cff2f1fd6a87074c461192a18b540d34c4d348707cc8cf7b8fcfc uconfig.sh + * efb14495ce8db7527febdc72851979a05ee1256389a6c81a46c9d171b40962f2 uconfig.sh * ex: set ro: */ diff --git a/uconfig.sh b/uconfig.sh index b1ed39ee1c6..1c632455cf7 100644 --- a/uconfig.sh +++ b/uconfig.sh @@ -6,8 +6,8 @@ afs='false' afsroot='/afs' alignbytes='4' aphostname='/bin/hostname' -archlib='/usr/local/lib/perl5/5.33/unknown' -archlibexp='/usr/local/lib/perl5/5.33/unknown' +archlib='/usr/local/lib/perl/7.0/unknown' +archlibexp='/usr/local/lib/perl/7.0/unknown' archname='unknown' asctime_r_proto='0' bin='/usr/local/bin' @@ -729,7 +729,7 @@ i_wctype='undef' i_xlocale='undef' ignore_versioned_solibs='y' inc_version_list_init='NULL' -installstyle='lib/perl5' +installstyle='lib/perl' installusrbinperl='undef' intsize='4' ivdformat='"ld"' @@ -777,12 +777,12 @@ orderlib='false' osname='unknown' osvers='unknown' otherlibdirs=' ' -package='perl5' +package='perl7' perl_static_inline='static' phostname='hostname' pidtype=int -privlib='/usr/local/lib/perl5/5.33' -privlibexp='/usr/local/lib/perl5/5.33' +privlib='/usr/local/lib/perl/7.0' +privlibexp='/usr/local/lib/perl/7.0' procselfexe='' prototype='undef' ptrsize='4' @@ -832,11 +832,11 @@ sig_name_init='0' sig_num_init='0' sig_size='1' signal_t=int -sitearch='/usr/local/lib/perl5/5.33/unknown' -sitearchexp='/usr/local/lib/perl5/5.33/unknown' -sitelib='/usr/local/lib/perl5/5.33' -sitelib_stem='/usr/local/lib/perl5' -sitelibexp='/usr/local/lib/perl5/5.33' +sitearch='/usr/local/lib/perl/7.0/unknown' +sitearchexp='/usr/local/lib/perl/7.0/unknown' +sitelib='/usr/local/lib/perl/7.0' +sitelib_stem='/usr/local/lib/perl' +sitelibexp='/usr/local/lib/perl/7.0' sizesize=4 sizetype='size_t' socksizetype='int' diff --git a/uconfig64.sh b/uconfig64.sh index 112689fa028..92cd7398fe9 100644 --- a/uconfig64.sh +++ b/uconfig64.sh @@ -6,8 +6,8 @@ afs='false' afsroot='/afs' alignbytes='8' aphostname='/bin/hostname' -archlib='/usr/local/lib/perl5/5.33/unknown' -archlibexp='/usr/local/lib/perl5/5.33/unknown' +archlib='/usr/local/lib/perl/7.0/unknown' +archlibexp='/usr/local/lib/perl/7.0/unknown' archname='unknown64' asctime_r_proto='0' bin='/usr/local/bin' @@ -729,7 +729,7 @@ i_wctype='undef' i_xlocale='undef' ignore_versioned_solibs='y' inc_version_list_init='NULL' -installstyle='lib/perl5' +installstyle='lib/perl' installusrbinperl='undef' intsize='4' ivdformat='"ld"' @@ -777,12 +777,12 @@ orderlib='false' osname='unknown' osvers='unknown' otherlibdirs=' ' -package='perl5' +package='perl7' perl_static_inline='static' phostname='hostname' pidtype=int -privlib='/usr/local/lib/perl5/5.33' -privlibexp='/usr/local/lib/perl5/5.33' +privlib='/usr/local/lib/perl/7.0' +privlibexp='/usr/local/lib/perl/7.0' procselfexe='' prototype='undef' ptrsize='8' @@ -832,11 +832,11 @@ sig_name_init='0' sig_num_init='0' sig_size='1' signal_t=int -sitearch='/usr/local/lib/perl5/5.33/unknown' -sitearchexp='/usr/local/lib/perl5/5.33/unknown' -sitelib='/usr/local/lib/perl5/5.33' -sitelib_stem='/usr/local/lib/perl5' -sitelibexp='/usr/local/lib/perl5/5.33' +sitearch='/usr/local/lib/perl/7.0/unknown' +sitearchexp='/usr/local/lib/perl/7.0/unknown' +sitelib='/usr/local/lib/perl/7.0' +sitelib_stem='/usr/local/lib/perl' +sitelibexp='/usr/local/lib/perl/7.0' sizesize=4 sizetype='size_t' socksizetype='int' diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index e5954f6a561..65ff509fb78 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -70,7 +70,7 @@ OBJVAL = $(MMS$TARGET_NAME)$(O) .endif .endif -PERL_VERSION = ~PV~ +PERL_VERSION_MINOR = ~PV~ .ifdef MALLOC MALLOC_O = malloc$(O) @@ -81,9 +81,9 @@ MALLOC_C = malloc$(C) SOCKET=1 .endif -ARCHDIR = [.lib.$(ARCHNAME).$(PERL_VERSION)] -ARCHCORE = [.lib.$(ARCHNAME).$(PERL_VERSION).CORE] -ARCHAUTO = [.lib.$(ARCHNAME).$(PERL_VERSION).auto] +ARCHDIR = [.lib.$(ARCHNAME).$(PERL_VERSION_MINOR)] +ARCHCORE = [.lib.$(ARCHNAME).$(PERL_VERSION_MINOR).CORE] +ARCHAUTO = [.lib.$(ARCHNAME).$(PERL_VERSION_MINOR).auto] #: >>>>>Compiler-specific options <<<<< .ifdef GNUC @@ -313,7 +313,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5331delta.pod +PERLDELTA_CURRENT = [.pod]perl710delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/vms/myconfig.com b/vms/myconfig.com index 5f80d253153..0a6ac93072c 100644 --- a/vms/myconfig.com +++ b/vms/myconfig.com @@ -119,13 +119,13 @@ $ endif $ open/read RATHER_LONG_CONFIG_FILE_HANDLE 'RATHER_LONG_FILENAME_SEARCH' $read_patchlevel_h: $ read/end_of_file = patchlevel_h_Done RATHER_LONG_CONFIG_FILE_HANDLE line -$ if f$locate("PERL_VERSION",line).ne.f$length(line) +$ if f$locate("PERL_VERSION_MINOR",line).ne.f$length(line) $ then $ line = f$edit(line,"TRIM,COMPRESS") $ $PATCHLEVEL = f$element(2," ",line) $ if f$type($SUBVERSION).nes."" then goto patchlevel_h_Done $ endif -$ if f$locate("PERL_SUBVERSION",line).ne.f$length(line) +$ if f$locate("PERL_VERSION_PATCH",line).ne.f$length(line) $ then $ line = f$edit(line,"TRIM,COMPRESS") $ $SUBVERSION = f$element(2," ",line) @@ -137,7 +137,7 @@ $patchlevel_h_Done: $ close RATHER_LONG_CONFIG_FILE_HANDLE $ if $PATCHLEVEL.eqs."" $ then -$ echo "warning: PERL_VERSION was not found in ''RATHER_LONG_FILENAME_TO_FIND':" +$ echo "warning: PERL_VERSION_MINOR was not found in ''RATHER_LONG_FILENAME_TO_FIND':" $ endif $! $spit_it_out: diff --git a/vms/vmsish.h b/vms/vmsish.h index a0003e90bc7..d6909245601 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -319,9 +319,9 @@ struct interp_intern { #ifndef PERL_CORE # define PERL_FS_VER_FMT "%d_%d_%d" #endif -#define PERL_FS_VERSION STRINGIFY(PERL_REVISION) "_" \ - STRINGIFY(PERL_VERSION) "_" \ - STRINGIFY(PERL_SUBVERSION) +#define PERL_FS_VERSION STRINGIFY(PERL_VERSION_MAJOR) "_" \ + STRINGIFY(PERL_VERSION_MINOR) "_" \ + STRINGIFY(PERL_VERSION_PATCH) /* Temporary; we need to add support for this to Configure.Com */ #ifdef PERL_INC_VERSION_LIST # undef PERL_INC_VERSION_LIST diff --git a/vutil.c b/vutil.c index 23627bea78c..7850bf985a4 100644 --- a/vutil.c +++ b/vutil.c @@ -764,7 +764,7 @@ Perl_upg_version(pTHX_ SV *ver, bool qv) version = savepvn(SvPV(ver,len), SvCUR(ver)); SAVEFREEPV(version); #ifndef SvVOK -# if PERL_VERSION > 5 +# if PERL_VERSION_GT(5,5,0) /* This will only be executed for 5.6.0 - 5.8.0 inclusive */ if ( len >= 3 && !instr(version,".") && !instr(version,"_")) { /* may be a v-string */ diff --git a/vxs.inc b/vxs.inc index cea9857887d..b20362a9d6e 100644 --- a/vxs.inc +++ b/vxs.inc @@ -89,6 +89,11 @@ typedef char HVNAME; # define HEKf "s" #endif +/* we should have some meta in Devel-PPPort to check IS_PERL_VERSION_X_Y */ +#ifndef IS_PERL_VERSION_5_5 +# define IS_PERL_VERSION_5_5 PERL_VERSION_GE(5,5,0) && PERL_VERSION_LT(5,6,0) +#endif + VXS(universal_version) { dXSARGS; @@ -133,7 +138,7 @@ VXS(universal_version) if (undef) { if (pkg) { const HVNAME* const name = HvNAME_HEK(pkg); -#if PERL_VERSION == 5 +#if IS_PERL_VERSION_5_5 Perl_croak(aTHX_ "%s version %s required--this is only version ", name, SvPVx_nolen_const(req)); #else @@ -144,7 +149,7 @@ VXS(universal_version) #endif } else { -#if PERL_VERSION >= 8 +#if PERL_VERSION_GE(5,8,0) Perl_croak(aTHX_ "%" SVf " defines neither package nor VERSION--" "version check failed", @@ -206,7 +211,7 @@ VXS(version_new) SV * svarg2; vs = sv_newmortal(); svarg2 = ST(2); -#if PERL_VERSION == 5 +#if IS_PERL_VERSION_5_5 sv_setpvf(vs,"v%s",SvPV_nolen_const(svarg2)); #else Perl_sv_setpvf(aTHX_ vs,"v%s",SvPV_nolen_const(svarg2)); @@ -249,7 +254,7 @@ VXS(version_new) rv = NEW_VERSION(vs); if ( len != sizeof(VXS_CLASS)-1 || strcmp(classname,VXS_CLASS) != 0 ) /* inherited new() */ -#if PERL_VERSION == 5 +#if IS_PERL_VERSION_5_5 sv_bless(rv, gv_stashpv((char *)classname, GV_ADD)); #else sv_bless(rv, gv_stashpvn(classname, len, GV_ADD | flags)); @@ -445,7 +450,7 @@ VXS(version_qv) } if ( items == 2 && (len != 7 || strcmp(classname,"version")) ) { /* inherited new() */ -#if PERL_VERSION == 5 +#if IS_PERL_VERSION_5_5 sv_bless(rv, gv_stashpv((char *)classname, GV_ADD)); #else sv_bless(rv, gv_stashpvn(classname, len, GV_ADD | flags)); diff --git a/win32/GNUmakefile b/win32/GNUmakefile index a2578dd8e9c..6a64bbefa08 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -7,7 +7,7 @@ # Windows SDK 64-bit compiler and tools # # This is set up to build a perl.exe that runs off a shared library -# (perl533.dll). Also makes individual DLLs for the XS extensions. +# (perl70.dll). Also makes individual DLLs for the XS extensions. # # The easiest way to customize the build process is to use parameters like this: # @@ -64,7 +64,7 @@ INST_TOP := $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -#INST_VER := \5.33.1 +#INST_VER := \7.1.0 # # Comment this out if you DON'T want your perl installation to have @@ -230,7 +230,7 @@ DEFAULT_INC_EXCLUDES_DOT := define # set this to additionally provide a statically linked perl-static.exe. # Note that dynamic loading will not work with this perl, so you must # include required modules statically using the STATIC_EXT or ALL_STATIC -# variables below. A static library perl533s.lib will also be created. +# variables below. A static library perl70s.lib will also be created. # Ordinary perl.exe is not affected by this option. # #BUILD_STATIC := define @@ -1004,9 +1004,9 @@ ifeq ($(CCTYPE),GCC) CFGSH_TMPL = config.gc CFGH_TMPL = config_H.gc -PERLIMPLIB = $(COREDIR)\libperl533$(a) -PERLIMPLIBBASE = libperl533$(a) -PERLSTATICLIB = ..\libperl533s$(a) +PERLIMPLIB = $(COREDIR)\libperl70$(a) +PERLIMPLIBBASE = libperl70$(a) +PERLSTATICLIB = ..\libperl70s$(a) INT64 = long long else @@ -1019,12 +1019,12 @@ endif # makedef.pl must be updated if this changes, and this should normally # only change when there is an incompatible revision of the public API. -PERLIMPLIB ?= $(COREDIR)\perl533$(a) -PERLIMPLIBBASE ?= perl533$(a) -PERLEXPLIB ?= $(COREDIR)\perl533.exp -PERLSTATICLIB ?= ..\perl533s$(a) -PERLDLL = ..\perl533.dll -PERLDLLBASE = perl533.dll +PERLIMPLIB ?= $(COREDIR)\perl70$(a) +PERLIMPLIBBASE ?= perl70$(a) +PERLEXPLIB ?= $(COREDIR)\perl70.exp +PERLSTATICLIB ?= ..\perl70s$(a) +PERLDLL = ..\perl70.dll +PERLDLLBASE = perl70.dll # don't let "gmake -n all" try to run "miniperl.exe make_ext.pl" PLMAKE = gmake @@ -1743,7 +1743,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5331delta.pod + copy ..\pod\perldelta.pod ..\pod\perl710delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1841,7 +1841,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5331delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl710delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/Makefile b/win32/Makefile index 7598a90bddf..fc404d239c6 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -5,7 +5,7 @@ # Windows SDK 64-bit compiler and tools # # This is set up to build a perl.exe that runs off a shared library -# (perl533.dll). Also makes individual DLLs for the XS extensions. +# (perl70.dll). Also makes individual DLLs for the XS extensions. # ## @@ -38,7 +38,7 @@ INST_TOP = $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -#INST_VER = \5.33.1 +#INST_VER = \7.1.0 # # Comment this out if you DON'T want your perl installation to have @@ -191,7 +191,7 @@ DEFAULT_INC_EXCLUDES_DOT = define # set this to additionally provide a statically linked perl-static.exe. # Note that dynamic loading will not work with this perl, so you must # include required modules statically using the STATIC_EXT or ALL_STATIC -# variables below. A static library perl533s.lib will also be created. +# variables below. A static library perl70s.lib will also be created. # Ordinary perl.exe is not affected by this option. # #BUILD_STATIC = define @@ -665,9 +665,9 @@ $(o).dll: # makedef.pl must be updated if this changes, and this should normally # only change when there is an incompatible revision of the public API. -PERLIMPLIB = ..\perl533.lib -PERLSTATICLIB = ..\perl533s.lib -PERLDLL = ..\perl533.dll +PERLIMPLIB = ..\perl70.lib +PERLSTATICLIB = ..\perl70s.lib +PERLDLL = ..\perl70.dll MINIPERL = ..\miniperl.exe MINIDIR = .\mini @@ -1263,7 +1263,7 @@ utils: $(PERLEXE) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5331delta.pod + copy ..\pod\perldelta.pod ..\pod\perl710delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1362,7 +1362,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5331delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl710delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/config.gc b/win32/config.gc index 793b455d0c0..9a088b695a4 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -946,10 +946,10 @@ orderlib='false' osname='MSWin32' osvers='4.0' otherlibdirs='' -package='perl5' +package='perl7' pager='more /e' passcat='' -patchlevel='~PERL_VERSION~' +patchlevel='~PERL_VERSION_MINOR~' path_sep=';' perl5='' perl='perl' @@ -1082,7 +1082,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='~PERL_SUBVERSION~' +subversion='~PERL_VERSION_PATCH~' sysman='/usr/man/man1' tail='' tar='' @@ -1182,9 +1182,9 @@ yacc='yacc' yaccflags='' zcat='' zip='zip' -PERL_REVISION='~PERL_REVISION~' -PERL_SUBVERSION='~PERL_SUBVERSION~' -PERL_VERSION='~PERL_VERSION~' +PERL_VERSION_MAJOR='~PERL_VERSION_MAJOR~' +PERL_VERSION_PATCH='~PERL_VERSION_PATCH~' +PERL_VERSION_MINOR='~PERL_VERSION_MINOR~' PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' diff --git a/win32/config.vc b/win32/config.vc index a2c3f5a53d9..87f01736747 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -945,10 +945,10 @@ orderlib='false' osname='MSWin32' osvers='4.0' otherlibdirs='' -package='perl5' +package='perl7' pager='more /e' passcat='' -patchlevel='~PERL_VERSION~' +patchlevel='~PERL_VERSION_MINOR~' path_sep=';' perl5='' perl='perl' @@ -1081,7 +1081,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='~PERL_SUBVERSION~' +subversion='~PERL_VERSION_PATCH~' sysman='/usr/man/man1' tail='' tar='' @@ -1181,9 +1181,9 @@ yacc='yacc' yaccflags='' zcat='' zip='zip' -PERL_REVISION='~PERL_REVISION~' -PERL_SUBVERSION='~PERL_SUBVERSION~' -PERL_VERSION='~PERL_VERSION~' +PERL_VERSION_MAJOR='~PERL_VERSION_MAJOR~' +PERL_VERSION_PATCH='~PERL_VERSION_PATCH~' +PERL_VERSION_MINOR='~PERL_VERSION_MINOR~' PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' diff --git a/win32/config_sh.PL b/win32/config_sh.PL index bffd4ecf9fe..ed56e42d51c 100644 --- a/win32/config_sh.PL +++ b/win32/config_sh.PL @@ -79,8 +79,8 @@ if (-e $patch_file) { close $fh; } -$opt{version} = "$opt{PERL_REVISION}.$opt{PERL_VERSION}.$opt{PERL_SUBVERSION}"; -$opt{version_patchlevel_string} = "version $opt{PERL_VERSION} subversion $opt{PERL_SUBVERSION}"; +$opt{version} = "$opt{PERL_VERSION_MAJOR}.$opt{PERL_VERSION_MINOR}.$opt{PERL_VERSION_PATCH}"; +$opt{version_patchlevel_string} = "version $opt{PERL_VERSION_MINOR} subversion $opt{PERL_VERSION_PATCH}"; $opt{version_patchlevel_string} .= " patch $opt{PERL_PATCHLEVEL}" if exists $opt{PERL_PATCHLEVEL}; my $ver = `ver 2>nul`; diff --git a/win32/makefile.mk b/win32/makefile.mk index 67c90347f0d..7d89427f10c 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -7,7 +7,7 @@ # Windows SDK 64-bit compiler and tools # # This is set up to build a perl.exe that runs off a shared library -# (perl533.dll). Also makes individual DLLs for the XS extensions. +# (perl70.dll). Also makes individual DLLs for the XS extensions. # ## @@ -45,7 +45,7 @@ INST_TOP *= $(INST_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -#INST_VER *= \5.33.1 +#INST_VER *= \7.1.0 # # Comment this out if you DON'T want your perl installation to have @@ -220,7 +220,7 @@ DEFAULT_INC_EXCLUDES_DOT *= define # set this to additionally provide a statically linked perl-static.exe. # Note that dynamic loading will not work with this perl, so you must # include required modules statically using the STATIC_EXT or ALL_STATIC -# variables below. A static library perl533s.lib will also be created. +# variables below. A static library perl70s.lib will also be created. # Ordinary perl.exe is not affected by this option. # #BUILD_STATIC *= define @@ -950,8 +950,8 @@ UTILS = \ CFGSH_TMPL = config.gc CFGH_TMPL = config_H.gc -PERLIMPLIB = $(COREDIR)\libperl533$(a) -PERLSTATICLIB = ..\libperl533s$(a) +PERLIMPLIB = $(COREDIR)\libperl70$(a) +PERLSTATICLIB = ..\libperl70s$(a) INT64 = long long .ELSE @@ -964,11 +964,11 @@ INT64 = __int64 # makedef.pl must be updated if this changes, and this should normally # only change when there is an incompatible revision of the public API. -PERLIMPLIB *= $(COREDIR)\perl533$(a) -PERLEXPLIB *= $(COREDIR)\perl533.exp -PERLSTATICLIB *= ..\perl533s$(a) -PERLDLL = ..\perl533.dll -PERLDLLBASE = perl533.dll +PERLIMPLIB *= $(COREDIR)\perl70$(a) +PERLEXPLIB *= $(COREDIR)\perl70.exp +PERLSTATICLIB *= ..\perl70s$(a) +PERLDLL = ..\perl70.dll +PERLDLLBASE = perl70.dll #EUMM on Win32 isn't ready for parallel make, so only allow this file to be parallel #$(MAKE) will contain the -P that this makefile was called with, which is bad for @@ -1662,7 +1662,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5331delta.pod + copy ..\pod\perldelta.pod ..\pod\perl710delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1760,7 +1760,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5331delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl710delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/pod.mak b/win32/pod.mak index ece3805378c..0fc9fbf627f 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -64,7 +64,6 @@ POD = perl.pod \ perl5303delta.pod \ perl5320delta.pod \ perl5330delta.pod \ - perl5331delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -77,6 +76,7 @@ POD = perl.pod \ perl588delta.pod \ perl589delta.pod \ perl58delta.pod \ + perl710delta.pod \ perlapi.pod \ perlapio.pod \ perlartistic.pod \ @@ -224,7 +224,6 @@ MAN = perl.man \ perl5303delta.man \ perl5320delta.man \ perl5330delta.man \ - perl5331delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -237,6 +236,7 @@ MAN = perl.man \ perl588delta.man \ perl589delta.man \ perl58delta.man \ + perl710delta.man \ perlapi.man \ perlapio.man \ perlartistic.man \ @@ -384,7 +384,6 @@ HTML = perl.html \ perl5303delta.html \ perl5320delta.html \ perl5330delta.html \ - perl5331delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -397,6 +396,7 @@ HTML = perl.html \ perl588delta.html \ perl589delta.html \ perl58delta.html \ + perl710delta.html \ perlapi.html \ perlapio.html \ perlartistic.html \ @@ -544,7 +544,6 @@ TEX = perl.tex \ perl5303delta.tex \ perl5320delta.tex \ perl5330delta.tex \ - perl5331delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ @@ -557,6 +556,7 @@ TEX = perl.tex \ perl588delta.tex \ perl589delta.tex \ perl58delta.tex \ + perl710delta.tex \ perlapi.tex \ perlapio.tex \ perlartistic.tex \ diff --git a/win32/win32.c b/win32/win32.c index 9719f14fa38..ad2304905ce 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -331,7 +331,7 @@ get_emd_part(SV **prev_pathp, STRLEN *const len, char *trailing_path, ...) va_start(ap, trailing_path); strip = va_arg(ap, char *); - sprintf(base, "%d.%d", (int)PERL_REVISION, (int)PERL_VERSION); + sprintf(base, "%d.%d", (int)PERL_VERSION_MAJOR, (int)PERL_VERSION_MINOR); baselen = strlen(base); if (!*w32_module_name) {