From dba37859fc0517f9ba1558c09c0c80c6319eb98a Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 28 Jun 2017 10:46:58 +0900 Subject: [PATCH] Imported Upstream version 5.24.1 Change-Id: Id2f09c5fd8987aeea9b5f204e9e293c05103b6d6 Signed-off-by: DongHun Kwak --- AUTHORS | 1 + Cross/config.sh-arm-linux | 34 +- Cross/config.sh-arm-linux-n770 | 34 +- INSTALL | 28 +- MANIFEST | 2 + META.json | 4 +- META.yml | 2 +- Makefile.SH | 8 +- NetWare/Makefile | 4 +- NetWare/config_H.wc | 10 +- Porting/Maintainers.pl | 155 +- Porting/config.sh | 36 +- Porting/config_H | 18 +- Porting/epigraphs.pod | 529 +++++ Porting/perldelta_template.pod | 2 +- Porting/release_managers_guide.pod | 21 +- Porting/todo.pod | 4 +- README | 2 +- README.haiku | 4 +- README.macosx | 8 +- README.os2 | 2 +- README.vms | 4 +- cpan/Archive-Tar/bin/ptar | 1 + cpan/Archive-Tar/bin/ptardiff | 1 + cpan/Archive-Tar/bin/ptargrep | 1 + cpan/Archive-Tar/lib/Archive/Tar.pm | 2 +- cpan/Archive-Tar/lib/Archive/Tar/Constant.pm | 2 +- cpan/Archive-Tar/lib/Archive/Tar/File.pm | 2 +- cpan/CPAN/lib/App/Cpan.pm | 23 +- cpan/CPAN/lib/CPAN.pm | 6 +- cpan/CPAN/scripts/cpan | 1 + cpan/Digest-SHA/lib/Digest/SHA.pm | 2 +- cpan/Digest-SHA/shasum | 1 + cpan/Digest/Digest.pm | 8 +- cpan/Encode/Encode.pm | 4 +- cpan/Encode/bin/enc2xs | 1 + cpan/Encode/bin/encguess | 1 + cpan/Encode/bin/piconv | 1 + cpan/Encode/bin/ucmlint | 1 + cpan/Encode/bin/unidump | 1 + cpan/ExtUtils-MakeMaker/bin/instmodsh | 1 + cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm | 7 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm | 2 +- .../ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm | 2 +- .../lib/ExtUtils/MakeMaker/Config.pm | 2 +- .../ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm | 2 +- cpan/File-Fetch/lib/File/Fetch.pm | 12 +- cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 6 +- cpan/IO-Compress/bin/zipdetails | 1 + cpan/IO-Compress/lib/Compress/Zlib.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm | 2 +- .../IO-Compress/lib/IO/Compress/Adapter/Deflate.pm | 2 +- .../lib/IO/Compress/Adapter/Identity.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Base.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Base/Common.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Bzip2.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Deflate.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Gzip.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Zip.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm | 2 +- cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm | 2 +- .../lib/IO/Uncompress/Adapter/Bunzip2.pm | 2 +- .../lib/IO/Uncompress/Adapter/Identity.pm | 2 +- .../lib/IO/Uncompress/Adapter/Inflate.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm | 2 +- .../IO-Compress/lib/IO/Uncompress/AnyUncompress.pm | 4 +- cpan/IO-Compress/lib/IO/Uncompress/Base.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm | 2 +- cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm | 2 +- cpan/IPC-Cmd/lib/IPC/Cmd.pm | 6 +- cpan/JSON-PP/bin/json_pp | 1 + cpan/JSON-PP/lib/JSON/PP.pm | 2 +- .../lib/Locale/Maketext/Simple.pm | 9 +- cpan/Memoize/Memoize.pm | 8 +- cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm | 6 +- cpan/Parse-CPAN-Meta/t/02_api.t | 22 +- cpan/Pod-Perldoc/lib/Pod/Perldoc.pm | 7 +- cpan/Sys-Syslog/Syslog.pm | 4 +- cpan/Test-Harness/bin/prove | 1 + cpan/Test-Harness/lib/App/Prove.pm | 2 +- cpan/Test-Harness/lib/App/Prove/State.pm | 2 +- cpan/Test-Harness/lib/App/Prove/State/Result.pm | 2 +- .../lib/App/Prove/State/Result/Test.pm | 2 +- cpan/Test-Harness/lib/TAP/Base.pm | 2 +- cpan/Test-Harness/lib/TAP/Formatter/Base.pm | 2 +- cpan/Test-Harness/lib/TAP/Formatter/Color.pm | 2 +- cpan/Test-Harness/lib/TAP/Formatter/Console.pm | 2 +- .../lib/TAP/Formatter/Console/ParallelSession.pm | 2 +- .../lib/TAP/Formatter/Console/Session.pm | 2 +- cpan/Test-Harness/lib/TAP/Formatter/File.pm | 2 +- .../Test-Harness/lib/TAP/Formatter/File/Session.pm | 2 +- cpan/Test-Harness/lib/TAP/Formatter/Session.pm | 2 +- cpan/Test-Harness/lib/TAP/Harness.pm | 2 +- cpan/Test-Harness/lib/TAP/Harness/Env.pm | 2 +- cpan/Test-Harness/lib/TAP/Object.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Grammar.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Iterator.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm | 2 +- .../lib/TAP/Parser/Iterator/Process.pm | 2 +- .../Test-Harness/lib/TAP/Parser/Iterator/Stream.pm | 2 +- .../Test-Harness/lib/TAP/Parser/IteratorFactory.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm | 2 +- .../lib/TAP/Parser/Scheduler/Spinner.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/Source.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm | 2 +- .../lib/TAP/Parser/SourceHandler/Executable.pm | 2 +- .../lib/TAP/Parser/SourceHandler/File.pm | 2 +- .../lib/TAP/Parser/SourceHandler/Handle.pm | 2 +- .../lib/TAP/Parser/SourceHandler/Perl.pm | 2 +- .../lib/TAP/Parser/SourceHandler/RawTAP.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm | 2 +- cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm | 2 +- cpan/Test-Harness/lib/Test/Harness.pm | 2 +- cpan/bignum/lib/Math/BigFloat/Trace.pm | 2 +- cpan/bignum/lib/Math/BigInt/Trace.pm | 2 +- cpan/bignum/lib/bigint.pm | 4 +- cpan/bignum/lib/bignum.pm | 4 +- cpan/bignum/lib/bigrat.pm | 4 +- cpan/libnet/lib/Net/Cmd.pm | 2 +- cpan/libnet/lib/Net/Config.pm | 9 +- cpan/libnet/lib/Net/Domain.pm | 2 +- cpan/libnet/lib/Net/FTP.pm | 2 +- cpan/libnet/lib/Net/FTP/A.pm | 2 +- cpan/libnet/lib/Net/FTP/E.pm | 2 +- cpan/libnet/lib/Net/FTP/I.pm | 2 +- cpan/libnet/lib/Net/FTP/L.pm | 2 +- cpan/libnet/lib/Net/FTP/dataconn.pm | 2 +- cpan/libnet/lib/Net/NNTP.pm | 2 +- cpan/libnet/lib/Net/Netrc.pm | 2 +- cpan/libnet/lib/Net/POP3.pm | 2 +- cpan/libnet/lib/Net/SMTP.pm | 2 +- cpan/libnet/lib/Net/Time.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp | 1 + dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm | 4 +- dist/IO/IO.pm | 4 +- dist/Locale-Maketext/lib/Locale/Maketext.pm | 4 +- dist/Module-CoreList/Changes | 32 +- dist/Module-CoreList/corelist | 1 + dist/Module-CoreList/lib/Module/CoreList.pm | 1390 +++++++++++- .../lib/Module/CoreList/TieHashDelta.pm | 2 +- dist/Module-CoreList/lib/Module/CoreList/Utils.pm | 72 +- dist/Module-CoreList/t/is_core.t | 9 +- dist/Net-Ping/lib/Net/Ping.pm | 8 +- dist/PathTools/Cwd.pm | 7 +- dist/PathTools/lib/File/Spec.pm | 2 +- dist/PathTools/lib/File/Spec/Cygwin.pm | 8 +- dist/PathTools/lib/File/Spec/Epoc.pm | 2 +- dist/PathTools/lib/File/Spec/Functions.pm | 2 +- dist/PathTools/lib/File/Spec/Mac.pm | 2 +- dist/PathTools/lib/File/Spec/OS2.pm | 2 +- dist/PathTools/lib/File/Spec/Unix.pm | 2 +- dist/PathTools/lib/File/Spec/VMS.pm | 7 +- dist/PathTools/lib/File/Spec/Win32.pm | 8 +- dist/Storable/Storable.pm | 10 +- dist/Test/lib/Test.pm | 9 +- dist/XSLoader/XSLoader_pm.PL | 41 +- dist/XSLoader/t/XSLoader.t | 27 +- ext/Pod-Html/bin/pod2html | 1 + ext/Pod-Html/lib/Pod/Html.pm | 2 +- hints/catamount.sh | 4 +- lib/B/Op_private.pm | 2 +- lib/perl5db.pl | 12 +- patchlevel.h | 2 +- perl.c | 7 +- perl.h | 8 +- perlio.c | 110 +- plan9/config.plan9 | 10 +- plan9/config_sh.sample | 32 +- pod/.gitignore | 2 +- pod/perl.pod | 1 + pod/perl5240delta.pod | 2254 ++++++++++++++++++++ pod/perlapio.pod | 18 +- pod/perldelta.pod | 2186 ++----------------- pod/perlhist.pod | 24 +- pod/perlrun.pod | 86 +- t/porting/customized.dat | 180 +- t/porting/known_pod_issues.dat | 1 + t/run/switchDx.t | 50 + toke.c | 2 - utils/c2ph.PL | 1 + utils/h2ph.PL | 2 + utils/h2xs.PL | 2 + utils/libnetcfg.PL | 1 + utils/perlbug.PL | 1 + utils/perldoc.PL | 5 +- utils/perlivp.PL | 2 + utils/splain.PL | 6 + vms/descrip_mms.template | 2 +- win32/GNUmakefile | 6 +- win32/Makefile | 6 +- win32/makefile.mk | 6 +- win32/pod.mak | 4 + 234 files changed, 5447 insertions(+), 2564 deletions(-) create mode 100644 pod/perl5240delta.pod create mode 100644 t/run/switchDx.t diff --git a/AUTHORS b/AUTHORS index 3cc2ef1..e77fc36 100644 --- a/AUTHORS +++ b/AUTHORS @@ -233,6 +233,7 @@ Chris Heath Chris Lightfoot Chris Nandor Chris Pepper +Chris Travers Chris Tubutis Chris Wick Chris Williams diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux index 4857806..a79fdaf 100644 --- a/Cross/config.sh-arm-linux +++ b/Cross/config.sh-arm-linux @@ -36,8 +36,8 @@ api_subversion='0' api_version='24' api_versionstring='5.24.0' ar='ar' -archlib='/usr/lib/perl5/5.24.0/armv4l-linux' -archlibexp='/usr/lib/perl5/5.24.0/armv4l-linux' +archlib='/usr/lib/perl5/5.24.1/armv4l-linux' +archlibexp='/usr/lib/perl5/5.24.1/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -56,7 +56,7 @@ castflags='0' cat='cat' cc='cc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.0/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.1/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' @@ -808,7 +808,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.24.0/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.24.1/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -816,13 +816,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.24.0' +installprivlib='./install_me_here/usr/lib/perl5/5.24.1' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.0/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.0' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.1' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -956,8 +956,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.24.0' -privlibexp='/usr/lib/perl5/5.24.0' +privlib='/usr/lib/perl5/5.24.1' +privlibexp='/usr/lib/perl5/5.24.1' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1022,17 +1022,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.24.0/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.24.0' +sitelib='/usr/lib/perl5/site_perl/5.24.1' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.24.0' +sitelibexp='/usr/lib/perl5/site_perl/5.24.1' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1071,7 +1071,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='0' +subversion='1' sysman='/usr/share/man/man1' tail='' tar='' @@ -1163,8 +1163,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.24.0' -version_patchlevel_string='version 24 subversion 0' +version='5.24.1' +version_patchlevel_string='version 24 subversion 1' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1178,7 +1178,7 @@ config_args='' config_argc=0 PERL_REVISION=5 PERL_VERSION=24 -PERL_SUBVERSION=0 +PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=24 PERL_API_SUBVERSION=0 diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770 index a1f4603..e4281c5 100644 --- a/Cross/config.sh-arm-linux-n770 +++ b/Cross/config.sh-arm-linux-n770 @@ -36,8 +36,8 @@ api_subversion='0' api_version='24' api_versionstring='5.24.0' ar='ar' -archlib='/usr/lib/perl5/5.24.0/armv4l-linux' -archlibexp='/usr/lib/perl5/5.24.0/armv4l-linux' +archlib='/usr/lib/perl5/5.24.1/armv4l-linux' +archlibexp='/usr/lib/perl5/5.24.1/armv4l-linux' archname64='' archname='armv4l-linux' archobjs='' @@ -55,7 +55,7 @@ castflags='0' cat='cat' cc='arm-none-linux-gnueabi-gcc' cccdlflags='-fpic' -ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.0/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.1/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' @@ -699,7 +699,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.24.0/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.24.1/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -707,13 +707,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.24.0' +installprivlib='./install_me_here/usr/lib/perl5/5.24.1' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.0/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.0' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.1' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -841,8 +841,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.24.0' -privlibexp='/usr/lib/perl5/5.24.0' +privlib='/usr/lib/perl5/5.24.1' +privlibexp='/usr/lib/perl5/5.24.1' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -903,17 +903,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.24.0/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.24.1/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.24.0' +sitelib='/usr/lib/perl5/site_perl/5.24.1' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.24.0' +sitelibexp='/usr/lib/perl5/site_perl/5.24.1' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -950,7 +950,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='0' +subversion='1' sysman='/usr/share/man/man1' tail='' tar='' @@ -1035,8 +1035,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.24.0' -version_patchlevel_string='version 24 subversion 0' +version='5.24.1' +version_patchlevel_string='version 24 subversion 1' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1050,7 +1050,7 @@ config_args='' config_argc=0 PERL_REVISION=5 PERL_VERSION=24 -PERL_SUBVERSION=0 +PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=24 PERL_API_SUBVERSION=0 diff --git a/INSTALL b/INSTALL index 55faf67..07adda6 100644 --- a/INSTALL +++ b/INSTALL @@ -581,7 +581,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.24.0. +By default, Configure will use the following directories for 5.24.1. $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 @@ -2437,7 +2437,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html =head1 Coexistence with earlier versions of perl 5 -Perl 5.24.0 is not binary compatible with earlier versions of Perl. +Perl 5.24.1 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 version of Perl @@ -2512,9 +2512,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.24.0 + sh Configure -Dprefix=/opt/perl5.24.1 -and adding /opt/perl5.24.0/bin to the shell PATH variable. Such users +and adding /opt/perl5.24.1/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. @@ -2529,11 +2529,11 @@ yet. =head2 Upgrading from v5.22 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.24.0. If you find you do need to rebuild an extension with -5.24.0, you may safely do so without disturbing the older +used with 5.24.1. If you find you do need to rebuild an extension with +5.24.1, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl 5"> above.) @@ -2566,15 +2566,15 @@ Firstly, the bare minimum to run this script print("$f\n"); } -in Linux with perl-5.24.0 is as follows (under $Config{prefix}): +in Linux with perl-5.24.1 is as follows (under $Config{prefix}): ./bin/perl - ./lib/perl5/5.24.0/strict.pm - ./lib/perl5/5.24.0/warnings.pm - ./lib/perl5/5.24.0/i686-linux/File/Glob.pm - ./lib/perl5/5.24.0/feature.pm - ./lib/perl5/5.24.0/XSLoader.pm - ./lib/perl5/5.24.0/i686-linux/auto/File/Glob/Glob.so + ./lib/perl5/5.24.1/strict.pm + ./lib/perl5/5.24.1/warnings.pm + ./lib/perl5/5.24.1/i686-linux/File/Glob.pm + ./lib/perl5/5.24.1/feature.pm + ./lib/perl5/5.24.1/XSLoader.pm + ./lib/perl5/5.24.1/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/MANIFEST b/MANIFEST index c847f60..e4331f1 100644 --- a/MANIFEST +++ b/MANIFEST @@ -4645,6 +4645,7 @@ pod/perl5203delta.pod Perl changes in version 5.20.3 pod/perl5220delta.pod Perl changes in version 5.22.0 pod/perl5221delta.pod Perl changes in version 5.22.1 pod/perl5222delta.pod Perl changes in version 5.22.2 +pod/perl5240delta.pod Perl changes in version 5.24.0 pod/perl561delta.pod Perl changes in version 5.6.1 pod/perl56delta.pod Perl changes in version 5.6 pod/perl581delta.pod Perl changes in version 5.8.1 @@ -5533,6 +5534,7 @@ t/run/switcha.t Test the -a switch t/run/switchC.t Test the -C switch t/run/switchd-78586.t See whether bug 78586 is fixed t/run/switchd.t Test the -d switch +t/run/switchDx.t Test the -D switch t/run/switches.t Tests for the other switches (-0, -l, -c, -s, -M, -m, -V, -v, -h, -z, -i) t/run/switchF1.t Pathological tests for the -F switch t/run/switchF2.t Pathological tests for the -F switch diff --git a/META.json b/META.json index 5b383ad..86fa43e 100644 --- a/META.json +++ b/META.json @@ -124,6 +124,6 @@ "url" : "http://perl5.git.perl.org/" } }, - "version" : "5.024000", - "x_serialization_backend" : "JSON::PP version 2.27300" + "version" : "5.024001", + "x_serialization_backend" : "JSON::PP version 2.27300_01" } diff --git a/META.yml b/META.yml index 13a2bb3..32850d3 100644 --- a/META.yml +++ b/META.yml @@ -111,5 +111,5 @@ resources: homepage: http://www.perl.org/ license: http://dev.perl.org/licenses/ repository: http://perl5.git.perl.org/ -version: '5.024000' +version: '5.024001' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/Makefile.SH b/Makefile.SH index 916b332..8e943c4 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -522,7 +522,7 @@ miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O) perllib_objs = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O) perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O) -perltoc_pod_prereqs = extra.pods pod/perl5240delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5241delta.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 @@ -1085,9 +1085,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/perl5240delta.pod: pod/perldelta.pod - $(RMS) pod/perl5240delta.pod - $(LNS) perldelta.pod pod/perl5240delta.pod +pod/perl5241delta.pod: pod/perldelta.pod + $(RMS) pod/perl5241delta.pod + $(LNS) perldelta.pod pod/perl5241delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/NetWare/Makefile b/NetWare/Makefile index 327cb8a..33691bb 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.24.0 for NetWare" +MODULE_DESC = "Perl 5.24.1 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.24.0 +INST_VER = \5.24.1 # # Comment this out if you DON'T want your perl installation to have diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc index 7414310..30f5ff5 100644 --- a/NetWare/config_H.wc +++ b/NetWare/config_H.wc @@ -1042,7 +1042,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.24.0\\lib\\NetWare-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.24.1\\lib\\NetWare-x86-multi-thread" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1073,8 +1073,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.24.0\\bin\\NetWare-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.24.0\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.24.1\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.24.1\\bin\\NetWare-x86-multi-thread" /**/ /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, @@ -3047,7 +3047,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.24.0\\lib\\NetWare-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.24.1\\lib\\NetWare-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -3070,7 +3070,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.24.0\\lib" /**/ +#define SITELIB "c:\\perl\\site\\5.24.1\\lib" /**/ /*#define SITELIB_EXP "" /**/ #define SITELIB_STEM "" /**/ diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index d4566ad..b924e10 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -126,6 +126,14 @@ use File::Glob qw(:case); 'EXCLUDED' => [ qw(t/07_ptardiff.t), ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( + bin/ptar bin/ptardiff bin/ptargrep + lib/Archive/Tar.pm lib/Archive/Tar/Constant.pm + lib/Archive/Tar/File.pm + ) + ], }, 'Attribute::Handlers' => { @@ -195,6 +203,14 @@ use File::Glob qw(:case); t/03podcov.t ), ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( + lib/Math/BigFloat/Trace.pm + lib/Math/BigInt/Trace.pm lib/bigint.pm + lib/bignum.pm lib/bigrat.pm + ) + ], }, 'Carp' => { @@ -284,7 +300,11 @@ use File::Glob qw(:case); ), ], # See commit 3198fda65dbcd975c56916e4b98f515fab7f02e5 - 'CUSTOMIZED' => [ qw[ lib/CPAN.pm ] ], + 'CUSTOMIZED' => [ + qw[ lib/CPAN.pm ], + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/App/Cpan.pm scripts/cpan ) + ], }, # Note: When updating CPAN-Meta the META.* files will need to be regenerated @@ -361,6 +381,10 @@ use File::Glob qw(:case); 'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz', 'FILES' => q[cpan/Digest], 'EXCLUDED' => ['digest-bench'], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( Digest.pm ) + ], }, 'Digest::MD5' => { @@ -378,6 +402,10 @@ use File::Glob qw(:case); examples/dups ), ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/Digest/SHA.pm shasum ) + ], }, 'Dumpvalue' => { @@ -392,6 +420,11 @@ use File::Glob qw(:case); CUSTOMIZED => [ qw( encoding.pm ), + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( + Encode.pm bin/enc2xs bin/encguess bin/piconv + bin/ucmlint bin/unidump + ) ], }, @@ -517,6 +550,8 @@ use File::Glob qw(:case); t/cd.t t/echo.t ), + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( bin/instmodsh lib/ExtUtils/Command.pm ), ], }, @@ -537,6 +572,10 @@ use File::Glob qw(:case); 'File::Fetch' => { 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.48.tar.gz', 'FILES' => q[cpan/File-Fetch], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/File/Fetch.pm ) + ], }, 'File::Path' => { @@ -630,6 +669,10 @@ use File::Glob qw(:case); qr/^eg/, qr/^xt/ ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/HTTP/Tiny.pm ) + ], }, 'I18N::Collate' => { @@ -663,6 +706,37 @@ use File::Glob qw(:case); 't/010examples-zlib.t', 't/cz-05examples.t', ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( + bin/zipdetails lib/Compress/Zlib.pm + lib/IO/Compress/Adapter/Bzip2.pm + lib/IO/Compress/Adapter/Deflate.pm + lib/IO/Compress/Adapter/Identity.pm + lib/IO/Compress/Base.pm + lib/IO/Compress/Base/Common.pm + lib/IO/Compress/Bzip2.pm + lib/IO/Compress/Deflate.pm + lib/IO/Compress/Gzip.pm + lib/IO/Compress/Gzip/Constants.pm + lib/IO/Compress/RawDeflate.pm + lib/IO/Compress/Zip.pm + lib/IO/Compress/Zip/Constants.pm + lib/IO/Compress/Zlib/Constants.pm + lib/IO/Compress/Zlib/Extra.pm + lib/IO/Uncompress/Adapter/Bunzip2.pm + lib/IO/Uncompress/Adapter/Identity.pm + lib/IO/Uncompress/Adapter/Inflate.pm + lib/IO/Uncompress/AnyInflate.pm + lib/IO/Uncompress/AnyUncompress.pm + lib/IO/Uncompress/Base.pm + lib/IO/Uncompress/Bunzip2.pm + lib/IO/Uncompress/Gunzip.pm + lib/IO/Uncompress/Inflate.pm + lib/IO/Uncompress/RawInflate.pm + lib/IO/Uncompress/Unzip.pm + ) + ], }, 'IO::Socket::IP' => { @@ -681,6 +755,10 @@ use File::Glob qw(:case); 'IPC::Cmd' => { 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.92.tar.gz', 'FILES' => q[cpan/IPC-Cmd], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/IPC/Cmd.pm ) + ], }, 'IPC::SysV' => { @@ -704,6 +782,10 @@ use File::Glob qw(:case); 'JSON::PP' => { 'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27300.tar.gz', 'FILES' => q[cpan/JSON-PP], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( bin/json_pp lib/JSON/PP.pm ) + ], }, 'lib' => { @@ -729,6 +811,16 @@ use File::Glob qw(:case); qr(^demos/), qr(^t/external/), ], + 'CUSTOMIZED' => [ + qw( + lib/Net/Cmd.pm lib/Net/Config.pm + lib/Net/Domain.pm lib/Net/FTP.pm lib/Net/FTP/A.pm + lib/Net/FTP/E.pm lib/Net/FTP/I.pm + lib/Net/FTP/L.pm lib/Net/FTP/dataconn.pm + lib/Net/NNTP.pm lib/Net/Netrc.pm lib/Net/POP3.pm + lib/Net/SMTP.pm lib/Net/Time.pm + ) + ], }, 'Locale-Codes' => { @@ -761,6 +853,10 @@ use File::Glob qw(:case); 'Locale::Maketext::Simple' => { 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz', 'FILES' => q[cpan/Locale-Maketext-Simple], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( lib/Locale/Maketext/Simple.pm ) + ], }, 'Math::BigInt' => { @@ -833,6 +929,10 @@ use File::Glob qw(:case); 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz', 'FILES' => q[cpan/Memoize], 'EXCLUDED' => ['article.html'], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( Memoize.pm ) + ], }, 'MIME::Base64' => { @@ -901,6 +1001,8 @@ use File::Glob qw(:case); qw[t/00-report-prereqs.t], qr{^xt}, ], + # https://github.com/Perl-Toolchain-Gang/CPAN-Meta/pull/119 + 'CUSTOMIZED' => [ qw[ lib/Parse/CPAN/Meta.pm t/02_api.t ] ], }, 'PathTools' => { @@ -1054,6 +1156,9 @@ use File::Glob qw(:case); win32/PerlLog.RES ), ], + 'CUSTOMIZED' => [ + qw( Syslog.pm ) + ], }, 'Term::ANSIColor' => { @@ -1104,6 +1209,54 @@ use File::Glob qw(:case); t/lib/if.pm ), ], + 'CUSTOMIZED' => [ + # https://rt.perl.org/Ticket/Display.html?id=127834 + qw( + bin/prove lib/App/Prove.pm lib/App/Prove/State.pm + lib/App/Prove/State/Result.pm + lib/App/Prove/State/Result/Test.pm + lib/TAP/Base.pm lib/TAP/Formatter/Base.pm + lib/TAP/Formatter/Color.pm + lib/TAP/Formatter/Console.pm + lib/TAP/Formatter/Console/ParallelSession.pm + lib/TAP/Formatter/Console/Session.pm + lib/TAP/Formatter/File.pm + lib/TAP/Formatter/File/Session.pm + lib/TAP/Formatter/Session.pm lib/TAP/Harness.pm + lib/TAP/Harness/Env.pm lib/TAP/Object.pm + lib/TAP/Parser.pm lib/TAP/Parser/Aggregator.pm + lib/TAP/Parser/Grammar.pm + lib/TAP/Parser/Iterator.pm + lib/TAP/Parser/Iterator/Array.pm + lib/TAP/Parser/Iterator/Process.pm + lib/TAP/Parser/Iterator/Stream.pm + lib/TAP/Parser/IteratorFactory.pm + lib/TAP/Parser/Multiplexer.pm + lib/TAP/Parser/Result.pm + lib/TAP/Parser/Result/Bailout.pm + lib/TAP/Parser/Result/Comment.pm + lib/TAP/Parser/Result/Plan.pm + lib/TAP/Parser/Result/Pragma.pm + lib/TAP/Parser/Result/Test.pm + lib/TAP/Parser/Result/Unknown.pm + lib/TAP/Parser/Result/Version.pm + lib/TAP/Parser/Result/YAML.pm + lib/TAP/Parser/ResultFactory.pm + lib/TAP/Parser/Scheduler.pm + lib/TAP/Parser/Scheduler/Job.pm + lib/TAP/Parser/Scheduler/Spinner.pm + lib/TAP/Parser/Source.pm + lib/TAP/Parser/SourceHandler.pm + lib/TAP/Parser/SourceHandler/Executable.pm + lib/TAP/Parser/SourceHandler/File.pm + lib/TAP/Parser/SourceHandler/Handle.pm + lib/TAP/Parser/SourceHandler/Perl.pm + lib/TAP/Parser/SourceHandler/RawTAP.pm + lib/TAP/Parser/YAMLish/Reader.pm + lib/TAP/Parser/YAMLish/Writer.pm + lib/Test/Harness.pm + ) + ], }, 'Test::Simple' => { diff --git a/Porting/config.sh b/Porting/config.sh index f92c7c8..e4f82ae 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -43,8 +43,8 @@ api_subversion='0' api_version='24' api_versionstring='5.24.0' ar='ar' -archlib='/tmp/mblead/lib/perl5/5.24.0/darwin-2level' -archlibexp='/tmp/mblead/lib/perl5/5.24.0/darwin-2level' +archlib='/tmp/mblead/lib/perl5/5.24.1/darwin-2level' +archlibexp='/tmp/mblead/lib/perl5/5.24.1/darwin-2level' archname64='' archname='darwin-2level' archobjs='' @@ -829,7 +829,7 @@ incpath='' incpth='/usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include' inews='' initialinstalllocation='/tmp/mblead/bin' -installarchlib='/tmp/mblead/lib/perl5/5.24.0/darwin-2level' +installarchlib='/tmp/mblead/lib/perl5/5.24.1/darwin-2level' installbin='/tmp/mblead/bin' installhtml1dir='' installhtml3dir='' @@ -837,13 +837,13 @@ installman1dir='/tmp/mblead/man/man1' installman3dir='/tmp/mblead/man/man3' installprefix='/tmp/mblead' installprefixexp='/tmp/mblead' -installprivlib='/tmp/mblead/lib/perl5/5.24.0' +installprivlib='/tmp/mblead/lib/perl5/5.24.1' installscript='/tmp/mblead/bin' -installsitearch='/tmp/mblead/lib/perl5/site_perl/5.24.0/darwin-2level' +installsitearch='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level' installsitebin='/tmp/mblead/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/tmp/mblead/lib/perl5/site_perl/5.24.0' +installsitelib='/tmp/mblead/lib/perl5/site_perl/5.24.1' installsiteman1dir='/tmp/mblead/man/man1' installsiteman3dir='/tmp/mblead/man/man3' installsitescript='/tmp/mblead/bin' @@ -968,7 +968,7 @@ perl_patchlevel='' perl_static_inline='static __inline__' perladmin='aaron@daybreak.nonet' perllibs='-lpthread -ldl -lm -lutil -lc' -perlpath='/tmp/mblead/bin/perl5.24.0' +perlpath='/tmp/mblead/bin/perl5.24.1' pg='pg' phostname='hostname' pidtype='pid_t' @@ -977,8 +977,8 @@ pmake='' pr='' prefix='/tmp/mblead' prefixexp='/tmp/mblead' -privlib='/tmp/mblead/lib/perl5/5.24.0' -privlibexp='/tmp/mblead/lib/perl5/5.24.0' +privlib='/tmp/mblead/lib/perl5/5.24.1' +privlibexp='/tmp/mblead/lib/perl5/5.24.1' procselfexe='' prototype='define' ptrsize='8' @@ -1044,17 +1044,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, 6, 0' sig_size='33' signal_t='void' -sitearch='/tmp/mblead/lib/perl5/site_perl/5.24.0/darwin-2level' -sitearchexp='/tmp/mblead/lib/perl5/site_perl/5.24.0/darwin-2level' +sitearch='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level' +sitearchexp='/tmp/mblead/lib/perl5/site_perl/5.24.1/darwin-2level' sitebin='/tmp/mblead/bin' sitebinexp='/tmp/mblead/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/tmp/mblead/lib/perl5/site_perl/5.24.0' +sitelib='/tmp/mblead/lib/perl5/site_perl/5.24.1' sitelib_stem='/tmp/mblead/lib/perl5/site_perl' -sitelibexp='/tmp/mblead/lib/perl5/site_perl/5.24.0' +sitelibexp='/tmp/mblead/lib/perl5/site_perl/5.24.1' siteman1dir='/tmp/mblead/man/man1' siteman1direxp='/tmp/mblead/man/man1' siteman3dir='/tmp/mblead/man/man3' @@ -1080,7 +1080,7 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/tmp/mblead/bin/perl5.24.0' +startperl='#!/tmp/mblead/bin/perl5.24.1' startsh='#!/bin/sh' static_ext=' ' stdchar='char' @@ -1093,7 +1093,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='0' +subversion='1' sysman='/usr/share/man/man1' sysroot='' tail='' @@ -1192,8 +1192,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.24.0' -version_patchlevel_string='version 24 subversion 0' +version='5.24.1' +version_patchlevel_string='version 24 subversion 1' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1203,7 +1203,7 @@ zcat='' zip='zip' PERL_REVISION=5 PERL_VERSION=24 -PERL_SUBVERSION=0 +PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=24 PERL_API_SUBVERSION=0 diff --git a/Porting/config_H b/Porting/config_H index 12b23f6..a2dc30e 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -960,8 +960,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 "/pro/lib/perl5/5.24.0/i686-linux-64int-ld" /**/ -#define ARCHLIB_EXP "/pro/lib/perl5/5.24.0/i686-linux-64int-ld" /**/ +#define ARCHLIB "/pro/lib/perl5/5.24.1/i686-linux-64int-ld" /**/ +#define ARCHLIB_EXP "/pro/lib/perl5/5.24.1/i686-linux-64int-ld" /**/ /* ARCHNAME: * This symbol holds a string representing the architecture name. @@ -2068,8 +2068,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 "/pro/lib/perl5/5.24.0" /**/ -#define PRIVLIB_EXP "/pro/lib/perl5/5.24.0" /**/ +#define PRIVLIB "/pro/lib/perl5/5.24.1" /**/ +#define PRIVLIB_EXP "/pro/lib/perl5/5.24.1" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2119,8 +2119,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 "/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int-ld" /**/ -#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int-ld" /**/ +#define SITEARCH "/pro/lib/perl5/site_perl/5.24.1/i686-linux-64int-ld" /**/ +#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.1/i686-linux-64int-ld" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -2142,8 +2142,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 "/pro/lib/perl5/site_perl/5.24.0" /**/ -#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.0" /**/ +#define SITELIB "/pro/lib/perl5/site_perl/5.24.1" /**/ +#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.1" /**/ #define SITELIB_STEM "/pro/lib/perl5/site_perl" /**/ /* SSize_t: @@ -4282,7 +4282,7 @@ * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/pro/bin/perl5.24.0" /**/ +#define STARTPERL "#!/pro/bin/perl5.24.1" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array diff --git a/Porting/epigraphs.pod b/Porting/epigraphs.pod index d54eb51..d30e23e 100644 --- a/Porting/epigraphs.pod +++ b/Porting/epigraphs.pod @@ -17,6 +17,388 @@ Consult your favorite dictionary for details. =head1 EPIGRAPHS +=head2 v5.25.8 - Langston Hughes, So long + +L + + So long + is in the song + and it's in the way you're gone + but it's like a foreign language + in my mind + and maybe was I blind + I could not see + and would not know + you're gone so long + so long. + +=head2 v5.25.7 - J.R.R. Tolkien, "The Silmarillion" + +L + + Of Beren and Lúthien + + Among the tales of sorrow and of ruin that come down to us from the darkness of + those days there are yet some in which amid weeping there is joy and under the + shadow of death light that endures. And of these histories most fair still in + the ears of the Elves is the tale of Beren and Lúthien. Of their lives was made + the Lay of Leithian, Release from Bondage, which is the longest save one of the + songs concerning the world of old; but here is told in fewer words and without + song. + +=head2 v5.25.6 - Alan Warner, "The Sopranos" + +L + + I'm up on all the pop trivia, says the guy with the stud in his tongue. + Are you? + Yes. Do you know who he lead singer of Echo and the Bunnymen is? + Let me guess, is he called Echo? + Good guess but no, anyway when they played Glastonbury it was so + muddy he had two roadies to hold up a binliner on each of his legs so + they wouldn't get covered in mud. + That's what being rich and famous is all about, having someone + else hold up your binliners on each leg when you're wandering across + a sea of shite. + Do you know what Sammy Davis Junior said being black and famous in + America meant? + No. + He said being black and famous in America meant he could be + refused entry to exclusive clubs and restaurants that other people + could only ever dream of going to. Do you know Michael Stipe likes to + send his remote control toy cars onto stage while his support band are + playing to freak them out? + Who's Michael Stipe? + You're not really a pop trivia person, are you, Kylah? + No, I'm not, Stephen. + +=head2 v5.25.5 - Philip K. Dick, VALIS + +L + + We hypostatize information into objects. Rearrangement of objects is + change in the content of the information; the message has changed. + This is a language which we have lost the ability to read. We ourselves + are a part of this language; changes in us are changes in the content + of the information. We ourselves are information-rich; information + enters us, is processed and is then projected outward once more, now + in an altered form. We are not aware that we are doing this, that in + fact this is all we are doing + +=head2 v5.25.4 - Terry Pratchett, "Truckers" + +L + + Concerning Nomes and Time + + Nomes are small. On the whole, small creatures don't live for a long + time. But perhaps they do live fast. + + Let me explain. + + One of the shortest-lived creatures on the planet Earth is the adult + common mayfly. It lasts for one day. The longest-living things are + bristlecone pine trees, at 4,700 years and still counting. + + This may seem tough on the mayflies. But the important thing is not + how long your life is, but how long it seems. + + To a mayfly, a single hour may last as long as a century. Perhaps + old mayflies sit around complaining about how life this minute isn't a + patch on the good old minutes of long ago, when the world was + young and the sun seemed so much brighter and larvae showed you a + bit of respect. Whereas the trees, which are not famous to their + quick reactions, may just have time to notice the way the sky keeps + flickering before the dry rot and woodworm set in. + + It's all a sort of relativity. The faster you live, the more time + stretches out. To a nome, a year lasts as long as ten years does to a + human. Remember it. Don't let it concern you. They don't. They don't + even know. + +=head2 v5.25.3 - Edward Lear, ed. Vivien Noakes, "The Complete Nonsense and Other Verse": The Dong with a Luminous Nose + +L + + When awful darkness and silence reign + Over the great Gromboolian plain, + Through the long, long wintry nights; - + When the angry breakers roar + As they beat on the rocky shore; - + When Storm-clouds brood on the towering heights + Of the Hills of the Chankly Bore: - + + Then, through the vast and gloomy dark, + There moves what seems a fiery spark, + A lonely spark with silvery rays + Piercing the coal-black night, - + A Meteor strange and bright: - + Hither and thither the vision strays, + A single lurid light. + + Slowly it wanders, - pauses, - creeps, - + Anon it sparkles, - flashes and leaps; + And ever as onward it gleaming goes + A light on the Bong-tree stems it throws. + And those who watch at that midnight hour + From Hall or Terrace, or lofty Tower, + Cry, as the wild light passes along, - + 'The Dong! - the Dong! + The wandering Dong through the forest goes! + The Dong! the Dong! + The Dong with a luminous Nose!' + +=head2 v5.25.2 - Dan le Sac Vs Scroobius Pip "Waiting For The Beat To Kick In" + +L + + Waiting for the beat to kick in + But it never does + Waiting for my feet to grow wings + That lift me above + All of these tiresome things + That we know and love + Waiting for the beat to kick in + But it never does + +=head2 v5.25.1 - Eli Pariser, "The Filter Bubble" + +L + +Imagine that you're a smart high school student on the low end of the social +totem pole. You're alienated from adult authority, but unlike many teenagers, +you're also alienated from the power structures of your peers -- an existence +that can feel lonely and peripheral. Systems and equations are intuitive, but +people aren't -- social signals are confusing and messy, difficult to interpret. + +Then you discover code. You may be powerless at the lunch table, but code +gives you power over an infinitely malleable world and opens the door to a +symbolic system that's perfectly clear and ordered. The jostling for position +and status fades away. The nagging parental voices disappear. There's just a +clean, white page for you to fill, an opportunity to build a better place, a +home, from the ground up. + +No wonder you're a geek. + +=head2 v5.25.0 - Robert Frost, "The Trial by Existence" + +L + + Even the bravest that are slain + Shall not dissemble their surprise + On waking to find valor reign, + Even as on earth, in paradise; + And where they sought without the sword + Wide fields of asphodel fore’er, + To find that the utmost reward + Of daring should be still to dare. + +=head2 v5.24.1-RC5 - John Milton, ed. Gordon Campbell, "Paradise Regained", Book IV + +L + + Thus passed the night so foul, till Morning fair + Came forth with pilgrim steps, in amice grey; + Who with her radiant finger stilled the roar + Of thunder, chased the clouds, and laid the winds, + And grisly spectres, which the fiend had raised + To tempt the Son of God with terrors dire. + And now the sun with more effectual beams + Had cheered the face of earth, and dried the wet + From drooping plant, or dropping tree; the birds, + Who all things now behold more fresh and green, + After a night of storm so ruinous, + Cleared up their choicest notes in bush and spray, + To gratulate the sweet return of morn. + +=head2 v5.24.1-RC4 - John Milton, ed. Gordon Campbell, "Paradise Lost", Book II + +L + + Before the gates there sat + On either side a formidable shape; + The one seemed woman to the waste, and fair, + But ended foul in many a scaly fold, + Voluminous and vast -- a serpent armed + With mortal sting; about her middle round + A cry of hell hounds never ceasing barked + With wide Cerberean mouths full loud, and rung + A hideous peal; yet, when they list, would creep, + If aught disturbed their noise, into her womb, + And kennel there; yet there still barked and howled + Within unseen. Far less abhorred than these + Vexed Scylla, bathing in the sea that parts + Calabria from the hoarse Trinacrian shore; + Nor uglier follow the night-hag, when, called + In secret, riding through the air she comes, + Lured with the smell of infant blood, to dance + With Lapland witches, while the labouring moon + Eclipses at their charms. The other shape -- + If shape it might be called that shape had none + Distinguishable in member, joint, or limb; + Or substance might be called that shadow seemed, + For each seemed either -- black it stood as night, + Fierce as ten Furies, terrible as hell, + And shook a dreadful dart: what seemed his head + The likeness of a kingly crown had on. + Satan was now at hand, and from his seat + The monster moving onward came as fast + With horrid strides; hell trembled as he strode. + +=head2 v5.24.1-RC3 - Dante Alighieri, trans. Dorothy L. Sayers and Barbara Reynolds, "The Divine Comedy", Cantica III: Paradise, Canto XXIII + +L + + A bird within the bower of her delight, + Quiet upon the nest with her sweet brood + Throughout the dark concealment of the night, + + Anxious to look on them and gather food - + No weary task for her, for as at play + Blithely she toils to seek her fledglings' good - + + Before the time, upon the topmost spray + Eager awaits the sun and on the East + Fixes her wakeful eye till break of day. + +=head2 v5.24.1-RC2 - Dante Alighieri, trans. Dorothy L. Sayers, "The Divine Comedy", Cantica II: Purgatory, Canto X + +L + + When we had crossed the threshold of that gate + Which the soul's evil loves put out of use, + Because they make the crooked path seem straight, + + I heard its closing clang ring clamorous, + And had I then turned back my eyes to it + How could my fault have found the least excuse? + + We had to climb now through a rocky slit + Which ran from side to side in many a swerve, + As runs the wave in onset and retreat. + + "Now here," the master said, "we must observe + Some little caution, hugging now this wall, + Now that, upon the far side of the curve." + +=head2 v5.24.1-RC1 - Dante Alighieri, trans. Dorothy L. Sayers, "The Divine Comedy", Cantica I: Hell, Canto XX + +L + + New punishments behoves me sing in this + Twentieth canto of my first canticle, + Which tells of spirits sunk in the Abyss. + + I now stood ready to observe the full + Extent of the new chasm thus laid bare, + Drenched as it was in tears most miserable. + + Through the round vale I saw folk drawing near, + Weeping and silent, and at such slow pace + As Litany processions keep, up here. + + And presently, when I had dropped my gaze + Lower than the head, I saw them strangely wried + 'Twixt collar-bone and chin, so that the face + + Of each was turned towards his own backside, + And backwards must they needs creep with their feet, + All power of looking forward being denied. + +=head2 v5.24.0 - Robert Frost, "The Black Cottage" + +L + + As I sit here, and oftentimes, I wish + I could be monarch of a desert land + I could devote and dedicate forever + To the truths we keep coming back and back to. + So desert it would have to be, so walled + By mountain ranges half in summer snow, + No one would covet it or think it worth + The pains of conquering to force change on. + Scattered oases where men dwelt, but mostly + Sand dunes held loosely in tamarisk + Blown over and over themselves in idleness. + Sand grains should sugar in the natal dew + The babe born to the desert, the sand storm + Retard mid-waste my cowering caravans— + + “There are bees in this wall.” He struck the clapboards, + Fierce heads looked out; small bodies pivoted. + We rose to go. Sunset blazed on the windows. + +=head2 v5.24.0-RC5 - The Mountain Goats, "No Children" + +L + + And I hope when you think of me years down the line + You can't find one good thing to say + And I'd hope that if I found the strength to walk out + You'd stay the hell out of my way + + I am drowning, there is no sign of land + You are coming down with me, hand in unlovable hand + +=head2 v5.24.0-RC4 - The Joker in "The Killing Joke" + +L + +"See, there were these two guys in a lunatic asylum…" + +=head2 v5.24.0-RC3 - Jesse Vincent + +L + +The Great Pumpkin is a Santa-Claus like figure. He does bring toys like +Santa. But unlike Santa, who gives away toys because it's his job, he +gives away toys because it's the right thing to do. + +=head2 v5.24.0-RC2 - Joseph Heller, "Catch-22" + +L + +“How do you feel, Yossarian?” + +“Fine. No, I’m very frightened.” + +“That’s good,” said Major Danby. “It proves you’re still alive. It won’t +be fun.” + +Yossarian started out. “Yes it will.” + +“I mean it, Yossarian. You’ll have to keep on your toes every minute of +every day. They’ll bend heaven and earth to catch you.” + +“I’ll keep on my toes every minute.” + +“You’ll have to jump.” + +“I’ll jump.” + +“Jump!” Major Danby cried. + +Yossarian jumped. + +Nately’s [girl] was hiding just outside the door. The knife came down, +missing him by inches, and he took off. + +=head2 v5.24.0-RC1 - Robert Frost, "The Census-Taker" + +L + + Nothing was left to do that I could see + Unless to find that there was no one there + And declare to the cliffs too far for echo, + "The place is desert, and let whoso lurks + In silence, if in this he is aggrieved, + Break silence now or be forever silent. + Let him say why it should not be declared so." + The melancholy of having to count souls + Where they grow fewer and fewer every year + Is extreme where they shrink to none at all. + It must be I want life to go on living. + =head2 v5.23.9 - Tom Kitchin, "from nature to plate" L @@ -299,6 +681,153 @@ L + + Thus wore out night; and now the herald lark + Left his ground-nest, high towering to descry + The Morn's approach, and greet her with his song; + As lightly from his grassy couch up rose + Our Saviour, and found all was but a dream; + Fasting he went to sleep, and fasting waked. + Up to a hill anon his steps he reared, + From whose high top to ken the prospect round, + If cottage were in view, sheep-cote, or herd; + But cottage, herd, or sheep-cote, none he saw -- + Only in a bottom saw a pleasant grove, + With chant of tuneful birds resounding loud; + Thither he bent his way, determined there + To rest at noon, and entered soon the shade, + High-roofed and walks beneath, and alleys brown, + That opened in the midst a woody scene; + Nature's own work it seemed (Nature taught Art), + And, to a superstitious eye, the haunt + Of wood-gods and wood-nymphs. + +=head2 v5.22.3-RC4 - John Milton, ed. Gordon Campbell, "Paradise Lost", Book II + +L + + Far off from these, a slow and silent stream, + Lethe, the river of oblivion, rolls + Her watery labyrinth, whereof who drinks + Forthwith his former state and being forgets -- + Forgets both joy and grief, pleasure and pain. + Beyond this flood a frozen continent + Lies dark and wild, beat with perpetual storms + Of Whirlwind and dire hail, which on firm land + Thaws not, but gathers heap, and ruin seems + Of ancient pile; all else deep snow and ice, + A gulf profound as that Serbonian bog + Betwixt Damiata and Mount Casius old, + Where armies whole have sunk: the parching air + Burns frore, and cold performs the effect of fire. + Thither, by harpy-footed Furies haled, + At certain revolutions all the damned + Are brought; and feel by turns the bitter change + Of fierce extremes, extremes by change more fierce, + From beds of raging fire to starve in ice + Their soft ethereal warmth, and there to pine + Immovable, infixed, and frozen round + Periods of time -- thence hurried back to fire. + They ferry over this Lethean sound + Both to and fro, their sorrow to augment, + And wish and struggle, as they pass, to reach + The tempting stream, with one small drop to lose + In sweet forgetfulness all pain and woe, + All in one moment, and so near the brink; + But fate withstands, and, to oppose the attempt, + Medusa with Gorgonian terror guards + The ford, and of itself the water flies + All taste of living wight, as once it fled + The lip of Tantalus. + +=head2 v5.22.3-RC3 - Dante Alighieri, trans. Dorothy L. Sayers and Barbara Reynolds, "The Divine Comedy", Cantica III: Paradise, Canto IV + +L + + Between two dishes, equally attractive + And near to him, a free man, I suppose, + Would starve to death before his teeth got active; + + So would a lamb 'twixt two fierce wolfish foes, + Fearing the fangs both ways, not stir a foot; + So would a deerhound halt between two does; + + So I can't blame myself for standing mute, + Nor praise myself: for I must needs so do, + Suspended 'twixt two doubts, alike acute. + +=head2 v5.22.3-RC2 - Dante Alighieri, trans. Dorothy L. Sayers, "The Divine Comedy", Cantica II: Purgatory, Canto I + +L + + For better waters heading with the wind + My ship of genius now shakes out her sail + And leaves that ocean of despair behind; + + For to the second realm I tune my tale, + Where human spirits purge themselves, and train + To leap up into joy celestial. + + Now from the grave wake poetry again, + O sacred Muses I have served so long! + Now let Calliope uplift her strain + + And lift my voice up on the mighty song + That smote the miserable Magpies nine + Out of all hope of pardon for their wrong! + +=head2 v5.22.3-RC1 - Dante Alighieri, trans. Dorothy L. Sayers, "The Divine Comedy", Cantica I: Hell, Canto XII + +L + + The place we came to, to descend the brink from, + Was sheer crag; and there was a Thing there - making, + All told, a prospect any eye would shrink from. + + Like the great landslide that rushed downward, shaking + The bank of Adige on this side Trent, + (Whether through faulty shoring or the earth's quaking) + + So that the rock, down from the summit rent + Far as the plain, lies strewn, and one might crawl + From top to bottom by that unsure descent, + + Such was the precipice; and there we spied, + Topping the cleft that split the rocky wall, + That which was wombed in the false heifer's side, + + The infamy of Crete, stretched out a-sprawl; + And seeing us, he gnawed himself, like one + Inly devoured with spite and burning gall. + +=head2 v5.22.2 - Gaston Leroux, trans. Mireille Ribière, "The Phantom of the Opera" + +L + +A silence; and then: 'If, in just two minutes' time by my watch--and a +splendid watch it is--you have not turned the scorpion, mademoiselle, I +shall turn the grasshopper... and the grasshopper, remember, _leaps +straight up into the air!_' +The silence that ensued was terrifying, worse than any we had +experienced before. I knew that when Erik spoke with that quiet, +gentle, slightly weary voice, it meant that he had reached the end of +his tether: that he was capable of the most abominable crimes or the +most selfless devotion; that the slightest irritation might unleash a +storm. +Realizing that our fate was out of our hands, the Viscount fell to his +knees and prayed. As for me, I pressed both hands to my chest, for my +heart was pounding so fiercely that I thought it would burst. We were +intensely aware of the excruciating dilemma Christine Daaé faced in +those final seconds. We understood why she hesitated to turn the +scorpion. What if the scorpion, rather than the grasshopper, were to +set off the explosion? What if Erik was simply intent on destroying +everything, regardless? +At last he spoke: 'The two minutes are up,' he said in a soft, angelic +voice. 'Goodbye, mademoiselle. Off you go, little grasshopper!' + =head2 v5.22.2-RC1 - Gaston Leroux, trans. Mireille Ribière, "The Phantom of the Opera" L diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod index 8167bb1..a12e638 100644 --- a/Porting/perldelta_template.pod +++ b/Porting/perldelta_template.pod @@ -378,7 +378,7 @@ here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.24.0..HEAD + perl Porting/acknowledgements.pl v5.24.1..HEAD =head1 Reporting Bugs diff --git a/Porting/release_managers_guide.pod b/Porting/release_managers_guide.pod index d2223f6..56b8847 100644 --- a/Porting/release_managers_guide.pod +++ b/Porting/release_managers_guide.pod @@ -243,7 +243,7 @@ necessary, fix things up. For example, you might think that both blead and maint are synchronised with a particular CPAN module, but one might have some extra changes. -=head3 How to sync a CPAN module with a cpan/ distro +=head3 How to sync a CPAN module with a cpanE distro =over 4 @@ -278,7 +278,7 @@ into the repository anyway. =item * For any new files in the distro, determine whether they are needed. -If not, delete them, and list them in either C or C<@INGORE>. +If not, delete them, and list them in either C or C<@IGNORABLE>. Otherwise, add them to C, and run C to add the files to the repository. @@ -374,6 +374,11 @@ at http://analysis.cpantesters.org/beforemaintrelease to see how the impending release is performing compared to previous releases with regard to building and testing CPAN modules. +That page accepts a query parameter, C that takes a pair of +colon-delimited versions to use for comparison. For example: + +http://analysis.cpantesters.org/beforemaintrelease?pair=5.20.2:5.22.0%20RC1 + =head3 update perldelta Get perldelta in a mostly finished state. @@ -1380,18 +1385,6 @@ F on blead. e.g. 5.8.9 2008-Dec-14 -=head3 bump RT version number - -Log into http://rt.perl.org/ and check whether the new version is in the RT -fields C and C. The easiest way to determine this is to -open up any ticket for modification and check the drop downs next to the -C and C labels. - -Here, try this link: L - -If the new version is not listed there, send an email to C requesting this. - =head3 Relax! I =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.24.0" +of 5.24.1" =head2 make ithreads more robust diff --git a/README b/README index d46e72e..02ac59c 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, -2013, 2014, 2015, 2016 by Larry Wall and others. All rights reserved. +2013, 2014, 2015, 2016, 2017 by Larry Wall and others. All rights reserved. diff --git a/README.haiku b/README.haiku index 95efcb4..1a74156 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.24.0/BePC-haiku/CORE/libperl.so . + cd /boot/common/lib; ln -s perl5/5.24.1/BePC-haiku/CORE/libperl.so . -Replace C<5.24.0> with your respective version of Perl. +Replace C<5.24.1> with your respective version of Perl. =head1 KNOWN PROBLEMS diff --git a/README.macosx b/README.macosx index f07fd87..596c183 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 http://www.cpan.org/src/perl-5.24.0.tar.gz - tar -xzf perl-5.24.0.tar.gz - cd perl-5.24.0 + curl -O http://www.cpan.org/src/perl-5.24.1.tar.gz + tar -xzf perl-5.24.1.tar.gz + cd perl-5.24.1 ./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.24.0 as of this writing) builds without changes +The latest Perl release (5.24.1 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 d27f1d2..6c0eaf2 100644 --- a/README.os2 +++ b/README.os2 @@ -619,7 +619,7 @@ C in F, see L<"PERLLIB_PREFIX">. =item Additional Perl modules - unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.24.0/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.24.1/ 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.vms b/README.vms index 1ad082a..716bf92 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^.24^.0.tar + vmstar -xvf perl-5^.24^.1.tar Then set default to the top-level source directory like so: - set default [.perl-5^.24^.0] + set default [.perl-5^.24^.1] and proceed with configuration as described in the next section. diff --git a/cpan/Archive-Tar/bin/ptar b/cpan/Archive-Tar/bin/ptar index 0eaffa7..9dc6402 100644 --- a/cpan/Archive-Tar/bin/ptar +++ b/cpan/Archive-Tar/bin/ptar @@ -1,6 +1,7 @@ #!/usr/bin/perl use strict; +BEGIN { pop @INC if $INC[-1] eq '.' } use File::Find; use Getopt::Std; use Archive::Tar; diff --git a/cpan/Archive-Tar/bin/ptardiff b/cpan/Archive-Tar/bin/ptardiff index 66bd859..4668fa6 100644 --- a/cpan/Archive-Tar/bin/ptardiff +++ b/cpan/Archive-Tar/bin/ptardiff @@ -1,5 +1,6 @@ #!/usr/bin/perl +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use Archive::Tar; use Getopt::Std; diff --git a/cpan/Archive-Tar/bin/ptargrep b/cpan/Archive-Tar/bin/ptargrep index 1a320f1..8dc6b4f 100644 --- a/cpan/Archive-Tar/bin/ptargrep +++ b/cpan/Archive-Tar/bin/ptargrep @@ -4,6 +4,7 @@ # archive. See 'ptargrep --help' for more documentation. # +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings; diff --git a/cpan/Archive-Tar/lib/Archive/Tar.pm b/cpan/Archive-Tar/lib/Archive/Tar.pm index 1b792df..6a047a3 100644 --- a/cpan/Archive-Tar/lib/Archive/Tar.pm +++ b/cpan/Archive-Tar/lib/Archive/Tar.pm @@ -31,7 +31,7 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD $DEBUG = 0; $WARN = 1; $FOLLOW_SYMLINK = 0; -$VERSION = "2.04"; +$VERSION = "2.04_01"; $CHOWN = 1; $CHMOD = 1; $SAME_PERMISSIONS = $> == 0 ? 1 : 0; diff --git a/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm b/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm index 399aaf6..f9557e9 100644 --- a/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm +++ b/cpan/Archive-Tar/lib/Archive/Tar/Constant.pm @@ -3,7 +3,7 @@ package Archive::Tar::Constant; BEGIN { require Exporter; - $VERSION = '2.04'; + $VERSION = '2.04_01'; @ISA = qw[Exporter]; require Time::Local if $^O eq "MacOS"; diff --git a/cpan/Archive-Tar/lib/Archive/Tar/File.pm b/cpan/Archive-Tar/lib/Archive/Tar/File.pm index 3aa1b3c..3ecad56 100644 --- a/cpan/Archive-Tar/lib/Archive/Tar/File.pm +++ b/cpan/Archive-Tar/lib/Archive/Tar/File.pm @@ -13,7 +13,7 @@ use Archive::Tar::Constant; use vars qw[@ISA $VERSION]; #@ISA = qw[Archive::Tar]; -$VERSION = '2.04'; +$VERSION = '2.04_01'; ### set value to 1 to oct() it during the unpack ### diff --git a/cpan/CPAN/lib/App/Cpan.pm b/cpan/CPAN/lib/App/Cpan.pm index e8c9bb7..94607d9 100644 --- a/cpan/CPAN/lib/App/Cpan.pm +++ b/cpan/CPAN/lib/App/Cpan.pm @@ -6,7 +6,7 @@ use vars qw($VERSION); use if $] < 5.008 => 'IO::Scalar'; -$VERSION = '1.63'; +$VERSION = '1.63_01'; =head1 NAME @@ -530,9 +530,20 @@ sub AUTOLOAD { 1 } sub DESTROY { 1 } } +# load a module without searching the default entry for the current +# directory +sub _safe_load_module { + my $name = shift; + + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + + eval "require $name; 1"; +} + sub _init_logger { - my $log4perl_loaded = eval "require Log::Log4perl; 1"; + my $log4perl_loaded = _safe_load_module("Log::Log4perl"); unless( $log4perl_loaded ) { @@ -993,7 +1004,7 @@ sub _load_local_lib # -I { $logger->debug( "Loading local::lib" ); - my $rc = eval { require local::lib; 1; }; + my $rc = _safe_load_module("local::lib"); unless( $rc ) { $logger->die( "Could not load local::lib" ); } @@ -1121,7 +1132,7 @@ sub _get_file { my $path = shift; - my $loaded = eval "require LWP::Simple; 1;"; + my $loaded = _safe_load_module("LWP::Simple"); croak "You need LWP::Simple to use features that fetch files from CPAN\n" unless $loaded; @@ -1143,7 +1154,7 @@ sub _gitify { my $args = shift; - my $loaded = eval "require Archive::Extract; 1;"; + my $loaded = _safe_load_module("Archive::Extract"); croak "You need Archive::Extract to use features that gitify distributions\n" unless $loaded; @@ -1207,7 +1218,7 @@ sub _show_Changes sub _get_changes_file { croak "Reading Changes files requires LWP::Simple and URI\n" - unless eval "require LWP::Simple; require URI; 1"; + unless _safe_load_module("LWP::Simple") && _safe_load_module("URI"); my $url = shift; diff --git a/cpan/CPAN/lib/CPAN.pm b/cpan/CPAN/lib/CPAN.pm index 6096916..25bf349 100644 --- a/cpan/CPAN/lib/CPAN.pm +++ b/cpan/CPAN/lib/CPAN.pm @@ -2,7 +2,7 @@ # vim: ts=4 sts=4 sw=4: use strict; package CPAN; -$CPAN::VERSION = '2.11'; +$CPAN::VERSION = '2.11_01'; $CPAN::VERSION =~ s/_//; # we need to run chdir all over and we would get at wrong libraries @@ -1104,6 +1104,8 @@ sub has_usable { ] }; if ($usable->{$mod}) { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; for my $c (0..$#{$usable->{$mod}}) { my $code = $usable->{$mod}[$c]; my $ret = eval { &$code() }; @@ -1146,6 +1148,8 @@ sub has_inst { $CPAN::META->{dontload_hash}{$mod}||=1; # unsafe meta access, ok return 0; } + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; my $file = $mod; my $obj; $file =~ s|::|/|g; diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan index 5f4320e..ccba47e 100644 --- a/cpan/CPAN/scripts/cpan +++ b/cpan/CPAN/scripts/cpan @@ -1,5 +1,6 @@ #!/usr/local/bin/perl +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use vars qw($VERSION); diff --git a/cpan/Digest-SHA/lib/Digest/SHA.pm b/cpan/Digest-SHA/lib/Digest/SHA.pm index 3abca3d..e696dec 100644 --- a/cpan/Digest-SHA/lib/Digest/SHA.pm +++ b/cpan/Digest-SHA/lib/Digest/SHA.pm @@ -8,7 +8,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use Fcntl; use integer; -$VERSION = '5.95'; +$VERSION = '5.95_01'; require Exporter; require DynaLoader; diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum index 14ddd60..62a2b0e 100644 --- a/cpan/Digest-SHA/shasum +++ b/cpan/Digest-SHA/shasum @@ -13,6 +13,7 @@ ## "-0" option for reading bit strings, and ## "-p" option for portable digests (to be deprecated). +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings; use Fcntl; diff --git a/cpan/Digest/Digest.pm b/cpan/Digest/Digest.pm index c3355a8..16dae9d 100644 --- a/cpan/Digest/Digest.pm +++ b/cpan/Digest/Digest.pm @@ -3,7 +3,7 @@ package Digest; use strict; use vars qw($VERSION %MMAP $AUTOLOAD); -$VERSION = "1.17"; +$VERSION = "1.17_01"; %MMAP = ( "SHA-1" => [["Digest::SHA", 1], "Digest::SHA1", ["Digest::SHA2", 1]], @@ -38,7 +38,11 @@ sub new unless (exists ${"$class\::"}{"VERSION"}) { my $pm_file = $class . ".pm"; $pm_file =~ s{::}{/}g; - eval { require $pm_file }; + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require $pm_file + }; if ($@) { $err ||= $@; next; diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm index 3dade96..dce6c54 100644 --- a/cpan/Encode/Encode.pm +++ b/cpan/Encode/Encode.pm @@ -4,7 +4,7 @@ package Encode; use strict; use warnings; -our $VERSION = sprintf "%d.%02d", q$Revision: 2.80 $ =~ /(\d+)/g; +our $VERSION = sprintf "%d.%02d_01", q$Revision: 2.80 $ =~ /(\d+)/g; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; use XSLoader (); XSLoader::load( __PACKAGE__, $VERSION ); @@ -56,6 +56,8 @@ require Encode::Config; eval { local $SIG{__DIE__}; local $SIG{__WARN__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; require Encode::ConfigLocal; }; diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs index ec4732c..f8d9f52 100644 --- a/cpan/Encode/bin/enc2xs +++ b/cpan/Encode/bin/enc2xs @@ -4,6 +4,7 @@ BEGIN { # with $ENV{PERL_CORE} set # In case we need it in future... require Config; import Config; + pop @INC if $INC[-1] eq '.'; } use strict; use warnings; diff --git a/cpan/Encode/bin/encguess b/cpan/Encode/bin/encguess index 5d7ac80..0be5c7c 100644 --- a/cpan/Encode/bin/encguess +++ b/cpan/Encode/bin/encguess @@ -1,5 +1,6 @@ #!./perl use 5.008001; +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings; use Encode; diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv index c1dad9e..60b2a59 100644 --- a/cpan/Encode/bin/piconv +++ b/cpan/Encode/bin/piconv @@ -1,6 +1,7 @@ #!./perl # $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $ # +BEGIN { pop @INC if $INC[-1] eq '.' } use 5.8.0; use strict; use Encode ; diff --git a/cpan/Encode/bin/ucmlint b/cpan/Encode/bin/ucmlint index 622376d..25e0d67 100644 --- a/cpan/Encode/bin/ucmlint +++ b/cpan/Encode/bin/ucmlint @@ -3,6 +3,7 @@ # $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $ # +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump index ae0da30..f190827 100644 --- a/cpan/Encode/bin/unidump +++ b/cpan/Encode/bin/unidump @@ -1,5 +1,6 @@ #!./perl +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use Encode; use Getopt::Std; diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh index 8b9aa95..ab0f9d1 100644 --- a/cpan/ExtUtils-MakeMaker/bin/instmodsh +++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh @@ -1,5 +1,6 @@ #!/usr/bin/perl -w +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use IO::File; use ExtUtils::Packlist; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm index ba79592..34e85de 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm @@ -7,7 +7,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); @ISA = qw(Exporter); @EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod dos2unix); -$VERSION = '7.10'; +$VERSION = '7.10_02'; $VERSION = eval $VERSION; my $Is_VMS = $^O eq 'VMS'; @@ -20,7 +20,10 @@ if( $Is_VMS ) { my $vms_efs; my $vms_case; - if (eval { local $SIG{__DIE__}; require VMS::Feature; }) { + if (eval { local $SIG{__DIE__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require VMS::Feature; }) { $vms_unix_rpt = VMS::Feature::current("filename_unix_report"); $vms_efs = VMS::Feature::current("efs_charset"); $vms_case = VMS::Feature::current("efs_case_preserve"); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index 9184471..b4385fc 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm @@ -10,7 +10,7 @@ our @ISA = qw(Exporter); our @EXPORT = qw(test_harness pod2man perllocal_install uninstall warn_if_old_packlist test_s cp_nonempty); -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; my $Is_VMS = $^O eq 'VMS'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm index 3bb49d2..ed38f8f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm @@ -2,7 +2,7 @@ package ExtUtils::Liblist; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; use File::Spec; require ExtUtils::Liblist::Kid; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm index 43d554e..93183a3 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm @@ -11,7 +11,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm index fa5f72c..a8a176b 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm @@ -3,7 +3,7 @@ package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::Liblist; require ExtUtils::MakeMaker; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm index ec3a2fc..bb7e610 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_AIX; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm index 129ad9e..7679dc4 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_Any; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; use Carp; use File::Spec; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 801b035..3015f2d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm @@ -26,7 +26,7 @@ require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; =item os_flavor diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index a9331ff..659d430 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm @@ -9,7 +9,7 @@ require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index c6ffc59..e89c632 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_DOS; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm index cc52f1d..b6e7c5b 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm @@ -7,7 +7,7 @@ BEGIN { our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index 820ffd1..7323bf1 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; sub new { die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm index 0b89a15..967b5d4 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm @@ -22,7 +22,7 @@ use strict; use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm index 2c64ac4..598087c 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm @@ -5,7 +5,7 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm index 71c4bd5..1bdc6e0 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_QNX; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm index 2350482..6d85d94 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_UWIN; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm index e24a61b..009b18e 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm @@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue); # If we make $VERSION an our variable parse_version() breaks use vars qw($VERSION); -$VERSION = '7.10_01'; +$VERSION = '7.10_02'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] require ExtUtils::MM_Any; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index fab18df..60dd871 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm @@ -15,7 +15,7 @@ BEGIN { use File::Basename; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm index 57d5e32..07ad95f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_VOS; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm index 1c6921c..0a2fb60 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm @@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw( neatvalue ); require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; $ENV{EMXSHELL} = 'sh'; # to run `commands` diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index 2c31d7c..096f28d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_Win95; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm index 3973e37..5a080ea 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm @@ -3,7 +3,7 @@ package ExtUtils::MY; use strict; require ExtUtils::MM; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; our @ISA = qw(ExtUtils::MM); { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index f9fb8fe..42b174f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm @@ -24,7 +24,7 @@ my %Recognized_Att_Keys; our %macro_fsentity; # whether a macro is a filesystem name our %macro_dep; # whether a macro is a dependency -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] # Emulate something resembling CVS $Revision$ diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm index 3b96836..707e3bf 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm @@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config; use strict; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; use Config (); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm index a393329..dc2310e 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm @@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap; # There's just too much Dynaloader incest here to turn on strict vars. use strict 'refs'; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; require Exporter; our @ISA = ('Exporter'); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm index b80310e..37180b8 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm @@ -10,7 +10,7 @@ use Config; our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; sub Mksymlists { my(%spec) = @_; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm index 6f5d870..1756998 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm @@ -3,7 +3,7 @@ package ExtUtils::testlib; use strict; use warnings; -our $VERSION = '7.10_01'; +our $VERSION = '7.10_02'; use Cwd; use File::Spec; diff --git a/cpan/File-Fetch/lib/File/Fetch.pm b/cpan/File-Fetch/lib/File/Fetch.pm index 7d6a263..de2ab12 100644 --- a/cpan/File-Fetch/lib/File/Fetch.pm +++ b/cpan/File-Fetch/lib/File/Fetch.pm @@ -22,7 +22,7 @@ use vars qw[ $VERBOSE $PREFER_BIN $FROM_EMAIL $USER_AGENT $FTP_PASSIVE $TIMEOUT $DEBUG $WARN $FORCEIPV4 ]; -$VERSION = '0.48'; +$VERSION = '0.48_01'; $VERSION = eval $VERSION; # avoid warnings with development releases $PREFER_BIN = 0; # XXX TODO implement $FROM_EMAIL = 'File-Fetch@example.com'; @@ -567,6 +567,8 @@ sub _lwp_fetch { }; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; unless( can_load( modules => $use_list ) ) { $METHOD_FAIL->{'lwp'} = 1; return; @@ -619,6 +621,8 @@ sub _httptiny_fetch { }; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; unless( can_load(modules => $use_list) ) { $METHOD_FAIL->{'httptiny'} = 1; return; @@ -658,6 +662,8 @@ sub _httplite_fetch { }; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; unless( can_load(modules => $use_list) ) { $METHOD_FAIL->{'httplite'} = 1; return; @@ -733,6 +739,8 @@ sub _iosock_fetch { 'IO::Select' => '0.0', }; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; unless( can_load(modules => $use_list) ) { $METHOD_FAIL->{'iosock'} = 1; return; @@ -814,6 +822,8 @@ sub _netftp_fetch { check( $tmpl, \%hash ) or return; ### required modules ### + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; my $use_list = { 'Net::FTP' => 0 }; unless( can_load( modules => $use_list ) ) { diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm index 52887d1..f9e5184 100644 --- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm +++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm @@ -4,7 +4,7 @@ use strict; use warnings; # ABSTRACT: A small, simple, correct HTTP/1.1 client -our $VERSION = '0.056'; +our $VERSION = '0.056_001'; use Carp (); @@ -485,6 +485,8 @@ sub can_ssl { my($ok, $reason) = (1, ''); # Need IO::Socket::SSL 1.42 for SSL_create_ctx_callback + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; unless (eval {require IO::Socket::SSL; IO::Socket::SSL->VERSION(1.42)}) { $ok = 0; $reason .= qq/IO::Socket::SSL 1.42 must be installed for https support\n/; @@ -1441,6 +1443,8 @@ sub _find_CA_file { return $self->{SSL_options}->{SSL_ca_file}; } + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; return Mozilla::CA::SSL_ca_file() if eval { require Mozilla::CA; 1 }; diff --git a/cpan/IO-Compress/bin/zipdetails b/cpan/IO-Compress/bin/zipdetails index 0249850..1b9c70a 100644 --- a/cpan/IO-Compress/bin/zipdetails +++ b/cpan/IO-Compress/bin/zipdetails @@ -5,6 +5,7 @@ # Display info on the contents of a Zip file # +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings ; diff --git a/cpan/IO-Compress/lib/Compress/Zlib.pm b/cpan/IO-Compress/lib/Compress/Zlib.pm index 36070c7..897b1e2 100644 --- a/cpan/IO-Compress/lib/Compress/Zlib.pm +++ b/cpan/IO-Compress/lib/Compress/Zlib.pm @@ -17,7 +17,7 @@ use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm index 74757a9..6195550 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm @@ -9,7 +9,7 @@ use IO::Compress::Base::Common 2.069 qw(:Status); use Compress::Raw::Bzip2 2.069 ; our ($VERSION); -$VERSION = '2.069'; +$VERSION = '2.069_001'; sub mkCompObject { diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm index 7c616bf..8ea7e69 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm @@ -10,7 +10,7 @@ use Compress::Raw::Zlib 2.069 qw( !crc32 !adler32 ) ; require Exporter; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS); -$VERSION = '2.069'; +$VERSION = '2.069_001'; @ISA = qw(Exporter); @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS; %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS; diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm index b09897a..7ec9b33 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm @@ -7,7 +7,7 @@ use bytes; use IO::Compress::Base::Common 2.069 qw(:Status); our ($VERSION); -$VERSION = '2.069'; +$VERSION = '2.069_001'; sub mkCompObject { diff --git a/cpan/IO-Compress/lib/IO/Compress/Base.pm b/cpan/IO-Compress/lib/IO/Compress/Base.pm index 2a0dd79..0b67291 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Base.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Base.pm @@ -20,7 +20,7 @@ use Symbol(); our (@ISA, $VERSION); @ISA = qw(Exporter IO::File); -$VERSION = '2.069'; +$VERSION = '2.069_001'; #Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16. diff --git a/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm b/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm index fc983db..ef0eb72 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm @@ -11,7 +11,7 @@ use File::GlobMapper; require Exporter; our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE); @ISA = qw(Exporter); -$VERSION = '2.069'; +$VERSION = '2.069_001'; @EXPORT = qw( isaFilehandle isaFilename isaScalar whatIsInput whatIsOutput diff --git a/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm b/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm index fbb9aed..2ef5cb5 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm @@ -14,7 +14,7 @@ use IO::Compress::Adapter::Bzip2 2.069 ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $Bzip2Error = ''; @ISA = qw(Exporter IO::Compress::Base); diff --git a/cpan/IO-Compress/lib/IO/Compress/Deflate.pm b/cpan/IO-Compress/lib/IO/Compress/Deflate.pm index c79b336..33a262a 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Deflate.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Deflate.pm @@ -17,7 +17,7 @@ use IO::Compress::Base::Common 2.069 qw(); our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $DeflateError = ''; @ISA = qw(Exporter IO::Compress::RawDeflate); diff --git a/cpan/IO-Compress/lib/IO/Compress/Gzip.pm b/cpan/IO-Compress/lib/IO/Compress/Gzip.pm index 1aa5447..8004211 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Gzip.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Gzip.pm @@ -25,7 +25,7 @@ BEGIN our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $GzipError = '' ; @ISA = qw(Exporter IO::Compress::RawDeflate); diff --git a/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm index 293905c..950bdb0 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm @@ -9,7 +9,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names); our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE); -$VERSION = '2.069'; +$VERSION = '2.069_001'; @ISA = qw(Exporter); diff --git a/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm b/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm index 7eabff9..2a55301 100644 --- a/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm +++ b/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm @@ -14,7 +14,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $RawDeflateError = ''; @ISA = qw(Exporter IO::Compress::Base); diff --git a/cpan/IO-Compress/lib/IO/Compress/Zip.pm b/cpan/IO-Compress/lib/IO/Compress/Zip.pm index 9e0d1c9..98e4f50 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Zip.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Zip.pm @@ -36,7 +36,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $ZipError = ''; @ISA = qw(Exporter IO::Compress::RawDeflate); diff --git a/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm index 40ad060..d72d0dc 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm @@ -7,7 +7,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS); -$VERSION = '2.069'; +$VERSION = '2.069_001'; @ISA = qw(Exporter); diff --git a/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm index 13fd7d2..70f2db1 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm @@ -9,7 +9,7 @@ require Exporter; our ($VERSION, @ISA, @EXPORT); -$VERSION = '2.069'; +$VERSION = '2.069_001'; @ISA = qw(Exporter); diff --git a/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm b/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm index ecec7a9..92ca205 100644 --- a/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm +++ b/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm @@ -8,7 +8,7 @@ use bytes; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS); -$VERSION = '2.069'; +$VERSION = '2.069_001'; use IO::Compress::Gzip::Constants 2.069 ; diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm index 6086cd8..3d8fefc 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm @@ -9,7 +9,7 @@ use IO::Compress::Base::Common 2.069 qw(:Status); use Compress::Raw::Bzip2 2.069 ; our ($VERSION, @ISA); -$VERSION = '2.069'; +$VERSION = '2.069_001'; sub mkUncompObject { diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm index 5ce6714..840a34f 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm @@ -9,7 +9,7 @@ use IO::Compress::Zip::Constants ; our ($VERSION); -$VERSION = '2.069'; +$VERSION = '2.069_001'; use Compress::Raw::Zlib 2.069 (); diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm index fafa385..d23eb90 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm @@ -8,7 +8,7 @@ use IO::Compress::Base::Common 2.069 qw(:Status); use Compress::Raw::Zlib 2.069 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS); our ($VERSION); -$VERSION = '2.069'; +$VERSION = '2.069_001'; diff --git a/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm index 50e586e..637e629 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm @@ -21,7 +21,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $AnyInflateError = ''; @ISA = qw( Exporter IO::Uncompress::Base ); diff --git a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm index d44b225..92a04a4 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm @@ -13,7 +13,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $AnyUncompressError = ''; @ISA = qw( Exporter IO::Uncompress::Base ); @@ -27,6 +27,8 @@ Exporter::export_ok_tags('all'); BEGIN { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; eval ' use IO::Uncompress::Adapter::Inflate 2.069 ;'; eval ' use IO::Uncompress::Adapter::Bunzip2 2.069 ;'; eval ' use IO::Uncompress::Adapter::LZO 2.069 ;'; diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm index 93c05de..0906f34 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm @@ -9,7 +9,7 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS); @ISA = qw(Exporter IO::File); -$VERSION = '2.069'; +$VERSION = '2.069_001'; use constant G_EOF => 0 ; use constant G_ERR => -1 ; diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm b/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm index 46b5ea1..97bc415 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm @@ -12,7 +12,7 @@ use IO::Uncompress::Adapter::Bunzip2 2.069 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $Bunzip2Error = ''; @ISA = qw( Exporter IO::Uncompress::Base ); diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm b/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm index bd698f4..a27f39d 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm @@ -28,7 +28,7 @@ Exporter::export_ok_tags('all'); $GunzipError = ''; -$VERSION = '2.069'; +$VERSION = '2.069_001'; sub new { diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm index f62cfac..db0f70c 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm @@ -13,7 +13,7 @@ use IO::Uncompress::RawInflate 2.069 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $InflateError = ''; @ISA = qw( Exporter IO::Uncompress::RawInflate ); diff --git a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm index c052971..20a9162 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm @@ -14,7 +14,7 @@ use IO::Uncompress::Adapter::Inflate 2.069 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $RawInflateError = ''; @ISA = qw( Exporter IO::Uncompress::Base ); diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm b/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm index 0ee6df4..5394ec8 100644 --- a/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm +++ b/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm @@ -31,7 +31,7 @@ require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup); -$VERSION = '2.069'; +$VERSION = '2.069_001'; $UnzipError = ''; @ISA = qw(Exporter IO::Uncompress::RawInflate); diff --git a/cpan/IPC-Cmd/lib/IPC/Cmd.pm b/cpan/IPC-Cmd/lib/IPC/Cmd.pm index 6a82bdf..4705f04 100644 --- a/cpan/IPC-Cmd/lib/IPC/Cmd.pm +++ b/cpan/IPC-Cmd/lib/IPC/Cmd.pm @@ -18,7 +18,7 @@ BEGIN { $HAVE_MONOTONIC ]; - $VERSION = '0.92'; + $VERSION = '0.92_01'; $VERBOSE = 0; $DEBUG = 0; $WARN = 1; @@ -142,6 +142,8 @@ sub can_use_ipc_run { return if IS_WIN98; ### if we don't have ipc::run, we obviously can't use it. + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; return unless can_load( modules => { 'IPC::Run' => '0.55' }, verbose => ($WARN && $verbose), @@ -169,6 +171,8 @@ sub can_use_ipc_open3 { ### IPC::Open3 works on every non-VMS platform, but it can't ### capture buffers on win32 :( + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; return unless can_load( modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| }, verbose => ($WARN && $verbose), diff --git a/cpan/JSON-PP/bin/json_pp b/cpan/JSON-PP/bin/json_pp index df9d243..896cd2f 100644 --- a/cpan/JSON-PP/bin/json_pp +++ b/cpan/JSON-PP/bin/json_pp @@ -1,5 +1,6 @@ #!/usr/bin/perl +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use Getopt::Long; diff --git a/cpan/JSON-PP/lib/JSON/PP.pm b/cpan/JSON-PP/lib/JSON/PP.pm index 7a011a4..1e29eee 100644 --- a/cpan/JSON-PP/lib/JSON/PP.pm +++ b/cpan/JSON-PP/lib/JSON/PP.pm @@ -11,7 +11,7 @@ use Carp (); use B (); #use Devel::Peek; -$JSON::PP::VERSION = '2.27300'; +$JSON::PP::VERSION = '2.27300_01'; @JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json); diff --git a/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm b/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm index 30760f3..9e61670 100644 --- a/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm +++ b/cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm @@ -1,5 +1,5 @@ package Locale::Maketext::Simple; -$Locale::Maketext::Simple::VERSION = '0.21'; +$Locale::Maketext::Simple::VERSION = '0.21_01'; use strict; use 5.005; @@ -134,7 +134,12 @@ sub load_loc { my $pkg = join('::', grep { defined and length } $args{Class}, $args{Subclass}); return $Loc{$pkg} if exists $Loc{$pkg}; - eval { require Locale::Maketext::Lexicon; 1 } or return; + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Locale::Maketext::Lexicon; + 1 + } or return; $Locale::Maketext::Lexicon::VERSION > 0.20 or return; eval { require File::Spec; 1 } or return; diff --git a/cpan/Memoize/Memoize.pm b/cpan/Memoize/Memoize.pm index 9a58c4a..f4e6522 100644 --- a/cpan/Memoize/Memoize.pm +++ b/cpan/Memoize/Memoize.pm @@ -9,7 +9,7 @@ # write to mjd-perl-memoize+@plover.com for a license. package Memoize; -$VERSION = '1.03'; +$VERSION = '1.03_01'; # Compile-time constants sub SCALAR () { 0 } @@ -184,7 +184,11 @@ sub _my_tie { } my $modulefile = $module . '.pm'; $modulefile =~ s{::}{/}g; - eval { require $modulefile }; + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require $modulefile + }; if ($@) { croak "Memoize: Couldn't load hash tie module `$module': $@; aborting"; } diff --git a/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm b/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm index 77a0764..56eecb4 100644 --- a/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm +++ b/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm @@ -3,7 +3,7 @@ use strict; package Parse::CPAN::Meta; # ABSTRACT: Parse META.yml and META.json CPAN metadata files -our $VERSION = '1.4417'; +our $VERSION = '1.4417_001'; use Exporter; use Carp 'croak'; @@ -56,7 +56,7 @@ sub load_json_string { } sub yaml_backend { - if (! defined $ENV{PERL_YAML_BACKEND} ) { + if ($ENV{PERL_CORE} or not defined $ENV{PERL_YAML_BACKEND} ) { _can_load( 'CPAN::Meta::YAML', 0.011 ) or croak "CPAN::Meta::YAML 0.011 is not available\n"; return "CPAN::Meta::YAML"; @@ -72,7 +72,7 @@ sub yaml_backend { } sub json_backend { - if (! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') { + if ($ENV{PERL_CORE} or ! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') { _can_load( 'JSON::PP' => 2.27103 ) or croak "JSON::PP 2.27103 is not available\n"; return 'JSON::PP'; diff --git a/cpan/Parse-CPAN-Meta/t/02_api.t b/cpan/Parse-CPAN-Meta/t/02_api.t index 5f94bc7..d17fb80 100644 --- a/cpan/Parse-CPAN-Meta/t/02_api.t +++ b/cpan/Parse-CPAN-Meta/t/02_api.t @@ -58,7 +58,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); ### YAML tests { - local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); my $from_yaml = Parse::CPAN::Meta->load_file( $meta_yaml ); @@ -66,7 +66,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); } { - local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML note ''; is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); @@ -75,7 +75,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); } { - local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML note ''; is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); @@ -84,7 +84,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); } { - local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML note ''; is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); @@ -94,7 +94,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); } { - local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + local $ENV{PERL_YAML_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get CPAN::META::YAML note ''; is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); @@ -105,6 +105,7 @@ my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); SKIP: { note ''; + skip 'these tests are for cpan builds only', 2 if $ENV{PERL_CORE}; skip "YAML module not installed", 2 unless eval "require YAML; 1"; local $ENV{PERL_YAML_BACKEND} = 'YAML'; @@ -118,7 +119,7 @@ SKIP: { ### JSON tests { # JSON tests with JSON::PP - local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP + local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP note ''; is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); @@ -128,7 +129,7 @@ SKIP: { { # JSON tests with JSON::PP - local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP + local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP note ''; is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); @@ -138,7 +139,7 @@ SKIP: { { # JSON tests with JSON::PP - local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP + local $ENV{PERL_JSON_BACKEND} if not $ENV{PERL_CORE}; # ensure we always get JSON::PP note ''; is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); @@ -149,7 +150,7 @@ SKIP: { { # JSON tests with JSON::PP, take 2 - local $ENV{PERL_JSON_BACKEND} = 0; # request JSON::PP + local $ENV{PERL_JSON_BACKEND} = 0 if not $ENV{PERL_CORE}; # request JSON::PP note ''; is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); @@ -160,7 +161,7 @@ SKIP: { { # JSON tests with JSON::PP, take 3 - local $ENV{PERL_JSON_BACKEND} = 'JSON::PP'; # request JSON::PP + local $ENV{PERL_JSON_BACKEND} = 'JSON::PP' if not $ENV{PERL_CORE}; # request JSON::PP note ''; is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); @@ -171,6 +172,7 @@ SKIP: { SKIP: { note ''; + skip 'these tests are for cpan builds only', 2 if $ENV{PERL_CORE}; skip "JSON module version 2.5 not installed", 2 unless eval "require JSON; JSON->VERSION(2.5); 1"; local $ENV{PERL_JSON_BACKEND} = 1; diff --git a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm index 84f6624..787353b 100644 --- a/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm +++ b/cpan/Pod-Perldoc/lib/Pod/Perldoc.pm @@ -12,7 +12,7 @@ use File::Spec::Functions qw(catfile catdir splitdir); use vars qw($VERSION @Pagers $Bindir $Pod2man $Temp_Files_Created $Temp_File_Lifetime ); -$VERSION = '3.25_02'; # patched in perl5.git +$VERSION = '3.25_03'; # patched in perl5.git $VERSION =~ s/_//; #.......................................................................... @@ -575,6 +575,9 @@ sub find_good_formatter_class { my @class_list = @{ $self->{'formatter_classes'} || [] }; $self->die( "WHAT? Nothing in the formatter class list!?" ) unless @class_list; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + my $good_class_found; foreach my $c (@class_list) { DEBUG > 4 and print "Trying to load $c...\n"; @@ -1006,6 +1009,8 @@ sub new_translator { # $tr = $self->new_translator($lang); my $self = shift; my $lang = shift; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; my $pack = 'POD2::' . uc($lang); eval "require $pack"; if ( !$@ && $pack->can('new') ) { diff --git a/cpan/Sys-Syslog/Syslog.pm b/cpan/Sys-Syslog/Syslog.pm index 25164af..28f36c7 100644 --- a/cpan/Sys-Syslog/Syslog.pm +++ b/cpan/Sys-Syslog/Syslog.pm @@ -11,7 +11,7 @@ require 5.005; { no strict 'vars'; - $VERSION = '0.33'; + $VERSION = '0.33_01'; %EXPORT_TAGS = ( standard => [qw(openlog syslog closelog setlogmask)], @@ -888,6 +888,8 @@ sub silent_eval (&) { sub can_load { my ($module, $verbose) = @_; local($SIG{__DIE__}, $SIG{__WARN__}, $@); + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; my $loaded = eval "use $module; 1"; warn $@ if not $loaded and $verbose; return $loaded diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove index 6637cc4..d71b238 100644 --- a/cpan/Test-Harness/bin/prove +++ b/cpan/Test-Harness/bin/prove @@ -1,5 +1,6 @@ #!/usr/bin/perl -w +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use warnings; use App::Prove; diff --git a/cpan/Test-Harness/lib/App/Prove.pm b/cpan/Test-Harness/lib/App/Prove.pm index c321659..32eb59c 100644 --- a/cpan/Test-Harness/lib/App/Prove.pm +++ b/cpan/Test-Harness/lib/App/Prove.pm @@ -22,7 +22,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/App/Prove/State.pm b/cpan/Test-Harness/lib/App/Prove/State.pm index fbd4786..e352fb3 100644 --- a/cpan/Test-Harness/lib/App/Prove/State.pm +++ b/cpan/Test-Harness/lib/App/Prove/State.pm @@ -29,7 +29,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/App/Prove/State/Result.pm b/cpan/Test-Harness/lib/App/Prove/State/Result.pm index 4d4b991..931e52b 100644 --- a/cpan/Test-Harness/lib/App/Prove/State/Result.pm +++ b/cpan/Test-Harness/lib/App/Prove/State/Result.pm @@ -18,7 +18,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm b/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm index 3b2fc72..4819ed8 100644 --- a/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm +++ b/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm @@ -13,7 +13,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Base.pm b/cpan/Test-Harness/lib/TAP/Base.pm index a02f60a..e6ea22d 100644 --- a/cpan/Test-Harness/lib/TAP/Base.pm +++ b/cpan/Test-Harness/lib/TAP/Base.pm @@ -16,7 +16,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; use constant GOT_TIME_HIRES => do { eval 'use Time::HiRes qw(time);'; diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Base.pm b/cpan/Test-Harness/lib/TAP/Formatter/Base.pm index 9594a29..a2fa3ea 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Base.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Base.pm @@ -62,7 +62,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Color.pm b/cpan/Test-Harness/lib/TAP/Formatter/Color.pm index 43084d1..728247c 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Color.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Color.pm @@ -75,7 +75,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console.pm index 90d092b..8cc3060 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm index 80736fc..c8cdf7c 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm @@ -45,7 +45,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm index c6a4fe3..8a15812 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm @@ -30,7 +30,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/File.pm b/cpan/Test-Harness/lib/TAP/Formatter/File.pm index 455e712..45d93a1 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/File.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/File.pm @@ -17,7 +17,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm index 7671fa9..371d7d5 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm @@ -14,7 +14,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/Session.pm index b5dc504..2924276 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Session.pm @@ -27,7 +27,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 METHODS diff --git a/cpan/Test-Harness/lib/TAP/Harness.pm b/cpan/Test-Harness/lib/TAP/Harness.pm index e66ffc7..c916a32 100644 --- a/cpan/Test-Harness/lib/TAP/Harness.pm +++ b/cpan/Test-Harness/lib/TAP/Harness.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; $ENV{HARNESS_ACTIVE} = 1; $ENV{HARNESS_VERSION} = $VERSION; diff --git a/cpan/Test-Harness/lib/TAP/Harness/Env.pm b/cpan/Test-Harness/lib/TAP/Harness/Env.pm index 4307179..0a328da 100644 --- a/cpan/Test-Harness/lib/TAP/Harness/Env.pm +++ b/cpan/Test-Harness/lib/TAP/Harness/Env.pm @@ -7,7 +7,7 @@ use constant IS_VMS => ( $^O eq 'VMS' ); use TAP::Object; use Text::ParseWords qw/shellwords/; -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; # Get the parts of @INC which are changed from the stock list AND # preserve reordering of stock directories. diff --git a/cpan/Test-Harness/lib/TAP/Object.pm b/cpan/Test-Harness/lib/TAP/Object.pm index fd7044f..5195bd7 100644 --- a/cpan/Test-Harness/lib/TAP/Object.pm +++ b/cpan/Test-Harness/lib/TAP/Object.pm @@ -13,7 +13,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser.pm b/cpan/Test-Harness/lib/TAP/Parser.pm index 53d5afe..f688c72 100644 --- a/cpan/Test-Harness/lib/TAP/Parser.pm +++ b/cpan/Test-Harness/lib/TAP/Parser.pm @@ -31,7 +31,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; my $DEFAULT_TAP_VERSION = 12; my $MAX_TAP_VERSION = 13; diff --git a/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm b/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm index 099bcbb..94289a4 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm @@ -16,7 +16,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm b/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm index a640646..e4ab7b4 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm @@ -18,7 +18,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm index bfdb3e1..93b8a7f 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm index a8467e6..ce7000b 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm index a851737..cf84299 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm index bd319d2..f985279 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm b/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm index 3ee87a5..7a80031 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm b/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm index a53f830..55701f8 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm @@ -21,7 +21,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result.pm b/cpan/Test-Harness/lib/TAP/Parser/Result.pm index 7a6e24e..270a24a 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result.pm @@ -28,7 +28,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm index 6a6eecf..d5c7e8c 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm index c9e3c04..a519634 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm index 4a1dbbd..0b2b336 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm index 649b4b4..40380e7 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm index d913919..46b63e9 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm index 6b25f332..8993523 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm index 4a1a73d..28bab59 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm index 51bc16c..e93b437 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm @@ -15,7 +15,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm b/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm index 8c304bd..c45074d 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm @@ -33,7 +33,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head2 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm index 1f3ada5..2eea054 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm @@ -17,7 +17,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm index 162d8a4..c5bb354 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm @@ -14,7 +14,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm index bf7fbcb..768ade9 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm @@ -14,7 +14,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Source.pm b/cpan/Test-Harness/lib/TAP/Parser/Source.pm index ff1ad24..1b4c211 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Source.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Source.pm @@ -18,7 +18,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm index 1cbd0e8..e2d1cf9 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm @@ -16,7 +16,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm index b7a9fbd..a4df5dab 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm index 26d0c03..30187a0 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm index a38841d..05b8dcb 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm index fd153f9..7d238cd 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm @@ -25,7 +25,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm index dddb54b..6dfc815 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm @@ -20,7 +20,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm index dc82d90..3381fa1 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm @@ -5,7 +5,7 @@ use warnings; use base 'TAP::Object'; -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; # TODO: # Handle blessed object syntax diff --git a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm index 0b4a744..4897aa8 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm @@ -5,7 +5,7 @@ use warnings; use base 'TAP::Object'; -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x; my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x; diff --git a/cpan/Test-Harness/lib/Test/Harness.pm b/cpan/Test-Harness/lib/Test/Harness.pm index 95d1b4b..fe9d304 100644 --- a/cpan/Test-Harness/lib/Test/Harness.pm +++ b/cpan/Test-Harness/lib/Test/Harness.pm @@ -35,7 +35,7 @@ Version 3.36 =cut -our $VERSION = '3.36'; +our $VERSION = '3.36_01'; # Backwards compatibility for exportable variable names. *verbose = *Verbose; diff --git a/cpan/bignum/lib/Math/BigFloat/Trace.pm b/cpan/bignum/lib/Math/BigFloat/Trace.pm index 5e043f5..634d967 100644 --- a/cpan/bignum/lib/Math/BigFloat/Trace.pm +++ b/cpan/bignum/lib/Math/BigFloat/Trace.pm @@ -13,7 +13,7 @@ our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale); our @ISA = qw(Exporter Math::BigFloat); -our $VERSION = '0.42'; +our $VERSION = '0.42_01'; use overload; # inherit overload from BigFloat diff --git a/cpan/bignum/lib/Math/BigInt/Trace.pm b/cpan/bignum/lib/Math/BigInt/Trace.pm index 646c05f..4e47497 100644 --- a/cpan/bignum/lib/Math/BigInt/Trace.pm +++ b/cpan/bignum/lib/Math/BigInt/Trace.pm @@ -13,7 +13,7 @@ our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale); our @ISA = qw(Exporter Math::BigInt); -our $VERSION = '0.42'; +our $VERSION = '0.42_01'; use overload; # inherit overload from BigInt diff --git a/cpan/bignum/lib/bigint.pm b/cpan/bignum/lib/bigint.pm index a47191e..bc1ebe3 100644 --- a/cpan/bignum/lib/bigint.pm +++ b/cpan/bignum/lib/bigint.pm @@ -4,7 +4,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '0.42'; +our $VERSION = '0.42_01'; use Exporter; our @ISA = qw( Exporter ); @@ -315,6 +315,8 @@ sub import { } else { # see if we can find Math::BigInt::Lite if (!defined $a && !defined $p) { # rounding won't work to well + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; if (eval { require Math::BigInt::Lite; 1 }) { @import = (); # :constant in Lite, not MBI Math::BigInt::Lite->import(':constant'); diff --git a/cpan/bignum/lib/bignum.pm b/cpan/bignum/lib/bignum.pm index 90d5db5..394b147 100644 --- a/cpan/bignum/lib/bignum.pm +++ b/cpan/bignum/lib/bignum.pm @@ -4,7 +4,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '0.42'; +our $VERSION = '0.42_01'; use Exporter; our @ISA = qw( bigint ); @@ -157,6 +157,8 @@ sub import { else { # see if we can find Math::BigInt::Lite if (!defined $a && !defined $p) { # rounding won't work to well + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; if (eval { require Math::BigInt::Lite; 1 }) { @import = (); # :constant in Lite, not MBI Math::BigInt::Lite->import(':constant'); diff --git a/cpan/bignum/lib/bigrat.pm b/cpan/bignum/lib/bigrat.pm index 79fe84d..260973b 100644 --- a/cpan/bignum/lib/bigrat.pm +++ b/cpan/bignum/lib/bigrat.pm @@ -4,7 +4,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '0.42'; +our $VERSION = '0.42_01'; use Exporter; our @ISA = qw( bigint ); @@ -150,6 +150,8 @@ sub import { else { # see if we can find Math::BigInt::Lite if (!defined $a && !defined $p) { # rounding won't work to well + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; if (eval { require Math::BigInt::Lite; 1 }) { @import = (); # :constant in Lite, not MBI Math::BigInt::Lite->import(':constant'); diff --git a/cpan/libnet/lib/Net/Cmd.pm b/cpan/libnet/lib/Net/Cmd.pm index 2242600..3a5d4d9 100644 --- a/cpan/libnet/lib/Net/Cmd.pm +++ b/cpan/libnet/lib/Net/Cmd.pm @@ -28,7 +28,7 @@ BEGIN { } } -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our @ISA = qw(Exporter); our @EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING); diff --git a/cpan/libnet/lib/Net/Config.pm b/cpan/libnet/lib/Net/Config.pm index 3aa547e..3e4ab0a 100644 --- a/cpan/libnet/lib/Net/Config.pm +++ b/cpan/libnet/lib/Net/Config.pm @@ -20,11 +20,16 @@ use Socket qw(inet_aton inet_ntoa); our @EXPORT = qw(%NetConfig); our @ISA = qw(Net::LocalCfg Exporter); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our($CONFIGURE, $LIBNET_CFG); -eval { local $SIG{__DIE__}; require Net::LocalCfg }; +eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + local $SIG{__DIE__}; + require Net::LocalCfg; +}; our %NetConfig = ( nntp_hosts => [], diff --git a/cpan/libnet/lib/Net/Domain.pm b/cpan/libnet/lib/Net/Domain.pm index e2be3b1..53822da 100644 --- a/cpan/libnet/lib/Net/Domain.pm +++ b/cpan/libnet/lib/Net/Domain.pm @@ -21,7 +21,7 @@ use Net::Config; our @ISA = qw(Exporter); our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; my ($host, $domain, $fqdn) = (undef, undef, undef); diff --git a/cpan/libnet/lib/Net/FTP.pm b/cpan/libnet/lib/Net/FTP.pm index c0904c6..f3beb25 100644 --- a/cpan/libnet/lib/Net/FTP.pm +++ b/cpan/libnet/lib/Net/FTP.pm @@ -25,7 +25,7 @@ use Net::Config; use Socket; use Time::Local; -our $VERSION = '3.08'; +our $VERSION = '3.08_01'; our $IOCLASS; my $family_key; diff --git a/cpan/libnet/lib/Net/FTP/A.pm b/cpan/libnet/lib/Net/FTP/A.pm index a1ae30b..cdbd768 100644 --- a/cpan/libnet/lib/Net/FTP/A.pm +++ b/cpan/libnet/lib/Net/FTP/A.pm @@ -13,7 +13,7 @@ use Carp; use Net::FTP::dataconn; our @ISA = qw(Net::FTP::dataconn); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our $buf; diff --git a/cpan/libnet/lib/Net/FTP/E.pm b/cpan/libnet/lib/Net/FTP/E.pm index cf09d90..d3cb820 100644 --- a/cpan/libnet/lib/Net/FTP/E.pm +++ b/cpan/libnet/lib/Net/FTP/E.pm @@ -8,6 +8,6 @@ use warnings; use Net::FTP::I; our @ISA = qw(Net::FTP::I); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; 1; diff --git a/cpan/libnet/lib/Net/FTP/I.pm b/cpan/libnet/lib/Net/FTP/I.pm index b014f08..3bd1c0f 100644 --- a/cpan/libnet/lib/Net/FTP/I.pm +++ b/cpan/libnet/lib/Net/FTP/I.pm @@ -13,7 +13,7 @@ use Carp; use Net::FTP::dataconn; our @ISA = qw(Net::FTP::dataconn); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our $buf; diff --git a/cpan/libnet/lib/Net/FTP/L.pm b/cpan/libnet/lib/Net/FTP/L.pm index d13efe7..630db0d 100644 --- a/cpan/libnet/lib/Net/FTP/L.pm +++ b/cpan/libnet/lib/Net/FTP/L.pm @@ -8,6 +8,6 @@ use warnings; use Net::FTP::I; our @ISA = qw(Net::FTP::I); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; 1; diff --git a/cpan/libnet/lib/Net/FTP/dataconn.pm b/cpan/libnet/lib/Net/FTP/dataconn.pm index 8d82030..ba0891b 100644 --- a/cpan/libnet/lib/Net/FTP/dataconn.pm +++ b/cpan/libnet/lib/Net/FTP/dataconn.pm @@ -13,7 +13,7 @@ use Carp; use Errno; use Net::Cmd; -our $VERSION = '3.08'; +our $VERSION = '3.08_01'; $Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn"; our @ISA = $Net::FTP::IOCLASS; diff --git a/cpan/libnet/lib/Net/NNTP.pm b/cpan/libnet/lib/Net/NNTP.pm index 0d690de..675b1e6 100644 --- a/cpan/libnet/lib/Net/NNTP.pm +++ b/cpan/libnet/lib/Net/NNTP.pm @@ -21,7 +21,7 @@ use Net::Cmd; use Net::Config; use Time::Local; -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; # Code for detecting if we can use SSL my $ssl_class = eval { diff --git a/cpan/libnet/lib/Net/Netrc.pm b/cpan/libnet/lib/Net/Netrc.pm index 4945604..ba60ae6 100644 --- a/cpan/libnet/lib/Net/Netrc.pm +++ b/cpan/libnet/lib/Net/Netrc.pm @@ -18,7 +18,7 @@ use warnings; use Carp; use FileHandle; -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our $TESTING; diff --git a/cpan/libnet/lib/Net/POP3.pm b/cpan/libnet/lib/Net/POP3.pm index bccdfb0..ab8121e 100644 --- a/cpan/libnet/lib/Net/POP3.pm +++ b/cpan/libnet/lib/Net/POP3.pm @@ -20,7 +20,7 @@ use IO::Socket; use Net::Cmd; use Net::Config; -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; # Code for detecting if we can use SSL my $ssl_class = eval { diff --git a/cpan/libnet/lib/Net/SMTP.pm b/cpan/libnet/lib/Net/SMTP.pm index 6d3e4c2..0130a2f 100644 --- a/cpan/libnet/lib/Net/SMTP.pm +++ b/cpan/libnet/lib/Net/SMTP.pm @@ -21,7 +21,7 @@ use Net::Cmd; use Net::Config; use Socket; -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; # Code for detecting if we can use SSL my $ssl_class = eval { diff --git a/cpan/libnet/lib/Net/Time.pm b/cpan/libnet/lib/Net/Time.pm index fae93f8..6118ad1 100644 --- a/cpan/libnet/lib/Net/Time.pm +++ b/cpan/libnet/lib/Net/Time.pm @@ -24,7 +24,7 @@ use Net::Config; our @ISA = qw(Exporter); our @EXPORT_OK = qw(inet_time inet_daytime); -our $VERSION = "3.08"; +our $VERSION = "3.08_01"; our $TIMEOUT = 120; diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp index e2ac71a..d596cdf 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp @@ -1,5 +1,6 @@ #!perl use 5.006; +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; eval { require ExtUtils::ParseXS; diff --git a/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm b/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm index f13d546..a877fbf 100644 --- a/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm +++ b/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm @@ -11,7 +11,7 @@ use vars qw( @ISA $VERSION $MATCH_SUPERS $USING_LANGUAGE_TAGS BEGIN { unless(defined &DEBUG) { *DEBUG = sub () {0} } } # define the constant 'DEBUG' at compile-time -$VERSION = "1.05"; +$VERSION = "1.05_01"; @ISA = (); use I18N::LangTags qw(alternate_language_tags locale2language_tag); @@ -145,6 +145,8 @@ sub _try_use { # Basically a wrapper around "require Modulename" print " About to use $module ...\n" if DEBUG; { local $SIG{'__DIE__'}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; eval "require $module"; # used to be "use $module", but no point in that. } if($@) { diff --git a/dist/IO/IO.pm b/dist/IO/IO.pm index de3e991..44b312b 100644 --- a/dist/IO/IO.pm +++ b/dist/IO/IO.pm @@ -7,7 +7,7 @@ use Carp; use strict; use warnings; -our $VERSION = "1.36"; +our $VERSION = "1.36_01"; XSLoader::load 'IO', $VERSION; sub import { @@ -18,6 +18,8 @@ sub import { my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir); + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l) or croak $@; } diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pm b/dist/Locale-Maketext/lib/Locale/Maketext.pm index 24c31ea..e73c149 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext.pm +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pm @@ -27,7 +27,7 @@ BEGIN { } -$VERSION = '1.26'; +$VERSION = '1.26_01'; @ISA = (); $MATCH_SUPERS = 1; @@ -449,6 +449,8 @@ sub _try_use { # Basically a wrapper around "require Modulename" local $SIG{'__DIE__'}; local $@; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; eval "require $module"; # used to be "use $module", but no point in that. if($@) { diff --git a/dist/Module-CoreList/Changes b/dist/Module-CoreList/Changes index b254182..91107a6 100644 --- a/dist/Module-CoreList/Changes +++ b/dist/Module-CoreList/Changes @@ -1,8 +1,38 @@ +5.20170114_24 + - Updated for v5.24.1 + +5.20161220 + - Updated for v5.25.8 + +5.20161120 + - Updated for v5.25.7 + +5.20161020 + - Updated for v5.25.6 + +5.20160920 + - Updated for v5.25.5 + +5.20160820 + - Updated for v5.25.4 + +5.20160720 + - Updated for v5.25.3 + +5.20160620 + - Updated for v5.25.2 + +5.20160520 + - fixed edge-case checking in is_core() (checking for a specific + version of a module returned false for the first perl release + that contained it) + - Updated for v5.25.1 + 5.20160429 - Updated for v5.22.2 5.20160320 - - Updated vor v5.23.9 + - Updated for v5.23.9 5.20160228 - [perl #127624] corelist: wrong Digest::SHA version in 5.18.4 diff --git a/dist/Module-CoreList/corelist b/dist/Module-CoreList/corelist index aa4a945..bbe61cc 100644 --- a/dist/Module-CoreList/corelist +++ b/dist/Module-CoreList/corelist @@ -130,6 +130,7 @@ requested perl versions. =cut +BEGIN { pop @INC if $INC[-1] eq '.' } use Module::CoreList; use Getopt::Long qw(:config no_ignore_case); use Pod::Usage; diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm index 1fcae7b..6cbf8d0 100644 --- a/dist/Module-CoreList/lib/Module/CoreList.pm +++ b/dist/Module-CoreList/lib/Module/CoreList.pm @@ -4,7 +4,7 @@ use vars qw/$VERSION %released %version %families %upstream %bug_tracker %deprecated %delta/; use Module::CoreList::TieHashDelta; use version; -$VERSION = '5.20160506'; +$VERSION = '5.20170114_24'; sub _released_order { # Sort helper, to make '?' sort after everything else (substr($released{$a}, 0, 1) eq "?") @@ -293,6 +293,16 @@ sub changes_between { 5.023009 => '2016-03-20', 5.022002 => '2016-04-29', 5.024000 => '2016-05-09', + 5.025000 => '2016-05-09', + 5.025001 => '2016-05-20', + 5.025002 => '2016-06-20', + 5.025003 => '2016-07-20', + 5.025004 => '2016-08-20', + 5.025005 => '2016-09-20', + 5.025006 => '2016-10-20', + 5.025007 => '2016-11-20', + 5.025008 => '2016-12-20', + 5.024001 => '2017-01-14', ); for my $version ( sort { $a <=> $b } keys %released ) { @@ -10008,9 +10018,6 @@ for my $version ( sort { $a <=> $b } keys %released ) { 'Module::CoreList::TieHashDelta'=> '5.021001_01', 'Module::CoreList::Utils'=> '5.021001_01', 'Module::Metadata' => '1.000024', - 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef, - 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef, - 'Module::Metadata::corpus::BOMTest::UTF8'=> '1', 'NDBM_File' => '1.13', 'Net::Config' => '1.14', 'Net::SMTP' => '2.34', @@ -12391,6 +12398,7 @@ for my $version ( sort { $a <=> $b } keys %released ) { 'File::Copy' => '2.31', 'File::Path' => '2.12_01', 'File::Spec::AmigaOS' => '3.64', + 'IO::Handle' => '1.36', 'Module::CoreList' => '5.20160506', 'Module::CoreList::TieHashDelta'=> '5.20160506', 'Module::CoreList::Utils'=> '5.20160506', @@ -12406,6 +12414,1278 @@ for my $version ( sort { $a <=> $b } keys %released ) { 'Time::HiRes' => '1.9733', 'threads' => '2.07', 'threads::shared' => '1.51', + 'locale' => '1.09', + }, + removed => { + } + }, + 5.025000 => { + delta_from => 5.024, + changed => { + 'B::Op_private' => '5.025000', + 'Config' => '5.025', + 'Module::CoreList' => '5.20160507', + 'Module::CoreList::TieHashDelta'=> '5.20160507', + 'Module::CoreList::Utils'=> '5.20160507', + 'feature' => '1.43', + }, + removed => { + } + }, + 5.025001 => { + delta_from => 5.025, + changed => { + 'Archive::Tar' => '2.08', + 'Archive::Tar::Constant'=> '2.08', + 'Archive::Tar::File' => '2.08', + 'B::Op_private' => '5.025001', + 'Carp' => '1.41', + 'Carp::Heavy' => '1.41', + 'Config' => '5.025001', + 'Config::Perl::V' => '0.26', + 'DB_File' => '1.838', + 'Digest::MD5' => '2.55', + 'IPC::Cmd' => '0.94', + 'IPC::Msg' => '2.07', + 'IPC::Semaphore' => '2.07', + 'IPC::SharedMem' => '2.07', + 'IPC::SysV' => '2.07', + 'List::Util' => '1.45_01', + 'List::Util::XS' => '1.45_01', + 'Locale::Codes' => '3.38', + 'Locale::Codes::Constants'=> '3.38', + 'Locale::Codes::Country'=> '3.38', + 'Locale::Codes::Country_Codes'=> '3.38', + 'Locale::Codes::Country_Retired'=> '3.38', + 'Locale::Codes::Currency'=> '3.38', + 'Locale::Codes::Currency_Codes'=> '3.38', + 'Locale::Codes::Currency_Retired'=> '3.38', + 'Locale::Codes::LangExt'=> '3.38', + 'Locale::Codes::LangExt_Codes'=> '3.38', + 'Locale::Codes::LangExt_Retired'=> '3.38', + 'Locale::Codes::LangFam'=> '3.38', + 'Locale::Codes::LangFam_Codes'=> '3.38', + 'Locale::Codes::LangFam_Retired'=> '3.38', + 'Locale::Codes::LangVar'=> '3.38', + 'Locale::Codes::LangVar_Codes'=> '3.38', + 'Locale::Codes::LangVar_Retired'=> '3.38', + 'Locale::Codes::Language'=> '3.38', + 'Locale::Codes::Language_Codes'=> '3.38', + 'Locale::Codes::Language_Retired'=> '3.38', + 'Locale::Codes::Script' => '3.38', + 'Locale::Codes::Script_Codes'=> '3.38', + 'Locale::Codes::Script_Retired'=> '3.38', + 'Locale::Country' => '3.38', + 'Locale::Currency' => '3.38', + 'Locale::Language' => '3.38', + 'Locale::Maketext' => '1.27', + 'Locale::Script' => '3.38', + 'Module::CoreList' => '5.20160520', + 'Module::CoreList::TieHashDelta'=> '5.20160520', + 'Module::CoreList::Utils'=> '5.20160520', + 'Module::Metadata' => '1.000032', + 'POSIX' => '1.69', + 'Scalar::Util' => '1.45_01', + 'Sub::Util' => '1.45_01', + 'Sys::Syslog' => '0.34', + 'Term::ANSIColor' => '4.05', + 'Test2' => '1.302015', + 'Test2::API' => '1.302015', + 'Test2::API::Breakage' => '1.302015', + 'Test2::API::Context' => '1.302015', + 'Test2::API::Instance' => '1.302015', + 'Test2::API::Stack' => '1.302015', + 'Test2::Event' => '1.302015', + 'Test2::Event::Bail' => '1.302015', + 'Test2::Event::Diag' => '1.302015', + 'Test2::Event::Exception'=> '1.302015', + 'Test2::Event::Note' => '1.302015', + 'Test2::Event::Ok' => '1.302015', + 'Test2::Event::Plan' => '1.302015', + 'Test2::Event::Skip' => '1.302015', + 'Test2::Event::Subtest' => '1.302015', + 'Test2::Event::Waiting' => '1.302015', + 'Test2::Formatter' => '1.302015', + 'Test2::Formatter::TAP' => '1.302015', + 'Test2::Hub' => '1.302015', + 'Test2::Hub::Interceptor'=> '1.302015', + 'Test2::Hub::Interceptor::Terminator'=> '1.302015', + 'Test2::Hub::Subtest' => '1.302015', + 'Test2::IPC' => '1.302015', + 'Test2::IPC::Driver' => '1.302015', + 'Test2::IPC::Driver::Files'=> '1.302015', + 'Test2::Util' => '1.302015', + 'Test2::Util::ExternalMeta'=> '1.302015', + 'Test2::Util::HashBase' => '1.302015', + 'Test2::Util::Trace' => '1.302015', + 'Test::Builder' => '1.302015', + 'Test::Builder::Formatter'=> '1.302015', + 'Test::Builder::Module' => '1.302015', + 'Test::Builder::Tester' => '1.302015', + 'Test::Builder::Tester::Color'=> '1.302015', + 'Test::Builder::TodoDiag'=> '1.302015', + 'Test::More' => '1.302015', + 'Test::Simple' => '1.302015', + 'Test::Tester' => '1.302015', + 'Test::Tester::Capture' => '1.302015', + 'Test::Tester::CaptureRunner'=> '1.302015', + 'Test::Tester::Delegate'=> '1.302015', + 'Test::use::ok' => '1.302015', + 'XS::APItest' => '0.81', + '_charnames' => '1.44', + 'charnames' => '1.44', + 'ok' => '1.302015', + 'perlfaq' => '5.021011', + 're' => '0.33', + 'threads' => '2.08', + 'threads::shared' => '1.52', + }, + removed => { + } + }, + 5.025002 => { + delta_from => 5.025001, + changed => { + 'App::Cpan' => '1.64', + 'B::Op_private' => '5.025002', + 'CPAN' => '2.14', + 'CPAN::Distribution' => '2.12', + 'CPAN::FTP' => '5.5007', + 'CPAN::FirstTime' => '5.5309', + 'CPAN::HandleConfig' => '5.5007', + 'CPAN::Index' => '2.12', + 'CPAN::Mirrors' => '2.12', + 'CPAN::Plugin' => '0.96', + 'CPAN::Shell' => '5.5006', + 'Config' => '5.025002', + 'Cwd' => '3.64', + 'Devel::Peek' => '1.24', + 'DynaLoader' => '1.39', + 'ExtUtils::Command' => '7.18', + 'ExtUtils::Command::MM' => '7.18', + 'ExtUtils::Liblist' => '7.18', + 'ExtUtils::Liblist::Kid'=> '7.18', + 'ExtUtils::MM' => '7.18', + 'ExtUtils::MM_AIX' => '7.18', + 'ExtUtils::MM_Any' => '7.18', + 'ExtUtils::MM_BeOS' => '7.18', + 'ExtUtils::MM_Cygwin' => '7.18', + 'ExtUtils::MM_DOS' => '7.18', + 'ExtUtils::MM_Darwin' => '7.18', + 'ExtUtils::MM_MacOS' => '7.18', + 'ExtUtils::MM_NW5' => '7.18', + 'ExtUtils::MM_OS2' => '7.18', + 'ExtUtils::MM_QNX' => '7.18', + 'ExtUtils::MM_UWIN' => '7.18', + 'ExtUtils::MM_Unix' => '7.18', + 'ExtUtils::MM_VMS' => '7.18', + 'ExtUtils::MM_VOS' => '7.18', + 'ExtUtils::MM_Win32' => '7.18', + 'ExtUtils::MM_Win95' => '7.18', + 'ExtUtils::MY' => '7.18', + 'ExtUtils::MakeMaker' => '7.18', + 'ExtUtils::MakeMaker::Config'=> '7.18', + 'ExtUtils::MakeMaker::Locale'=> '7.18', + 'ExtUtils::MakeMaker::version'=> '7.18', + 'ExtUtils::MakeMaker::version::regex'=> '7.18', + 'ExtUtils::Miniperl' => '1.06', + 'ExtUtils::Mkbootstrap' => '7.18', + 'ExtUtils::Mksymlists' => '7.18', + 'ExtUtils::ParseXS' => '3.32', + 'ExtUtils::ParseXS::Constants'=> '3.32', + 'ExtUtils::ParseXS::CountLines'=> '3.32', + 'ExtUtils::ParseXS::Eval'=> '3.32', + 'ExtUtils::ParseXS::Utilities'=> '3.32', + 'ExtUtils::Typemaps' => '3.32', + 'ExtUtils::Typemaps::Cmd'=> '3.32', + 'ExtUtils::Typemaps::InputMap'=> '3.32', + 'ExtUtils::Typemaps::OutputMap'=> '3.32', + 'ExtUtils::Typemaps::Type'=> '3.32', + 'ExtUtils::testlib' => '7.18', + 'File::Copy' => '2.32', + 'File::Glob' => '1.27', + 'File::Spec' => '3.64', + 'File::Spec::Cygwin' => '3.64', + 'File::Spec::Epoc' => '3.64', + 'File::Spec::Functions' => '3.64', + 'File::Spec::Mac' => '3.64', + 'File::Spec::OS2' => '3.64', + 'File::Spec::Unix' => '3.64', + 'File::Spec::VMS' => '3.64', + 'File::Spec::Win32' => '3.64', + 'FileHandle' => '2.03', + 'Getopt::Long' => '2.49', + 'HTTP::Tiny' => '0.058', + 'JSON::PP' => '2.27400', + 'Locale::Codes' => '3.39', + 'Locale::Codes::Constants'=> '3.39', + 'Locale::Codes::Country'=> '3.39', + 'Locale::Codes::Country_Codes'=> '3.39', + 'Locale::Codes::Country_Retired'=> '3.39', + 'Locale::Codes::Currency'=> '3.39', + 'Locale::Codes::Currency_Codes'=> '3.39', + 'Locale::Codes::Currency_Retired'=> '3.39', + 'Locale::Codes::LangExt'=> '3.39', + 'Locale::Codes::LangExt_Codes'=> '3.39', + 'Locale::Codes::LangExt_Retired'=> '3.39', + 'Locale::Codes::LangFam'=> '3.39', + 'Locale::Codes::LangFam_Codes'=> '3.39', + 'Locale::Codes::LangFam_Retired'=> '3.39', + 'Locale::Codes::LangVar'=> '3.39', + 'Locale::Codes::LangVar_Codes'=> '3.39', + 'Locale::Codes::LangVar_Retired'=> '3.39', + 'Locale::Codes::Language'=> '3.39', + 'Locale::Codes::Language_Codes'=> '3.39', + 'Locale::Codes::Language_Retired'=> '3.39', + 'Locale::Codes::Script' => '3.39', + 'Locale::Codes::Script_Codes'=> '3.39', + 'Locale::Codes::Script_Retired'=> '3.39', + 'Locale::Country' => '3.39', + 'Locale::Currency' => '3.39', + 'Locale::Language' => '3.39', + 'Locale::Script' => '3.39', + 'Module::CoreList' => '5.20160620', + 'Module::CoreList::TieHashDelta'=> '5.20160620', + 'Module::CoreList::Utils'=> '5.20160620', + 'Opcode' => '1.35', + 'POSIX' => '1.70', + 'Pod::Checker' => '1.73', + 'Pod::Functions' => '1.11', + 'Pod::Functions::Functions'=> '1.11', + 'Pod::Usage' => '1.69', + 'Test2' => '1.302026', + 'Test2::API' => '1.302026', + 'Test2::API::Breakage' => '1.302026', + 'Test2::API::Context' => '1.302026', + 'Test2::API::Instance' => '1.302026', + 'Test2::API::Stack' => '1.302026', + 'Test2::Event' => '1.302026', + 'Test2::Event::Bail' => '1.302026', + 'Test2::Event::Diag' => '1.302026', + 'Test2::Event::Exception'=> '1.302026', + 'Test2::Event::Generic' => '1.302026', + 'Test2::Event::Note' => '1.302026', + 'Test2::Event::Ok' => '1.302026', + 'Test2::Event::Plan' => '1.302026', + 'Test2::Event::Skip' => '1.302026', + 'Test2::Event::Subtest' => '1.302026', + 'Test2::Event::Waiting' => '1.302026', + 'Test2::Formatter' => '1.302026', + 'Test2::Formatter::TAP' => '1.302026', + 'Test2::Hub' => '1.302026', + 'Test2::Hub::Interceptor'=> '1.302026', + 'Test2::Hub::Interceptor::Terminator'=> '1.302026', + 'Test2::Hub::Subtest' => '1.302026', + 'Test2::IPC' => '1.302026', + 'Test2::IPC::Driver' => '1.302026', + 'Test2::IPC::Driver::Files'=> '1.302026', + 'Test2::Util' => '1.302026', + 'Test2::Util::ExternalMeta'=> '1.302026', + 'Test2::Util::HashBase' => '1.302026', + 'Test2::Util::Trace' => '1.302026', + 'Test::Builder' => '1.302026', + 'Test::Builder::Formatter'=> '1.302026', + 'Test::Builder::Module' => '1.302026', + 'Test::Builder::Tester' => '1.302026', + 'Test::Builder::Tester::Color'=> '1.302026', + 'Test::Builder::TodoDiag'=> '1.302026', + 'Test::More' => '1.302026', + 'Test::Simple' => '1.302026', + 'Test::Tester' => '1.302026', + 'Test::Tester::Capture' => '1.302026', + 'Test::Tester::CaptureRunner'=> '1.302026', + 'Test::Tester::Delegate'=> '1.302026', + 'Test::use::ok' => '1.302026', + 'Thread::Queue' => '3.11', + 'Time::HiRes' => '1.9734', + 'Unicode::UCD' => '0.65', + 'VMS::DCLsym' => '1.07', + 'XS::APItest' => '0.82', + 'diagnostics' => '1.35', + 'feature' => '1.44', + 'ok' => '1.302026', + 'threads' => '2.09', + }, + removed => { + } + }, + 5.025003 => { + delta_from => 5.025002, + changed => { + 'B::Op_private' => '5.025003', + 'Config' => '5.025003', + 'Data::Dumper' => '2.161', + 'Devel::PPPort' => '3.35', + 'Encode' => '2.84', + 'Encode::MIME::Header' => '2.23', + 'Encode::MIME::Header::ISO_2022_JP'=> '1.07', + 'ExtUtils::ParseXS' => '3.33', + 'ExtUtils::ParseXS::Constants'=> '3.33', + 'ExtUtils::ParseXS::CountLines'=> '3.33', + 'ExtUtils::ParseXS::Eval'=> '3.33', + 'ExtUtils::ParseXS::Utilities'=> '3.33', + 'ExtUtils::Typemaps' => '3.33', + 'ExtUtils::Typemaps::Cmd'=> '3.33', + 'ExtUtils::Typemaps::InputMap'=> '3.33', + 'ExtUtils::Typemaps::OutputMap'=> '3.33', + 'ExtUtils::Typemaps::Type'=> '3.33', + 'Hash::Util' => '0.20', + 'Math::BigFloat' => '1.999726', + 'Math::BigFloat::Trace' => '0.43', + 'Math::BigInt' => '1.999726', + 'Math::BigInt::Calc' => '1.999726', + 'Math::BigInt::CalcEmu' => '1.999726', + 'Math::BigInt::FastCalc'=> '0.42', + 'Math::BigInt::Trace' => '0.43', + 'Math::BigRat' => '0.260804', + 'Module::CoreList' => '5.20160720', + 'Module::CoreList::TieHashDelta'=> '5.20160720', + 'Module::CoreList::Utils'=> '5.20160720', + 'Net::Cmd' => '3.09', + 'Net::Config' => '3.09', + 'Net::Domain' => '3.09', + 'Net::FTP' => '3.09', + 'Net::FTP::A' => '3.09', + 'Net::FTP::E' => '3.09', + 'Net::FTP::I' => '3.09', + 'Net::FTP::L' => '3.09', + 'Net::FTP::dataconn' => '3.09', + 'Net::NNTP' => '3.09', + 'Net::Netrc' => '3.09', + 'Net::POP3' => '3.09', + 'Net::SMTP' => '3.09', + 'Net::Time' => '3.09', + 'Parse::CPAN::Meta' => '1.4422', + 'Perl::OSType' => '1.010', + 'Test2' => '1.302045', + 'Test2::API' => '1.302045', + 'Test2::API::Breakage' => '1.302045', + 'Test2::API::Context' => '1.302045', + 'Test2::API::Instance' => '1.302045', + 'Test2::API::Stack' => '1.302045', + 'Test2::Event' => '1.302045', + 'Test2::Event::Bail' => '1.302045', + 'Test2::Event::Diag' => '1.302045', + 'Test2::Event::Exception'=> '1.302045', + 'Test2::Event::Generic' => '1.302045', + 'Test2::Event::Info' => '1.302045', + 'Test2::Event::Note' => '1.302045', + 'Test2::Event::Ok' => '1.302045', + 'Test2::Event::Plan' => '1.302045', + 'Test2::Event::Skip' => '1.302045', + 'Test2::Event::Subtest' => '1.302045', + 'Test2::Event::Waiting' => '1.302045', + 'Test2::Formatter' => '1.302045', + 'Test2::Formatter::TAP' => '1.302045', + 'Test2::Hub' => '1.302045', + 'Test2::Hub::Interceptor'=> '1.302045', + 'Test2::Hub::Interceptor::Terminator'=> '1.302045', + 'Test2::Hub::Subtest' => '1.302045', + 'Test2::IPC' => '1.302045', + 'Test2::IPC::Driver' => '1.302045', + 'Test2::IPC::Driver::Files'=> '1.302045', + 'Test2::Util' => '1.302045', + 'Test2::Util::ExternalMeta'=> '1.302045', + 'Test2::Util::HashBase' => '1.302045', + 'Test2::Util::Trace' => '1.302045', + 'Test::Builder' => '1.302045', + 'Test::Builder::Formatter'=> '1.302045', + 'Test::Builder::Module' => '1.302045', + 'Test::Builder::Tester' => '1.302045', + 'Test::Builder::Tester::Color'=> '1.302045', + 'Test::Builder::TodoDiag'=> '1.302045', + 'Test::More' => '1.302045', + 'Test::Simple' => '1.302045', + 'Test::Tester' => '1.302045', + 'Test::Tester::Capture' => '1.302045', + 'Test::Tester::CaptureRunner'=> '1.302045', + 'Test::Tester::Delegate'=> '1.302045', + 'Test::use::ok' => '1.302045', + 'Time::HiRes' => '1.9739', + 'Unicode' => '9.0.0', + 'Unicode::UCD' => '0.66', + 'XSLoader' => '0.22', + 'bigint' => '0.43', + 'bignum' => '0.43', + 'bigrat' => '0.43', + 'encoding' => '2.17_01', + 'encoding::warnings' => '0.13', + 'feature' => '1.45', + 'ok' => '1.302045', + 'version' => '0.9917', + 'version::regex' => '0.9917', + 'warnings' => '1.37', + }, + removed => { + } + }, + 5.025004 => { + delta_from => 5.025003, + changed => { + 'App::Cpan' => '1.64_01', + 'App::Prove' => '3.36_01', + 'App::Prove::State' => '3.36_01', + 'App::Prove::State::Result'=> '3.36_01', + 'App::Prove::State::Result::Test'=> '3.36_01', + 'Archive::Tar' => '2.10', + 'Archive::Tar::Constant'=> '2.10', + 'Archive::Tar::File' => '2.10', + 'B' => '1.63', + 'B::Concise' => '0.998', + 'B::Deparse' => '1.38', + 'B::Op_private' => '5.025004', + 'CPAN' => '2.14_01', + 'CPAN::Meta' => '2.150010', + 'CPAN::Meta::Converter' => '2.150010', + 'CPAN::Meta::Feature' => '2.150010', + 'CPAN::Meta::History' => '2.150010', + 'CPAN::Meta::Merge' => '2.150010', + 'CPAN::Meta::Prereqs' => '2.150010', + 'CPAN::Meta::Spec' => '2.150010', + 'CPAN::Meta::Validator' => '2.150010', + 'Carp' => '1.42', + 'Carp::Heavy' => '1.42', + 'Compress::Zlib' => '2.069_01', + 'Config' => '5.025004', + 'Config::Perl::V' => '0.27', + 'Cwd' => '3.65', + 'Digest' => '1.17_01', + 'Digest::SHA' => '5.96', + 'Encode' => '2.86', + 'Errno' => '1.26', + 'ExtUtils::Command' => '7.24', + 'ExtUtils::Command::MM' => '7.24', + 'ExtUtils::Liblist' => '7.24', + 'ExtUtils::Liblist::Kid'=> '7.24', + 'ExtUtils::MM' => '7.24', + 'ExtUtils::MM_AIX' => '7.24', + 'ExtUtils::MM_Any' => '7.24', + 'ExtUtils::MM_BeOS' => '7.24', + 'ExtUtils::MM_Cygwin' => '7.24', + 'ExtUtils::MM_DOS' => '7.24', + 'ExtUtils::MM_Darwin' => '7.24', + 'ExtUtils::MM_MacOS' => '7.24', + 'ExtUtils::MM_NW5' => '7.24', + 'ExtUtils::MM_OS2' => '7.24', + 'ExtUtils::MM_QNX' => '7.24', + 'ExtUtils::MM_UWIN' => '7.24', + 'ExtUtils::MM_Unix' => '7.24', + 'ExtUtils::MM_VMS' => '7.24', + 'ExtUtils::MM_VOS' => '7.24', + 'ExtUtils::MM_Win32' => '7.24', + 'ExtUtils::MM_Win95' => '7.24', + 'ExtUtils::MY' => '7.24', + 'ExtUtils::MakeMaker' => '7.24', + 'ExtUtils::MakeMaker::Config'=> '7.24', + 'ExtUtils::MakeMaker::Locale'=> '7.24', + 'ExtUtils::MakeMaker::version'=> '7.24', + 'ExtUtils::MakeMaker::version::regex'=> '7.24', + 'ExtUtils::Mkbootstrap' => '7.24', + 'ExtUtils::Mksymlists' => '7.24', + 'ExtUtils::testlib' => '7.24', + 'File::Fetch' => '0.52', + 'File::Spec' => '3.65', + 'File::Spec::AmigaOS' => '3.65', + 'File::Spec::Cygwin' => '3.65', + 'File::Spec::Epoc' => '3.65', + 'File::Spec::Functions' => '3.65', + 'File::Spec::Mac' => '3.65', + 'File::Spec::OS2' => '3.65', + 'File::Spec::Unix' => '3.65', + 'File::Spec::VMS' => '3.65', + 'File::Spec::Win32' => '3.65', + 'HTTP::Tiny' => '0.064', + 'Hash::Util' => '0.21', + 'I18N::LangTags' => '0.41', + 'I18N::LangTags::Detect'=> '1.06', + 'IO' => '1.37', + 'IO::Compress::Adapter::Bzip2'=> '2.069_01', + 'IO::Compress::Adapter::Deflate'=> '2.069_01', + 'IO::Compress::Adapter::Identity'=> '2.069_01', + 'IO::Compress::Base' => '2.069_01', + 'IO::Compress::Base::Common'=> '2.069_01', + 'IO::Compress::Bzip2' => '2.069_01', + 'IO::Compress::Deflate' => '2.069_01', + 'IO::Compress::Gzip' => '2.069_01', + 'IO::Compress::Gzip::Constants'=> '2.069_01', + 'IO::Compress::RawDeflate'=> '2.069_01', + 'IO::Compress::Zip' => '2.069_01', + 'IO::Compress::Zip::Constants'=> '2.069_01', + 'IO::Compress::Zlib::Constants'=> '2.069_01', + 'IO::Compress::Zlib::Extra'=> '2.069_01', + 'IO::Socket::IP' => '0.38', + 'IO::Uncompress::Adapter::Bunzip2'=> '2.069_01', + 'IO::Uncompress::Adapter::Identity'=> '2.069_01', + 'IO::Uncompress::Adapter::Inflate'=> '2.069_01', + 'IO::Uncompress::AnyInflate'=> '2.069_01', + 'IO::Uncompress::AnyUncompress'=> '2.069_01', + 'IO::Uncompress::Base' => '2.069_01', + 'IO::Uncompress::Bunzip2'=> '2.069_01', + 'IO::Uncompress::Gunzip'=> '2.069_01', + 'IO::Uncompress::Inflate'=> '2.069_01', + 'IO::Uncompress::RawInflate'=> '2.069_01', + 'IO::Uncompress::Unzip' => '2.069_01', + 'IPC::Cmd' => '0.96', + 'JSON::PP' => '2.27400_01', + 'Locale::Maketext' => '1.28', + 'Locale::Maketext::Simple'=> '0.21_01', + 'Math::BigFloat::Trace' => '0.43_01', + 'Math::BigInt::Trace' => '0.43_01', + 'Memoize' => '1.03_01', + 'Module::CoreList' => '5.20160820', + 'Module::CoreList::TieHashDelta'=> '5.20160820', + 'Module::CoreList::Utils'=> '5.20160820', + 'Module::Load::Conditional'=> '0.68', + 'Module::Metadata' => '1.000033', + 'NEXT' => '0.67', + 'Net::Cmd' => '3.10', + 'Net::Config' => '3.10', + 'Net::Domain' => '3.10', + 'Net::FTP' => '3.10', + 'Net::FTP::A' => '3.10', + 'Net::FTP::E' => '3.10', + 'Net::FTP::I' => '3.10', + 'Net::FTP::L' => '3.10', + 'Net::FTP::dataconn' => '3.10', + 'Net::NNTP' => '3.10', + 'Net::Netrc' => '3.10', + 'Net::POP3' => '3.10', + 'Net::Ping' => '2.44', + 'Net::SMTP' => '3.10', + 'Net::Time' => '3.10', + 'Opcode' => '1.37', + 'POSIX' => '1.71', + 'Parse::CPAN::Meta' => '2.150010', + 'Pod::Html' => '1.2201', + 'Pod::Perldoc' => '3.27', + 'Pod::Perldoc::BaseTo' => '3.27', + 'Pod::Perldoc::GetOptsOO'=> '3.27', + 'Pod::Perldoc::ToANSI' => '3.27', + 'Pod::Perldoc::ToChecker'=> '3.27', + 'Pod::Perldoc::ToMan' => '3.27', + 'Pod::Perldoc::ToNroff' => '3.27', + 'Pod::Perldoc::ToPod' => '3.27', + 'Pod::Perldoc::ToRtf' => '3.27', + 'Pod::Perldoc::ToTerm' => '3.27', + 'Pod::Perldoc::ToText' => '3.27', + 'Pod::Perldoc::ToTk' => '3.27', + 'Pod::Perldoc::ToXml' => '3.27', + 'Storable' => '2.57', + 'Sys::Syslog' => '0.34_01', + 'TAP::Base' => '3.36_01', + 'TAP::Formatter::Base' => '3.36_01', + 'TAP::Formatter::Color' => '3.36_01', + 'TAP::Formatter::Console'=> '3.36_01', + 'TAP::Formatter::Console::ParallelSession'=> '3.36_01', + 'TAP::Formatter::Console::Session'=> '3.36_01', + 'TAP::Formatter::File' => '3.36_01', + 'TAP::Formatter::File::Session'=> '3.36_01', + 'TAP::Formatter::Session'=> '3.36_01', + 'TAP::Harness' => '3.36_01', + 'TAP::Harness::Env' => '3.36_01', + 'TAP::Object' => '3.36_01', + 'TAP::Parser' => '3.36_01', + 'TAP::Parser::Aggregator'=> '3.36_01', + 'TAP::Parser::Grammar' => '3.36_01', + 'TAP::Parser::Iterator' => '3.36_01', + 'TAP::Parser::Iterator::Array'=> '3.36_01', + 'TAP::Parser::Iterator::Process'=> '3.36_01', + 'TAP::Parser::Iterator::Stream'=> '3.36_01', + 'TAP::Parser::IteratorFactory'=> '3.36_01', + 'TAP::Parser::Multiplexer'=> '3.36_01', + 'TAP::Parser::Result' => '3.36_01', + 'TAP::Parser::Result::Bailout'=> '3.36_01', + 'TAP::Parser::Result::Comment'=> '3.36_01', + 'TAP::Parser::Result::Plan'=> '3.36_01', + 'TAP::Parser::Result::Pragma'=> '3.36_01', + 'TAP::Parser::Result::Test'=> '3.36_01', + 'TAP::Parser::Result::Unknown'=> '3.36_01', + 'TAP::Parser::Result::Version'=> '3.36_01', + 'TAP::Parser::Result::YAML'=> '3.36_01', + 'TAP::Parser::ResultFactory'=> '3.36_01', + 'TAP::Parser::Scheduler'=> '3.36_01', + 'TAP::Parser::Scheduler::Job'=> '3.36_01', + 'TAP::Parser::Scheduler::Spinner'=> '3.36_01', + 'TAP::Parser::Source' => '3.36_01', + 'TAP::Parser::SourceHandler'=> '3.36_01', + 'TAP::Parser::SourceHandler::Executable'=> '3.36_01', + 'TAP::Parser::SourceHandler::File'=> '3.36_01', + 'TAP::Parser::SourceHandler::Handle'=> '3.36_01', + 'TAP::Parser::SourceHandler::Perl'=> '3.36_01', + 'TAP::Parser::SourceHandler::RawTAP'=> '3.36_01', + 'TAP::Parser::YAMLish::Reader'=> '3.36_01', + 'TAP::Parser::YAMLish::Writer'=> '3.36_01', + 'Test' => '1.29', + 'Test2' => '1.302052', + 'Test2::API' => '1.302052', + 'Test2::API::Breakage' => '1.302052', + 'Test2::API::Context' => '1.302052', + 'Test2::API::Instance' => '1.302052', + 'Test2::API::Stack' => '1.302052', + 'Test2::Event' => '1.302052', + 'Test2::Event::Bail' => '1.302052', + 'Test2::Event::Diag' => '1.302052', + 'Test2::Event::Exception'=> '1.302052', + 'Test2::Event::Generic' => '1.302052', + 'Test2::Event::Info' => '1.302052', + 'Test2::Event::Note' => '1.302052', + 'Test2::Event::Ok' => '1.302052', + 'Test2::Event::Plan' => '1.302052', + 'Test2::Event::Skip' => '1.302052', + 'Test2::Event::Subtest' => '1.302052', + 'Test2::Event::Waiting' => '1.302052', + 'Test2::Formatter' => '1.302052', + 'Test2::Formatter::TAP' => '1.302052', + 'Test2::Hub' => '1.302052', + 'Test2::Hub::Interceptor'=> '1.302052', + 'Test2::Hub::Interceptor::Terminator'=> '1.302052', + 'Test2::Hub::Subtest' => '1.302052', + 'Test2::IPC' => '1.302052', + 'Test2::IPC::Driver' => '1.302052', + 'Test2::IPC::Driver::Files'=> '1.302052', + 'Test2::Util' => '1.302052', + 'Test2::Util::ExternalMeta'=> '1.302052', + 'Test2::Util::HashBase' => '1.302052', + 'Test2::Util::Trace' => '1.302052', + 'Test::Builder' => '1.302052', + 'Test::Builder::Formatter'=> '1.302052', + 'Test::Builder::Module' => '1.302052', + 'Test::Builder::Tester' => '1.302052', + 'Test::Builder::Tester::Color'=> '1.302052', + 'Test::Builder::TodoDiag'=> '1.302052', + 'Test::Harness' => '3.36_01', + 'Test::More' => '1.302052', + 'Test::Simple' => '1.302052', + 'Test::Tester' => '1.302052', + 'Test::Tester::Capture' => '1.302052', + 'Test::Tester::CaptureRunner'=> '1.302052', + 'Test::Tester::Delegate'=> '1.302052', + 'Test::use::ok' => '1.302052', + 'Tie::Hash::NamedCapture'=> '0.10', + 'Time::Local' => '1.24', + 'XS::APItest' => '0.83', + 'arybase' => '0.12', + 'base' => '2.24', + 'bigint' => '0.43_01', + 'bignum' => '0.43_01', + 'bigrat' => '0.43_01', + 'encoding' => '2.18', + 'ok' => '1.302052', + }, + removed => { + } + }, + 5.025005 => { + delta_from => 5.025004, + changed => { + 'B::Op_private' => '5.025005', + 'Config' => '5.025005', + 'Filter::Simple' => '0.93', + 'Locale::Codes' => '3.40', + 'Locale::Codes::Constants'=> '3.40', + 'Locale::Codes::Country'=> '3.40', + 'Locale::Codes::Country_Codes'=> '3.40', + 'Locale::Codes::Country_Retired'=> '3.40', + 'Locale::Codes::Currency'=> '3.40', + 'Locale::Codes::Currency_Codes'=> '3.40', + 'Locale::Codes::Currency_Retired'=> '3.40', + 'Locale::Codes::LangExt'=> '3.40', + 'Locale::Codes::LangExt_Codes'=> '3.40', + 'Locale::Codes::LangExt_Retired'=> '3.40', + 'Locale::Codes::LangFam'=> '3.40', + 'Locale::Codes::LangFam_Codes'=> '3.40', + 'Locale::Codes::LangFam_Retired'=> '3.40', + 'Locale::Codes::LangVar'=> '3.40', + 'Locale::Codes::LangVar_Codes'=> '3.40', + 'Locale::Codes::LangVar_Retired'=> '3.40', + 'Locale::Codes::Language'=> '3.40', + 'Locale::Codes::Language_Codes'=> '3.40', + 'Locale::Codes::Language_Retired'=> '3.40', + 'Locale::Codes::Script' => '3.40', + 'Locale::Codes::Script_Codes'=> '3.40', + 'Locale::Codes::Script_Retired'=> '3.40', + 'Locale::Country' => '3.40', + 'Locale::Currency' => '3.40', + 'Locale::Language' => '3.40', + 'Locale::Script' => '3.40', + 'Module::CoreList' => '5.20160920', + 'Module::CoreList::TieHashDelta'=> '5.20160920', + 'Module::CoreList::Utils'=> '5.20160920', + 'POSIX' => '1.72', + 'Sys::Syslog' => '0.35', + 'Test2' => '1.302056', + 'Test2::API' => '1.302056', + 'Test2::API::Breakage' => '1.302056', + 'Test2::API::Context' => '1.302056', + 'Test2::API::Instance' => '1.302056', + 'Test2::API::Stack' => '1.302056', + 'Test2::Event' => '1.302056', + 'Test2::Event::Bail' => '1.302056', + 'Test2::Event::Diag' => '1.302056', + 'Test2::Event::Exception'=> '1.302056', + 'Test2::Event::Generic' => '1.302056', + 'Test2::Event::Info' => '1.302056', + 'Test2::Event::Note' => '1.302056', + 'Test2::Event::Ok' => '1.302056', + 'Test2::Event::Plan' => '1.302056', + 'Test2::Event::Skip' => '1.302056', + 'Test2::Event::Subtest' => '1.302056', + 'Test2::Event::Waiting' => '1.302056', + 'Test2::Formatter' => '1.302056', + 'Test2::Formatter::TAP' => '1.302056', + 'Test2::Hub' => '1.302056', + 'Test2::Hub::Interceptor'=> '1.302056', + 'Test2::Hub::Interceptor::Terminator'=> '1.302056', + 'Test2::Hub::Subtest' => '1.302056', + 'Test2::IPC' => '1.302056', + 'Test2::IPC::Driver' => '1.302056', + 'Test2::IPC::Driver::Files'=> '1.302056', + 'Test2::Util' => '1.302056', + 'Test2::Util::ExternalMeta'=> '1.302056', + 'Test2::Util::HashBase' => '1.302056', + 'Test2::Util::Trace' => '1.302056', + 'Test::Builder' => '1.302056', + 'Test::Builder::Formatter'=> '1.302056', + 'Test::Builder::Module' => '1.302056', + 'Test::Builder::Tester' => '1.302056', + 'Test::Builder::Tester::Color'=> '1.302056', + 'Test::Builder::TodoDiag'=> '1.302056', + 'Test::More' => '1.302056', + 'Test::Simple' => '1.302056', + 'Test::Tester' => '1.302056', + 'Test::Tester::Capture' => '1.302056', + 'Test::Tester::CaptureRunner'=> '1.302056', + 'Test::Tester::Delegate'=> '1.302056', + 'Test::use::ok' => '1.302056', + 'Thread::Semaphore' => '2.13', + 'XS::APItest' => '0.84', + 'XSLoader' => '0.24', + 'ok' => '1.302056', + }, + removed => { + } + }, + 5.025006 => { + delta_from => 5.025005, + changed => { + 'Archive::Tar' => '2.14', + 'Archive::Tar::Constant'=> '2.14', + 'Archive::Tar::File' => '2.14', + 'B' => '1.64', + 'B::Concise' => '0.999', + 'B::Deparse' => '1.39', + 'B::Op_private' => '5.025006', + 'Config' => '5.025006', + 'Data::Dumper' => '2.162', + 'Devel::Peek' => '1.25', + 'HTTP::Tiny' => '0.070', + 'List::Util' => '1.46', + 'List::Util::XS' => '1.46', + 'Module::CoreList' => '5.20161020', + 'Module::CoreList::TieHashDelta'=> '5.20161020', + 'Module::CoreList::Utils'=> '5.20161020', + 'Net::Ping' => '2.51', + 'OS2::DLL' => '1.07', + 'Opcode' => '1.38', + 'POSIX' => '1.73', + 'PerlIO::encoding' => '0.25', + 'Pod::Man' => '4.08', + 'Pod::ParseLink' => '4.08', + 'Pod::Text' => '4.08', + 'Pod::Text::Color' => '4.08', + 'Pod::Text::Overstrike' => '4.08', + 'Pod::Text::Termcap' => '4.08', + 'Scalar::Util' => '1.46', + 'Storable' => '2.58', + 'Sub::Util' => '1.46', + 'Test2' => '1.302059', + 'Test2::API' => '1.302059', + 'Test2::API::Breakage' => '1.302059', + 'Test2::API::Context' => '1.302059', + 'Test2::API::Instance' => '1.302059', + 'Test2::API::Stack' => '1.302059', + 'Test2::Event' => '1.302059', + 'Test2::Event::Bail' => '1.302059', + 'Test2::Event::Diag' => '1.302059', + 'Test2::Event::Exception'=> '1.302059', + 'Test2::Event::Generic' => '1.302059', + 'Test2::Event::Info' => '1.302059', + 'Test2::Event::Note' => '1.302059', + 'Test2::Event::Ok' => '1.302059', + 'Test2::Event::Plan' => '1.302059', + 'Test2::Event::Skip' => '1.302059', + 'Test2::Event::Subtest' => '1.302059', + 'Test2::Event::Waiting' => '1.302059', + 'Test2::Formatter' => '1.302059', + 'Test2::Formatter::TAP' => '1.302059', + 'Test2::Hub' => '1.302059', + 'Test2::Hub::Interceptor'=> '1.302059', + 'Test2::Hub::Interceptor::Terminator'=> '1.302059', + 'Test2::Hub::Subtest' => '1.302059', + 'Test2::IPC' => '1.302059', + 'Test2::IPC::Driver' => '1.302059', + 'Test2::IPC::Driver::Files'=> '1.302059', + 'Test2::Util' => '1.302059', + 'Test2::Util::ExternalMeta'=> '1.302059', + 'Test2::Util::HashBase' => '1.302059', + 'Test2::Util::Trace' => '1.302059', + 'Test::Builder' => '1.302059', + 'Test::Builder::Formatter'=> '1.302059', + 'Test::Builder::Module' => '1.302059', + 'Test::Builder::Tester' => '1.302059', + 'Test::Builder::Tester::Color'=> '1.302059', + 'Test::Builder::TodoDiag'=> '1.302059', + 'Test::More' => '1.302059', + 'Test::Simple' => '1.302059', + 'Test::Tester' => '1.302059', + 'Test::Tester::Capture' => '1.302059', + 'Test::Tester::CaptureRunner'=> '1.302059', + 'Test::Tester::Delegate'=> '1.302059', + 'Test::use::ok' => '1.302059', + 'Time::HiRes' => '1.9740_01', + 'VMS::Stdio' => '2.42', + 'XS::APItest' => '0.86', + 'attributes' => '0.28', + 'mro' => '1.19', + 'ok' => '1.302059', + 'overload' => '1.27', + 'parent' => '0.236', + }, + removed => { + } + }, + 5.025007 => { + delta_from => 5.025006, + changed => { + 'Archive::Tar' => '2.18', + 'Archive::Tar::Constant'=> '2.18', + 'Archive::Tar::File' => '2.18', + 'B' => '1.65', + 'B::Op_private' => '5.025007', + 'Config' => '5.025007', + 'Cwd' => '3.66', + 'Data::Dumper' => '2.165', + 'Devel::Peek' => '1.26', + 'DynaLoader' => '1.40', + 'Errno' => '1.27', + 'ExtUtils::ParseXS::Utilities'=> '3.34', + 'File::Spec' => '3.66', + 'File::Spec::AmigaOS' => '3.66', + 'File::Spec::Cygwin' => '3.66', + 'File::Spec::Epoc' => '3.66', + 'File::Spec::Functions' => '3.66', + 'File::Spec::Mac' => '3.66', + 'File::Spec::OS2' => '3.66', + 'File::Spec::Unix' => '3.66', + 'File::Spec::VMS' => '3.66', + 'File::Spec::Win32' => '3.66', + 'Hash::Util' => '0.22', + 'JSON::PP' => '2.27400_02', + 'List::Util' => '1.46_02', + 'List::Util::XS' => '1.46_02', + 'Math::BigFloat' => '1.999727', + 'Math::BigInt' => '1.999727', + 'Math::BigInt::Calc' => '1.999727', + 'Math::BigInt::CalcEmu' => '1.999727', + 'Math::Complex' => '1.5901', + 'Module::CoreList' => '5.20161120', + 'Module::CoreList::TieHashDelta'=> '5.20161120', + 'Module::CoreList::Utils'=> '5.20161120', + 'Net::Ping' => '2.55', + 'Opcode' => '1.39', + 'POSIX' => '1.75', + 'Pod::Man' => '4.09', + 'Pod::ParseLink' => '4.09', + 'Pod::Text' => '4.09', + 'Pod::Text::Color' => '4.09', + 'Pod::Text::Overstrike' => '4.09', + 'Pod::Text::Termcap' => '4.09', + 'Scalar::Util' => '1.46_02', + 'Storable' => '2.59', + 'Sub::Util' => '1.46_02', + 'Term::ANSIColor' => '4.06', + 'Test2' => '1.302062', + 'Test2::API' => '1.302062', + 'Test2::API::Breakage' => '1.302062', + 'Test2::API::Context' => '1.302062', + 'Test2::API::Instance' => '1.302062', + 'Test2::API::Stack' => '1.302062', + 'Test2::Event' => '1.302062', + 'Test2::Event::Bail' => '1.302062', + 'Test2::Event::Diag' => '1.302062', + 'Test2::Event::Exception'=> '1.302062', + 'Test2::Event::Generic' => '1.302062', + 'Test2::Event::Info' => '1.302062', + 'Test2::Event::Note' => '1.302062', + 'Test2::Event::Ok' => '1.302062', + 'Test2::Event::Plan' => '1.302062', + 'Test2::Event::Skip' => '1.302062', + 'Test2::Event::Subtest' => '1.302062', + 'Test2::Event::Waiting' => '1.302062', + 'Test2::Formatter' => '1.302062', + 'Test2::Formatter::TAP' => '1.302062', + 'Test2::Hub' => '1.302062', + 'Test2::Hub::Interceptor'=> '1.302062', + 'Test2::Hub::Interceptor::Terminator'=> '1.302062', + 'Test2::Hub::Subtest' => '1.302062', + 'Test2::IPC' => '1.302062', + 'Test2::IPC::Driver' => '1.302062', + 'Test2::IPC::Driver::Files'=> '1.302062', + 'Test2::Util' => '1.302062', + 'Test2::Util::ExternalMeta'=> '1.302062', + 'Test2::Util::HashBase' => '1.302062', + 'Test2::Util::Trace' => '1.302062', + 'Test::Builder' => '1.302062', + 'Test::Builder::Formatter'=> '1.302062', + 'Test::Builder::Module' => '1.302062', + 'Test::Builder::Tester' => '1.302062', + 'Test::Builder::Tester::Color'=> '1.302062', + 'Test::Builder::TodoDiag'=> '1.302062', + 'Test::More' => '1.302062', + 'Test::Simple' => '1.302062', + 'Test::Tester' => '1.302062', + 'Test::Tester::Capture' => '1.302062', + 'Test::Tester::CaptureRunner'=> '1.302062', + 'Test::Tester::Delegate'=> '1.302062', + 'Test::use::ok' => '1.302062', + 'Time::HiRes' => '1.9740_03', + 'Unicode::Collate' => '1.18', + 'Unicode::Collate::CJK::Big5'=> '1.18', + 'Unicode::Collate::CJK::GB2312'=> '1.18', + 'Unicode::Collate::CJK::JISX0208'=> '1.18', + 'Unicode::Collate::CJK::Korean'=> '1.18', + 'Unicode::Collate::CJK::Pinyin'=> '1.18', + 'Unicode::Collate::CJK::Stroke'=> '1.18', + 'Unicode::Collate::CJK::Zhuyin'=> '1.18', + 'Unicode::Collate::Locale'=> '1.18', + 'Unicode::UCD' => '0.67', + 'XS::APItest' => '0.87', + 'XS::Typemap' => '0.15', + 'mro' => '1.20', + 'ok' => '1.302062', + 'threads' => '2.10', + }, + removed => { + } + }, + 5.025008 => { + delta_from => 5.025007, + changed => { + 'Archive::Tar' => '2.24', + 'Archive::Tar::Constant'=> '2.24', + 'Archive::Tar::File' => '2.24', + 'B::Debug' => '1.24', + 'B::Op_private' => '5.025008', + 'Config' => '5.025008', + 'Data::Dumper' => '2.166', + 'Encode' => '2.88', + 'Encode::Alias' => '2.21', + 'Encode::CN::HZ' => '2.08', + 'Encode::MIME::Header' => '2.24', + 'Encode::MIME::Name' => '1.02', + 'Encode::Unicode' => '2.1501', + 'IO' => '1.38', + 'Locale::Codes' => '3.42', + 'Locale::Codes::Constants'=> '3.42', + 'Locale::Codes::Country'=> '3.42', + 'Locale::Codes::Country_Codes'=> '3.42', + 'Locale::Codes::Country_Retired'=> '3.42', + 'Locale::Codes::Currency'=> '3.42', + 'Locale::Codes::Currency_Codes'=> '3.42', + 'Locale::Codes::Currency_Retired'=> '3.42', + 'Locale::Codes::LangExt'=> '3.42', + 'Locale::Codes::LangExt_Codes'=> '3.42', + 'Locale::Codes::LangExt_Retired'=> '3.42', + 'Locale::Codes::LangFam'=> '3.42', + 'Locale::Codes::LangFam_Codes'=> '3.42', + 'Locale::Codes::LangFam_Retired'=> '3.42', + 'Locale::Codes::LangVar'=> '3.42', + 'Locale::Codes::LangVar_Codes'=> '3.42', + 'Locale::Codes::LangVar_Retired'=> '3.42', + 'Locale::Codes::Language'=> '3.42', + 'Locale::Codes::Language_Codes'=> '3.42', + 'Locale::Codes::Language_Retired'=> '3.42', + 'Locale::Codes::Script' => '3.42', + 'Locale::Codes::Script_Codes'=> '3.42', + 'Locale::Codes::Script_Retired'=> '3.42', + 'Locale::Country' => '3.42', + 'Locale::Currency' => '3.42', + 'Locale::Language' => '3.42', + 'Locale::Script' => '3.42', + 'Math::BigFloat' => '1.999806', + 'Math::BigFloat::Trace' => '0.47', + 'Math::BigInt' => '1.999806', + 'Math::BigInt::Calc' => '1.999806', + 'Math::BigInt::CalcEmu' => '1.999806', + 'Math::BigInt::FastCalc'=> '0.5005', + 'Math::BigInt::Lib' => '1.999806', + 'Math::BigInt::Trace' => '0.47', + 'Math::BigRat' => '0.2611', + 'Module::CoreList' => '5.20161220', + 'Module::CoreList::TieHashDelta'=> '5.20161220', + 'Module::CoreList::Utils'=> '5.20161220', + 'POSIX' => '1.76', + 'PerlIO::scalar' => '0.25', + 'Pod::Simple' => '3.35', + 'Pod::Simple::BlackBox' => '3.35', + 'Pod::Simple::Checker' => '3.35', + 'Pod::Simple::Debug' => '3.35', + 'Pod::Simple::DumpAsText'=> '3.35', + 'Pod::Simple::DumpAsXML'=> '3.35', + 'Pod::Simple::HTML' => '3.35', + 'Pod::Simple::HTMLBatch'=> '3.35', + 'Pod::Simple::LinkSection'=> '3.35', + 'Pod::Simple::Methody' => '3.35', + 'Pod::Simple::Progress' => '3.35', + 'Pod::Simple::PullParser'=> '3.35', + 'Pod::Simple::PullParserEndToken'=> '3.35', + 'Pod::Simple::PullParserStartToken'=> '3.35', + 'Pod::Simple::PullParserTextToken'=> '3.35', + 'Pod::Simple::PullParserToken'=> '3.35', + 'Pod::Simple::RTF' => '3.35', + 'Pod::Simple::Search' => '3.35', + 'Pod::Simple::SimpleTree'=> '3.35', + 'Pod::Simple::Text' => '3.35', + 'Pod::Simple::TextContent'=> '3.35', + 'Pod::Simple::TiedOutFH'=> '3.35', + 'Pod::Simple::Transcode'=> '3.35', + 'Pod::Simple::TranscodeDumb'=> '3.35', + 'Pod::Simple::TranscodeSmart'=> '3.35', + 'Pod::Simple::XHTML' => '3.35', + 'Pod::Simple::XMLOutStream'=> '3.35', + 'Test2' => '1.302073', + 'Test2::API' => '1.302073', + 'Test2::API::Breakage' => '1.302073', + 'Test2::API::Context' => '1.302073', + 'Test2::API::Instance' => '1.302073', + 'Test2::API::Stack' => '1.302073', + 'Test2::Event' => '1.302073', + 'Test2::Event::Bail' => '1.302073', + 'Test2::Event::Diag' => '1.302073', + 'Test2::Event::Encoding'=> '1.302073', + 'Test2::Event::Exception'=> '1.302073', + 'Test2::Event::Generic' => '1.302073', + 'Test2::Event::Info' => '1.302073', + 'Test2::Event::Note' => '1.302073', + 'Test2::Event::Ok' => '1.302073', + 'Test2::Event::Plan' => '1.302073', + 'Test2::Event::Skip' => '1.302073', + 'Test2::Event::Subtest' => '1.302073', + 'Test2::Event::TAP::Version'=> '1.302073', + 'Test2::Event::Waiting' => '1.302073', + 'Test2::Formatter' => '1.302073', + 'Test2::Formatter::TAP' => '1.302073', + 'Test2::Hub' => '1.302073', + 'Test2::Hub::Interceptor'=> '1.302073', + 'Test2::Hub::Interceptor::Terminator'=> '1.302073', + 'Test2::Hub::Subtest' => '1.302073', + 'Test2::IPC' => '1.302073', + 'Test2::IPC::Driver' => '1.302073', + 'Test2::IPC::Driver::Files'=> '1.302073', + 'Test2::Tools::Tiny' => '1.302073', + 'Test2::Util' => '1.302073', + 'Test2::Util::ExternalMeta'=> '1.302073', + 'Test2::Util::HashBase' => '0.002', + 'Test2::Util::Trace' => '1.302073', + 'Test::Builder' => '1.302073', + 'Test::Builder::Formatter'=> '1.302073', + 'Test::Builder::Module' => '1.302073', + 'Test::Builder::Tester' => '1.302073', + 'Test::Builder::Tester::Color'=> '1.302073', + 'Test::Builder::TodoDiag'=> '1.302073', + 'Test::More' => '1.302073', + 'Test::Simple' => '1.302073', + 'Test::Tester' => '1.302073', + 'Test::Tester::Capture' => '1.302073', + 'Test::Tester::CaptureRunner'=> '1.302073', + 'Test::Tester::Delegate'=> '1.302073', + 'Test::use::ok' => '1.302073', + 'Time::HiRes' => '1.9741', + 'Time::Local' => '1.25', + 'Unicode::Collate' => '1.19', + 'Unicode::Collate::CJK::Big5'=> '1.19', + 'Unicode::Collate::CJK::GB2312'=> '1.19', + 'Unicode::Collate::CJK::JISX0208'=> '1.19', + 'Unicode::Collate::CJK::Korean'=> '1.19', + 'Unicode::Collate::CJK::Pinyin'=> '1.19', + 'Unicode::Collate::CJK::Stroke'=> '1.19', + 'Unicode::Collate::CJK::Zhuyin'=> '1.19', + 'Unicode::Collate::Locale'=> '1.19', + 'bigint' => '0.47', + 'bignum' => '0.47', + 'bigrat' => '0.47', + 'encoding' => '2.19', + 'ok' => '1.302073', + }, + removed => { + } + }, + 5.024001 => { + delta_from => 5.024000, + changed => { + 'App::Cpan' => '1.63_01', + 'App::Prove' => '3.36_01', + 'App::Prove::State' => '3.36_01', + 'App::Prove::State::Result'=> '3.36_01', + 'App::Prove::State::Result::Test'=> '3.36_01', + 'Archive::Tar' => '2.04_01', + 'Archive::Tar::Constant'=> '2.04_01', + 'Archive::Tar::File' => '2.04_01', + 'B::Op_private' => '5.024001', + 'CPAN' => '2.11_01', + 'Compress::Zlib' => '2.069_001', + 'Config' => '5.024001', + 'Cwd' => '3.63_01', + 'Digest' => '1.17_01', + 'Digest::SHA' => '5.95_01', + 'Encode' => '2.80_01', + 'ExtUtils::Command' => '7.10_02', + 'ExtUtils::Command::MM' => '7.10_02', + 'ExtUtils::Liblist' => '7.10_02', + 'ExtUtils::Liblist::Kid'=> '7.10_02', + 'ExtUtils::MM' => '7.10_02', + 'ExtUtils::MM_AIX' => '7.10_02', + 'ExtUtils::MM_Any' => '7.10_02', + 'ExtUtils::MM_BeOS' => '7.10_02', + 'ExtUtils::MM_Cygwin' => '7.10_02', + 'ExtUtils::MM_DOS' => '7.10_02', + 'ExtUtils::MM_Darwin' => '7.10_02', + 'ExtUtils::MM_MacOS' => '7.10_02', + 'ExtUtils::MM_NW5' => '7.10_02', + 'ExtUtils::MM_OS2' => '7.10_02', + 'ExtUtils::MM_QNX' => '7.10_02', + 'ExtUtils::MM_UWIN' => '7.10_02', + 'ExtUtils::MM_Unix' => '7.10_02', + 'ExtUtils::MM_VMS' => '7.10_02', + 'ExtUtils::MM_VOS' => '7.10_02', + 'ExtUtils::MM_Win32' => '7.10_02', + 'ExtUtils::MM_Win95' => '7.10_02', + 'ExtUtils::MY' => '7.10_02', + 'ExtUtils::MakeMaker' => '7.10_02', + 'ExtUtils::MakeMaker::Config'=> '7.10_02', + 'ExtUtils::Mkbootstrap' => '7.10_02', + 'ExtUtils::Mksymlists' => '7.10_02', + 'ExtUtils::testlib' => '7.10_02', + 'File::Fetch' => '0.48_01', + 'File::Spec' => '3.63_01', + 'File::Spec::Cygwin' => '3.63_01', + 'File::Spec::Epoc' => '3.63_01', + 'File::Spec::Functions' => '3.63_01', + 'File::Spec::Mac' => '3.63_01', + 'File::Spec::OS2' => '3.63_01', + 'File::Spec::Unix' => '3.63_01', + 'File::Spec::VMS' => '3.63_01', + 'File::Spec::Win32' => '3.63_01', + 'HTTP::Tiny' => '0.056_001', + 'I18N::LangTags::Detect'=> '1.05_01', + 'IO' => '1.36_01', + 'IO::Compress::Adapter::Bzip2'=> '2.069_001', + 'IO::Compress::Adapter::Deflate'=> '2.069_001', + 'IO::Compress::Adapter::Identity'=> '2.069_001', + 'IO::Compress::Base' => '2.069_001', + 'IO::Compress::Base::Common'=> '2.069_001', + 'IO::Compress::Bzip2' => '2.069_001', + 'IO::Compress::Deflate' => '2.069_001', + 'IO::Compress::Gzip' => '2.069_001', + 'IO::Compress::Gzip::Constants'=> '2.069_001', + 'IO::Compress::RawDeflate'=> '2.069_001', + 'IO::Compress::Zip' => '2.069_001', + 'IO::Compress::Zip::Constants'=> '2.069_001', + 'IO::Compress::Zlib::Constants'=> '2.069_001', + 'IO::Compress::Zlib::Extra'=> '2.069_001', + 'IO::Uncompress::Adapter::Bunzip2'=> '2.069_001', + 'IO::Uncompress::Adapter::Identity'=> '2.069_001', + 'IO::Uncompress::Adapter::Inflate'=> '2.069_001', + 'IO::Uncompress::AnyInflate'=> '2.069_001', + 'IO::Uncompress::AnyUncompress'=> '2.069_001', + 'IO::Uncompress::Base' => '2.069_001', + 'IO::Uncompress::Bunzip2'=> '2.069_001', + 'IO::Uncompress::Gunzip'=> '2.069_001', + 'IO::Uncompress::Inflate'=> '2.069_001', + 'IO::Uncompress::RawInflate'=> '2.069_001', + 'IO::Uncompress::Unzip' => '2.069_001', + 'IPC::Cmd' => '0.92_01', + 'JSON::PP' => '2.27300_01', + 'Locale::Maketext' => '1.26_01', + 'Locale::Maketext::Simple'=> '0.21_01', + 'Math::BigFloat::Trace' => '0.42_01', + 'Math::BigInt::Trace' => '0.42_01', + 'Memoize' => '1.03_01', + 'Module::CoreList' => '5.20170114_24', + 'Module::CoreList::TieHashDelta'=> '5.20170114_24', + 'Module::CoreList::Utils'=> '5.20170114_24', + 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef, + 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef, + 'Module::Metadata::corpus::BOMTest::UTF8'=> '1', + 'Net::Cmd' => '3.08_01', + 'Net::Config' => '3.08_01', + 'Net::Domain' => '3.08_01', + 'Net::FTP' => '3.08_01', + 'Net::FTP::A' => '3.08_01', + 'Net::FTP::E' => '3.08_01', + 'Net::FTP::I' => '3.08_01', + 'Net::FTP::L' => '3.08_01', + 'Net::FTP::dataconn' => '3.08_01', + 'Net::NNTP' => '3.08_01', + 'Net::Netrc' => '3.08_01', + 'Net::POP3' => '3.08_01', + 'Net::Ping' => '2.43_01', + 'Net::SMTP' => '3.08_01', + 'Net::Time' => '3.08_01', + 'Parse::CPAN::Meta' => '1.4417_001', + 'Pod::Html' => '1.2201', + 'Pod::Perldoc' => '3.25_03', + 'Storable' => '2.56_01', + 'Sys::Syslog' => '0.33_01', + 'TAP::Base' => '3.36_01', + 'TAP::Formatter::Base' => '3.36_01', + 'TAP::Formatter::Color' => '3.36_01', + 'TAP::Formatter::Console'=> '3.36_01', + 'TAP::Formatter::Console::ParallelSession'=> '3.36_01', + 'TAP::Formatter::Console::Session'=> '3.36_01', + 'TAP::Formatter::File' => '3.36_01', + 'TAP::Formatter::File::Session'=> '3.36_01', + 'TAP::Formatter::Session'=> '3.36_01', + 'TAP::Harness' => '3.36_01', + 'TAP::Harness::Env' => '3.36_01', + 'TAP::Object' => '3.36_01', + 'TAP::Parser' => '3.36_01', + 'TAP::Parser::Aggregator'=> '3.36_01', + 'TAP::Parser::Grammar' => '3.36_01', + 'TAP::Parser::Iterator' => '3.36_01', + 'TAP::Parser::Iterator::Array'=> '3.36_01', + 'TAP::Parser::Iterator::Process'=> '3.36_01', + 'TAP::Parser::Iterator::Stream'=> '3.36_01', + 'TAP::Parser::IteratorFactory'=> '3.36_01', + 'TAP::Parser::Multiplexer'=> '3.36_01', + 'TAP::Parser::Result' => '3.36_01', + 'TAP::Parser::Result::Bailout'=> '3.36_01', + 'TAP::Parser::Result::Comment'=> '3.36_01', + 'TAP::Parser::Result::Plan'=> '3.36_01', + 'TAP::Parser::Result::Pragma'=> '3.36_01', + 'TAP::Parser::Result::Test'=> '3.36_01', + 'TAP::Parser::Result::Unknown'=> '3.36_01', + 'TAP::Parser::Result::Version'=> '3.36_01', + 'TAP::Parser::Result::YAML'=> '3.36_01', + 'TAP::Parser::ResultFactory'=> '3.36_01', + 'TAP::Parser::Scheduler'=> '3.36_01', + 'TAP::Parser::Scheduler::Job'=> '3.36_01', + 'TAP::Parser::Scheduler::Spinner'=> '3.36_01', + 'TAP::Parser::Source' => '3.36_01', + 'TAP::Parser::SourceHandler'=> '3.36_01', + 'TAP::Parser::SourceHandler::Executable'=> '3.36_01', + 'TAP::Parser::SourceHandler::File'=> '3.36_01', + 'TAP::Parser::SourceHandler::Handle'=> '3.36_01', + 'TAP::Parser::SourceHandler::Perl'=> '3.36_01', + 'TAP::Parser::SourceHandler::RawTAP'=> '3.36_01', + 'TAP::Parser::YAMLish::Reader'=> '3.36_01', + 'TAP::Parser::YAMLish::Writer'=> '3.36_01', + 'Test' => '1.28_01', + 'Test::Harness' => '3.36_01', + 'XSLoader' => '0.22', + 'bigint' => '0.42_01', + 'bignum' => '0.42_01', + 'bigrat' => '0.42_01', }, removed => { } @@ -12449,7 +13729,7 @@ sub is_core } RELEASE: foreach my $prn (@releases) { - next RELEASE if $prn <= $first_release; + next RELEASE if $prn < $first_release; last RELEASE if $prn > $perl_version; next unless defined(my $next_module_version = $delta{$prn}->{changed}->{$module}); @@ -13063,6 +14343,76 @@ for my $version (sort { $a <=> $b } keys %delta) { removed => { } }, + 5.025000 => { + delta_from => 5.024, + changed => { + }, + removed => { + } + }, + 5.025001 => { + delta_from => 5.025, + changed => { + }, + removed => { + } + }, + 5.025002 => { + delta_from => 5.025001, + changed => { + }, + removed => { + } + }, + 5.025003 => { + delta_from => 5.025002, + changed => { + }, + removed => { + } + }, + 5.025004 => { + delta_from => 5.025003, + changed => { + }, + removed => { + } + }, + 5.025005 => { + delta_from => 5.025004, + changed => { + }, + removed => { + } + }, + 5.025006 => { + delta_from => 5.025005, + changed => { + }, + removed => { + } + }, + 5.025007 => { + delta_from => 5.025006, + changed => { + }, + removed => { + } + }, + 5.025008 => { + delta_from => 5.025007, + changed => { + }, + removed => { + } + }, + 5.024001 => { + delta_from => 5.024000, + changed => { + }, + removed => { + } + }, ); for my $version (sort { $a <=> $b } keys %deprecated) { @@ -13726,7 +15076,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Net::SMTP' => undef, 'Net::Time' => undef, 'Params::Check' => undef, - 'Parse::CPAN::Meta' => 'https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta/issues', + 'Parse::CPAN::Meta' => 'https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues', 'Perl::OSType' => 'https://github.com/Perl-Toolchain-Gang/Perl-OSType/issues', 'PerlIO::via::QuotedPrint'=> undef, 'Pod::Checker' => undef, @@ -13835,25 +15185,25 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'TAP::Parser::YAMLish::Writer'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', 'Term::ANSIColor' => 'https://rt.cpan.org/Dist/Display.html?Name=Term-ANSIColor', 'Term::Cap' => undef, - 'Test::Builder' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues/', - 'Test::Builder::Module' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Builder::Tester' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Builder::Tester::Color'=> 'http://github.com/Test-More/test-more/issues/', + 'Test::Builder' => 'http://github.com/Test-More/test-more/issues', + 'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues', + 'Test::Builder::Module' => 'http://github.com/Test-More/test-more/issues', + 'Test::Builder::Tester' => 'http://github.com/Test-More/test-more/issues', + 'Test::Builder::Tester::Color'=> 'http://github.com/Test-More/test-more/issues', 'Test::Harness' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', - 'Test::More' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Simple' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Tester' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Tester::Capture' => 'http://github.com/Test-More/test-more/issues/', - 'Test::Tester::CaptureRunner'=> 'http://github.com/Test-More/test-more/issues/', - 'Test::Tester::Delegate'=> 'http://github.com/Test-More/test-more/issues/', - 'Test::use::ok' => 'http://github.com/Test-More/test-more/issues/', + 'Test::More' => 'http://github.com/Test-More/test-more/issues', + 'Test::Simple' => 'http://github.com/Test-More/test-more/issues', + 'Test::Tester' => 'http://github.com/Test-More/test-more/issues', + 'Test::Tester::Capture' => 'http://github.com/Test-More/test-more/issues', + 'Test::Tester::CaptureRunner'=> 'http://github.com/Test-More/test-more/issues', + 'Test::Tester::Delegate'=> 'http://github.com/Test-More/test-more/issues', + 'Test::use::ok' => 'http://github.com/Test-More/test-more/issues', 'Text::Balanced' => undef, 'Text::ParseWords' => undef, 'Text::Tabs' => undef, 'Text::Wrap' => undef, 'Tie::RefHash' => undef, - 'Time::Local' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=Time-Local', + 'Time::Local' => 'https://github.com/houseabsolute/Time-Local/issues', 'Time::Piece' => undef, 'Time::Seconds' => undef, 'Unicode::Collate' => undef, @@ -13882,7 +15232,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'bigrat' => undef, 'encoding' => undef, 'experimental' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=experimental', - 'ok' => 'http://github.com/Test-More/test-more/issues/', + 'ok' => 'http://github.com/Test-More/test-more/issues', 'parent' => undef, 'perlfaq' => 'https://github.com/perl-doc-cats/perlfaq/issues', 'version' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=version', diff --git a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm index 90662fc..dedd3ab 100644 --- a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm +++ b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm @@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta; use strict; use vars qw($VERSION); -$VERSION = '5.20160506'; +$VERSION = '5.20170114_24'; sub TIEHASH { my ($class, $changed, $removed, $parent) = @_; diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm index 9099245..71edc4f 100644 --- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm +++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm @@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities]; use Module::CoreList; use Module::CoreList::TieHashDelta; -$VERSION = '5.20160506'; +$VERSION = '5.20170114_24'; sub utilities { my $perl = shift; @@ -1150,6 +1150,76 @@ my %delta = ( removed => { } }, + 5.025000 => { + delta_from => 5.024000, + changed => { + }, + removed => { + } + }, + 5.025001 => { + delta_from => 5.025000, + changed => { + }, + removed => { + } + }, + 5.025002 => { + delta_from => 5.025001, + changed => { + }, + removed => { + } + }, + 5.025003 => { + delta_from => 5.025002, + changed => { + }, + removed => { + } + }, + 5.025004 => { + delta_from => 5.025003, + changed => { + }, + removed => { + } + }, + 5.025005 => { + delta_from => 5.025004, + changed => { + }, + removed => { + } + }, + 5.025006 => { + delta_from => 5.025005, + changed => { + }, + removed => { + } + }, + 5.025007 => { + delta_from => 5.025006, + changed => { + }, + removed => { + } + }, + 5.025008 => { + delta_from => 5.025007, + changed => { + }, + removed => { + } + }, + 5.024001 => { + delta_from => 5.024000, + changed => { + }, + removed => { + } + }, ); for my $version (sort { $a <=> $b } keys %delta) { diff --git a/dist/Module-CoreList/t/is_core.t b/dist/Module-CoreList/t/is_core.t index cc06a21..1ddc260 100644 --- a/dist/Module-CoreList/t/is_core.t +++ b/dist/Module-CoreList/t/is_core.t @@ -1,7 +1,7 @@ #!perl -w use strict; use Module::CoreList; -use Test::More tests => 38; +use Test::More tests => 43; BEGIN { require_ok('Module::CoreList'); } @@ -28,6 +28,13 @@ ok(Module::CoreList::is_core('attributes', undef, '5.006001') == 1, "attributes ok(Module::CoreList::is_core('Pod::Plainer', undef, '5.012001') == 1, "Pod::Plainer was core in 5.12.1"); ok(Module::CoreList::is_core('Pod::Plainer', undef, '5.016003') == 0, "Pod::Plainer was removed in 5.13.1"); +ok(!Module::CoreList::is_core('File::Temp', 0, '5.006'), 'File::Temp is not in 5.006000'); +ok(Module::CoreList::is_core('File::Temp', 0, '5.006001'), 'File::Temp is in 5.006001'); +ok(!Module::CoreList::is_core('File::Temp', '0.12', '5.006'), 'File::Temp 0.12 is not in 5.006000'); +ok(Module::CoreList::is_core('File::Temp', '0.12', '5.006001'), 'File::Temp 0.12 is in 5.006001'); +ok(Module::CoreList::is_core('File::Temp', '0.12', '5.006002'), 'File::Temp 0.12 is in 5.006002'); + + # history of module 'encoding' in core # version 1.00 included in 5.007003 # version 1.35 included in 5.008 diff --git a/dist/Net-Ping/lib/Net/Ping.pm b/dist/Net-Ping/lib/Net/Ping.pm index 2766c9e..86b0dfd 100644 --- a/dist/Net-Ping/lib/Net/Ping.pm +++ b/dist/Net-Ping/lib/Net/Ping.pm @@ -17,7 +17,7 @@ use Time::HiRes; @ISA = qw(Exporter); @EXPORT = qw(pingecho); -$VERSION = "2.43"; +$VERSION = "2.43_01"; # Constants @@ -410,7 +410,11 @@ sub ping_external { $timeout # Seconds after which ping times out ) = @_; - eval { require Net::Ping::External; } + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Net::Ping::External; + } or croak('Protocol "external" not supported on your system: Net::Ping::External not found'); return Net::Ping::External::ping(ip => $ip, timeout => $timeout); } diff --git a/dist/PathTools/Cwd.pm b/dist/PathTools/Cwd.pm index e8b9f19..3b63889 100644 --- a/dist/PathTools/Cwd.pm +++ b/dist/PathTools/Cwd.pm @@ -3,7 +3,7 @@ use strict; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); -$VERSION = '3.63'; +$VERSION = '3.63_01'; my $xs_version = $VERSION; $VERSION =~ tr/_//d; @@ -40,7 +40,10 @@ if ($^O eq 'os2') { my $use_vms_feature; BEGIN { if ($^O eq 'VMS') { - if (eval { local $SIG{__DIE__}; require VMS::Feature; }) { + if (eval { local $SIG{__DIE__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require VMS::Feature; }) { $use_vms_feature = 1; } } diff --git a/dist/PathTools/lib/File/Spec.pm b/dist/PathTools/lib/File/Spec.pm index 32b987e..3ef0f33 100644 --- a/dist/PathTools/lib/File/Spec.pm +++ b/dist/PathTools/lib/File/Spec.pm @@ -3,7 +3,7 @@ package File::Spec; use strict; use vars qw(@ISA $VERSION); -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; my %module = (MacOS => 'Mac', diff --git a/dist/PathTools/lib/File/Spec/Cygwin.pm b/dist/PathTools/lib/File/Spec/Cygwin.pm index 2092eb8..10b14c4 100644 --- a/dist/PathTools/lib/File/Spec/Cygwin.pm +++ b/dist/PathTools/lib/File/Spec/Cygwin.pm @@ -4,7 +4,7 @@ use strict; use vars qw(@ISA $VERSION); require File::Spec::Unix; -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; @ISA = qw(File::Spec::Unix); @@ -137,7 +137,11 @@ sub case_tolerant { if ($mntopts and ($mntopts =~ /,managed/)) { return 0; } - eval { require Win32API::File; } or return 1; + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Win32API::File; + } or return 1; my $osFsType = "\0"x256; my $osVolName = "\0"x256; my $ouFsFlags = 0; diff --git a/dist/PathTools/lib/File/Spec/Epoc.pm b/dist/PathTools/lib/File/Spec/Epoc.pm index 22f0192..9b9e1fa 100644 --- a/dist/PathTools/lib/File/Spec/Epoc.pm +++ b/dist/PathTools/lib/File/Spec/Epoc.pm @@ -3,7 +3,7 @@ package File::Spec::Epoc; use strict; use vars qw($VERSION @ISA); -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; require File::Spec::Unix; diff --git a/dist/PathTools/lib/File/Spec/Functions.pm b/dist/PathTools/lib/File/Spec/Functions.pm index af2c498..a4e1b1b 100644 --- a/dist/PathTools/lib/File/Spec/Functions.pm +++ b/dist/PathTools/lib/File/Spec/Functions.pm @@ -5,7 +5,7 @@ use strict; use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION); -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; require Exporter; diff --git a/dist/PathTools/lib/File/Spec/Mac.pm b/dist/PathTools/lib/File/Spec/Mac.pm index 52c3bfe..22424f3 100644 --- a/dist/PathTools/lib/File/Spec/Mac.pm +++ b/dist/PathTools/lib/File/Spec/Mac.pm @@ -4,7 +4,7 @@ use strict; use vars qw(@ISA $VERSION); require File::Spec::Unix; -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; @ISA = qw(File::Spec::Unix); diff --git a/dist/PathTools/lib/File/Spec/OS2.pm b/dist/PathTools/lib/File/Spec/OS2.pm index 804ecdb..0119042 100644 --- a/dist/PathTools/lib/File/Spec/OS2.pm +++ b/dist/PathTools/lib/File/Spec/OS2.pm @@ -4,7 +4,7 @@ use strict; use vars qw(@ISA $VERSION); require File::Spec::Unix; -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; @ISA = qw(File::Spec::Unix); diff --git a/dist/PathTools/lib/File/Spec/Unix.pm b/dist/PathTools/lib/File/Spec/Unix.pm index 3916a11..9598dbb 100644 --- a/dist/PathTools/lib/File/Spec/Unix.pm +++ b/dist/PathTools/lib/File/Spec/Unix.pm @@ -3,7 +3,7 @@ package File::Spec::Unix; use strict; use vars qw($VERSION); -$VERSION = '3.63'; +$VERSION = '3.63_01'; my $xs_version = $VERSION; $VERSION =~ tr/_//d; diff --git a/dist/PathTools/lib/File/Spec/VMS.pm b/dist/PathTools/lib/File/Spec/VMS.pm index 02cc0b0..c0cc1e5 100644 --- a/dist/PathTools/lib/File/Spec/VMS.pm +++ b/dist/PathTools/lib/File/Spec/VMS.pm @@ -4,7 +4,7 @@ use strict; use vars qw(@ISA $VERSION); require File::Spec::Unix; -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; @ISA = qw(File::Spec::Unix); @@ -39,7 +39,10 @@ via the C CRTL feature. my $use_feature; BEGIN { - if (eval { local $SIG{__DIE__}; require VMS::Feature; }) { + if (eval { local $SIG{__DIE__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require VMS::Feature; }) { $use_feature = 1; } } diff --git a/dist/PathTools/lib/File/Spec/Win32.pm b/dist/PathTools/lib/File/Spec/Win32.pm index 1105b67..578d61b 100644 --- a/dist/PathTools/lib/File/Spec/Win32.pm +++ b/dist/PathTools/lib/File/Spec/Win32.pm @@ -5,7 +5,7 @@ use strict; use vars qw(@ISA $VERSION); require File::Spec::Unix; -$VERSION = '3.63'; +$VERSION = '3.63_01'; $VERSION =~ tr/_//d; @ISA = qw(File::Spec::Unix); @@ -90,7 +90,11 @@ Default: 1 =cut sub case_tolerant { - eval { require Win32API::File; } or return 1; + eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Win32API::File; + } or return 1; my $drive = shift || "C:"; my $osFsType = "\0"x256; my $osVolName = "\0"x256; diff --git a/dist/Storable/Storable.pm b/dist/Storable/Storable.pm index c8f6db1..5823b93 100644 --- a/dist/Storable/Storable.pm +++ b/dist/Storable/Storable.pm @@ -22,10 +22,16 @@ package Storable; @ISA = qw(Exporter); use vars qw($canonical $forgive_me $VERSION); -$VERSION = '2.56'; +$VERSION = '2.56_01'; BEGIN { - if (eval { local $SIG{__DIE__}; require Log::Agent; 1 }) { + if (eval { + local $SIG{__DIE__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Log::Agent; + 1; + }) { Log::Agent->import; } # diff --git a/dist/Test/lib/Test.pm b/dist/Test/lib/Test.pm index de20922..3350517 100644 --- a/dist/Test/lib/Test.pm +++ b/dist/Test/lib/Test.pm @@ -20,7 +20,7 @@ sub _reset_globals { $planned = 0; } -$VERSION = '1.28'; +$VERSION = '1.28_01'; require Exporter; @ISA=('Exporter'); @@ -505,7 +505,12 @@ sub _diff_complain { my($result, $expected, $detail, $prefix) = @_; return _diff_complain_external(@_) if $ENV{PERL_TEST_DIFF}; return _diff_complain_algdiff(@_) - if eval { require Algorithm::Diff; Algorithm::Diff->VERSION(1.15); 1; }; + if eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Algorithm::Diff; Algorithm::Diff->VERSION(1.15); + 1; + }; $told_about_diff++ or print $TESTERR <<"EOT"; # $prefix (Install the Algorithm::Diff module to have differences in multiline diff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL index 8a8852e..09f9d4b 100644 --- a/dist/XSLoader/XSLoader_pm.PL +++ b/dist/XSLoader/XSLoader_pm.PL @@ -11,7 +11,7 @@ print OUT <<'EOT'; package XSLoader; -$VERSION = "0.21"; +$VERSION = "0.22"; #use strict; @@ -93,6 +93,43 @@ print OUT <<'EOT'; $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename EOT +my $to_print = <<'EOT'; + # Does this look like a relative path? + if ($modlibname !~ m{regexp}) { +EOT + +$to_print =~ s~regexp~ + $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'amigaos' + ? '^(?:[A-Za-z]:)?[\\\/]' # Optional drive letter + : '^/' +~e; + +print OUT $to_print, <<'EOT'; + # Someone may have a #line directive that changes the file name, or + # may be calling XSLoader::load from inside a string eval. We cer- + # tainly do not want to go loading some code that is not in @INC, + # as it could be untrusted. + # + # We could just fall back to DynaLoader here, but then the rest of + # this function would go untested in the perl core, since all @INC + # paths are relative during testing. That would be a time bomb + # waiting to happen, since bugs could be introduced into the code. + # + # So look through @INC to see if $modlibname is in it. A rela- + # tive $modlibname is not a common occurrence, so this block is + # not hot code. + FOUND: { + for (@INC) { + if ($_ eq $modlibname) { + last FOUND; + } + } + # Not found. Fall back to DynaLoader. + goto \&XSLoader::bootstrap_inherit; + } + } +EOT + my $dl_dlext = quotemeta($Config::Config{'dlext'}); print OUT <<"EOT"; @@ -218,7 +255,7 @@ XSLoader - Dynamically load C libraries into Perl code =head1 VERSION -Version 0.17 +Version 0.22 =head1 SYNOPSIS diff --git a/dist/XSLoader/t/XSLoader.t b/dist/XSLoader/t/XSLoader.t index 2ff11fe..1e86faa 100644 --- a/dist/XSLoader/t/XSLoader.t +++ b/dist/XSLoader/t/XSLoader.t @@ -33,7 +33,7 @@ my %modules = ( 'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep' ) |, # 5.7.3 ); -plan tests => keys(%modules) * 3 + 9; +plan tests => keys(%modules) * 3 + 10; # Try to load the module use_ok( 'XSLoader' ); @@ -125,3 +125,28 @@ XSLoader::load("Devel::Peek"); EOS or ::diag $@; } + +SKIP: { + skip "File::Path not available", 1 + unless eval { require File::Path }; + my $name = "phooo$$"; + File::Path::make_path("$name/auto/Foo/Bar"); + open my $fh, + ">$name/auto/Foo/Bar/Bar.$Config::Config{'dlext'}"; + close $fh; + my $fell_back; + local *XSLoader::bootstrap_inherit = sub { + $fell_back++; + # Break out of the calling subs + goto the_test; + }; + eval <cmd_args =~ /\A(?:(\d*)\s*(.*))?\z/) { # See if we've got the necessary support. - if (!eval { require PadWalker; PadWalker->VERSION(0.08) }) { + if (!eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require PadWalker; PadWalker->VERSION(0.08) }) { my $Err = $@; _db_warn( $Err =~ /locate/ @@ -9441,7 +9444,10 @@ if PadWalker could be loaded. =cut - if (not $text =~ /::/ and eval { require PadWalker } ) { + if (not $text =~ /::/ and eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require PadWalker } ) { my $level = 1; while (1) { my @info = caller($level); diff --git a/patchlevel.h b/patchlevel.h index bcb921f..0d8ab18 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -15,7 +15,7 @@ #define PERL_REVISION 5 /* age */ #define PERL_VERSION 24 /* epoch */ -#define PERL_SUBVERSION 0 /* generation */ +#define PERL_SUBVERSION 1 /* generation */ /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API diff --git a/perl.c b/perl.c index 228a0d8..6197ea0 100644 --- a/perl.c +++ b/perl.c @@ -3,7 +3,7 @@ * * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - * 2013, 2014, 2015, 2016 by Larry Wall and others + * 2013, 2014, 2015, 2016, 2017 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -3116,6 +3116,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp) " M trace smart match resolution\n" " B dump suBroutine definitions, including special Blocks like BEGIN\n", " L trace some locale setting information--for Perl core development\n", + " i trace PerlIO layer processing\n", NULL }; UV uv = 0; @@ -3124,7 +3125,7 @@ Perl_get_debug_opts(pTHX_ const char **s, bool givehelp) if (isALPHA(**s)) { /* if adding extra options, remember to update DEBUG_MASK */ - static const char debopts[] = "psltocPmfrxuUHXDSTRJvCAqMBL"; + static const char debopts[] = "psltocPmfrxuUHXDSTRJvCAqMBLi"; for (; isWORDCHAR(**s); (*s)++) { const char * const d = strchr(debopts,**s); @@ -3557,7 +3558,7 @@ S_minus_v(pTHX) #endif PerlIO_printf(PIO_stdout, - "\n\nCopyright 1987-2016, Larry Wall\n"); + "\n\nCopyright 1987-2017, Larry Wall\n"); #ifdef MSDOS PerlIO_printf(PIO_stdout, "\nMS-DOS port Copyright (c) 1989, 1990, Diomidis Spinellis\n"); diff --git a/perl.h b/perl.h index 396bc92..f8f0069 100644 --- a/perl.h +++ b/perl.h @@ -4171,7 +4171,8 @@ Gid_t getegid (void); #define DEBUG_M_FLAG 0x01000000 /*16777216*/ #define DEBUG_B_FLAG 0x02000000 /*33554432*/ #define DEBUG_L_FLAG 0x04000000 /*67108864*/ -#define DEBUG_MASK 0x07FFEFFF /* mask of all the standard flags */ +#define DEBUG_i_FLAG 0x08000000 /*134217728*/ +#define DEBUG_MASK 0x0FFFEFFF /* mask of all the standard flags */ #define DEBUG_DB_RECURSE_FLAG 0x40000000 #define DEBUG_TOP_FLAG 0x80000000 /* -D was given --> PL_debug |= FLAG */ @@ -4203,6 +4204,7 @@ Gid_t getegid (void); # define DEBUG_M_TEST_ (PL_debug & DEBUG_M_FLAG) # define DEBUG_B_TEST_ (PL_debug & DEBUG_B_FLAG) # define DEBUG_L_TEST_ (PL_debug & DEBUG_L_FLAG) +# define DEBUG_i_TEST_ (PL_debug & DEBUG_i_FLAG) # define DEBUG_Xv_TEST_ (DEBUG_X_TEST_ && DEBUG_v_TEST_) # define DEBUG_Uv_TEST_ (DEBUG_U_TEST_ && DEBUG_v_TEST_) # define DEBUG_Pv_TEST_ (DEBUG_P_TEST_ && DEBUG_v_TEST_) @@ -4237,6 +4239,7 @@ Gid_t getegid (void); # define DEBUG_M_TEST DEBUG_M_TEST_ # define DEBUG_B_TEST DEBUG_B_TEST_ # define DEBUG_L_TEST DEBUG_L_TEST_ +# define DEBUG_i_TEST DEBUG_i_TEST_ # define DEBUG_Xv_TEST DEBUG_Xv_TEST_ # define DEBUG_Uv_TEST DEBUG_Uv_TEST_ # define DEBUG_Pv_TEST DEBUG_Pv_TEST_ @@ -4292,6 +4295,7 @@ Gid_t getegid (void); # define DEBUG_M(a) DEBUG__(DEBUG_M_TEST, a) # define DEBUG_B(a) DEBUG__(DEBUG_B_TEST, a) # define DEBUG_L(a) DEBUG__(DEBUG_L_TEST, a) +# define DEBUG_i(a) DEBUG__(DEBUG_i_TEST, a) #else /* DEBUGGING */ @@ -4322,6 +4326,7 @@ Gid_t getegid (void); # define DEBUG_M_TEST (0) # define DEBUG_B_TEST (0) # define DEBUG_L_TEST (0) +# define DEBUG_i_TEST (0) # define DEBUG_Xv_TEST (0) # define DEBUG_Uv_TEST (0) # define DEBUG_Pv_TEST (0) @@ -4356,6 +4361,7 @@ Gid_t getegid (void); # define DEBUG_M(a) # define DEBUG_B(a) # define DEBUG_L(a) +# define DEBUG_i(a) # define DEBUG_Xv(a) # define DEBUG_Uv(a) # define DEBUG_Pv(a) diff --git a/perlio.c b/perlio.c index 11a66d0..27710e3 100644 --- a/perlio.c +++ b/perlio.c @@ -351,6 +351,10 @@ PerlIO_debug(const char *fmt, ...) va_list ap; dSYS; va_start(ap, fmt); + + if (!DEBUG_i_TEST) + return; + if (!PL_perlio_debug_fd) { if (!TAINTING_get && PerlProc_getuid() == PerlProc_geteuid() && @@ -360,11 +364,11 @@ PerlIO_debug(const char *fmt, ...) PL_perlio_debug_fd = PerlLIO_open3(s, O_WRONLY | O_CREAT | O_APPEND, 0666); else - PL_perlio_debug_fd = -1; + PL_perlio_debug_fd = PerlLIO_dup(2); /* stderr */ } else { - /* tainting or set*id, so ignore the environment, and ensure we - skip these tests next time through. */ - PL_perlio_debug_fd = -1; + /* tainting or set*id, so ignore the environment and send the + debug output to stderr, like other -D switches. */ + PL_perlio_debug_fd = PerlLIO_dup(2); /* stderr */ } } if (PL_perlio_debug_fd > 0) { @@ -477,7 +481,7 @@ PerlIO_fdupopen(pTHX_ PerlIO *f, CLONE_PARAMS *param, int flags) { if (PerlIOValid(f)) { const PerlIO_funcs * const tab = PerlIOBase(f)->tab; - PerlIO_debug("fdupopen f=%p param=%p\n",(void*)f,(void*)param); + DEBUG_i( PerlIO_debug("fdupopen f=%p param=%p\n",(void*)f,(void*)param) ); if (tab && tab->Dup) return (*tab->Dup)(aTHX_ PerlIO_allocate(aTHX), f, param, flags); else { @@ -586,7 +590,7 @@ PerlIO_clone(pTHX_ PerlInterpreter *proto, CLONE_PARAMS *param) PL_known_layers = PerlIO_clone_list(aTHX_ proto->Iknown_layers, param); PL_def_layerlist = PerlIO_clone_list(aTHX_ proto->Idef_layerlist, param); PerlIO_init_table(aTHX); - PerlIO_debug("Clone %p from %p\n",(void*)aTHX,(void*)proto); + DEBUG_i( PerlIO_debug("Clone %p from %p\n",(void*)aTHX,(void*)proto) ); while ((f = *table)) { int i; table = (PerlIOl **) (f++); @@ -610,7 +614,7 @@ PerlIO_destruct(pTHX) PerlIOl **table = &PL_perlio; PerlIOl *f; #ifdef USE_ITHREADS - PerlIO_debug("Destruct %p\n",(void*)aTHX); + DEBUG_i( PerlIO_debug("Destruct %p\n",(void*)aTHX) ); #endif while ((f = *table)) { int i; @@ -620,7 +624,7 @@ PerlIO_destruct(pTHX) const PerlIOl *l; while ((l = *x)) { if (l->tab && l->tab->kind & PERLIO_K_DESTRUCT) { - PerlIO_debug("Destruct popping %s\n", l->tab->name); + DEBUG_i( PerlIO_debug("Destruct popping %s\n", l->tab->name) ); PerlIO_flush(x); PerlIO_pop(aTHX_ x); } @@ -639,8 +643,8 @@ PerlIO_pop(pTHX_ PerlIO *f) const PerlIOl *l = *f; VERIFY_HEAD(f); if (l) { - PerlIO_debug("PerlIO_pop f=%p %s\n", (void*)f, - l->tab ? l->tab->name : "(Null)"); + DEBUG_i( PerlIO_debug("PerlIO_pop f=%p %s\n", (void*)f, + l->tab ? l->tab->name : "(Null)") ); if (l->tab && l->tab->Popped) { /* * If popped returns non-zero do not free its layer structure @@ -713,7 +717,7 @@ PerlIO_find_layer(pTHX_ const char *name, STRLEN len, int load) PerlIO_funcs * const f = PL_known_layers->array[i].funcs; const STRLEN this_len = strlen(f->name); if (this_len == len && memEQ(f->name, name, len)) { - PerlIO_debug("%.*s => %p\n", (int) len, name, (void*)f); + DEBUG_i( PerlIO_debug("%.*s => %p\n", (int) len, name, (void*)f) ); return f; } } @@ -741,7 +745,7 @@ PerlIO_find_layer(pTHX_ const char *name, STRLEN len, int load) return PerlIO_find_layer(aTHX_ name, len, 0); } } - PerlIO_debug("Cannot find %.*s\n", (int) len, name); + DEBUG_i( PerlIO_debug("Cannot find %.*s\n", (int) len, name) ); return NULL; } @@ -844,8 +848,9 @@ XS(XS_PerlIO__Layer__NoWarnings) */ dXSARGS; PERL_UNUSED_ARG(cv); - if (items) - PerlIO_debug("warning:%s\n",SvPV_nolen_const(ST(0))); + DEBUG_i( + if (items) + PerlIO_debug("warning:%s\n",SvPV_nolen_const(ST(0))) ); XSRETURN(0); } @@ -874,7 +879,7 @@ PerlIO_define_layer(pTHX_ PerlIO_funcs *tab) if (!PL_known_layers) PL_known_layers = PerlIO_list_alloc(aTHX); PerlIO_list_push(aTHX_ PL_known_layers, tab, NULL); - PerlIO_debug("define %s %p\n", tab->name, (void*)tab); + DEBUG_i( PerlIO_debug("define %s %p\n", tab->name, (void*)tab) ); } int @@ -979,7 +984,7 @@ PerlIO_default_buffer(pTHX_ PerlIO_list_t *av) if (PerlIO_stdio.Set_ptrcnt) tab = &PerlIO_stdio; #endif - PerlIO_debug("Pushing %s\n", tab->name); + DEBUG_i( PerlIO_debug("Pushing %s\n", tab->name) ); PerlIO_list_push(aTHX_ av, (PerlIO_funcs *)tab, &PL_sv_undef); } @@ -993,8 +998,8 @@ PerlIO_funcs * PerlIO_layer_fetch(pTHX_ PerlIO_list_t *av, IV n, PerlIO_funcs *def) { if (n >= 0 && n < av->cur) { - PerlIO_debug("Layer %" IVdf " is %s\n", n, - av->array[n].funcs->name); + DEBUG_i( PerlIO_debug("Layer %" IVdf " is %s\n", n, + av->array[n].funcs->name) ); return av->array[n].funcs; } if (!def) @@ -1145,9 +1150,9 @@ PerlIO_push(pTHX_ PerlIO *f, PERLIO_FUNCS_DECL(*tab), const char *mode, SV *arg) l->tab = (PerlIO_funcs*) tab; l->head = ((PerlIOl*)f)->head; *f = l; - PerlIO_debug("PerlIO_push f=%p %s %s %p\n", - (void*)f, tab->name, - (mode) ? mode : "(Null)", (void*)arg); + DEBUG_i( PerlIO_debug("PerlIO_push f=%p %s %s %p\n", + (void*)f, tab->name, + (mode) ? mode : "(Null)", (void*)arg) ); if (*l->tab->Pushed && (*l->tab->Pushed) (aTHX_ f, mode, arg, (PerlIO_funcs*) tab) != 0) { @@ -1161,8 +1166,8 @@ PerlIO_push(pTHX_ PerlIO *f, PERLIO_FUNCS_DECL(*tab), const char *mode, SV *arg) } else if (f) { /* Pseudo-layer where push does its own stack adjust */ - PerlIO_debug("PerlIO_push f=%p %s %s %p\n", (void*)f, tab->name, - (mode) ? mode : "(Null)", (void*)arg); + DEBUG_i( PerlIO_debug("PerlIO_push f=%p %s %s %p\n", (void*)f, tab->name, + (mode) ? mode : "(Null)", (void*)arg) ); if (tab->Pushed && (*tab->Pushed) (aTHX_ f, mode, arg, (PerlIO_funcs*) tab) != 0) { return NULL; @@ -1241,8 +1246,8 @@ PerlIORaw_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab) } } if (PerlIOValid(f)) { - PerlIO_debug(":raw f=%p :%s\n", (void*)f, - PerlIOBase(f)->tab ? PerlIOBase(f)->tab->name : "(Null)"); + DEBUG_i( PerlIO_debug(":raw f=%p :%s\n", (void*)f, + PerlIOBase(f)->tab ? PerlIOBase(f)->tab->name : "(Null)") ); return 0; } } @@ -1294,10 +1299,11 @@ PerlIO_apply_layers(pTHX_ PerlIO *f, const char *mode, const char *names) int PerlIO_binmode(pTHX_ PerlIO *f, int iotype, int mode, const char *names) { - PerlIO_debug("PerlIO_binmode f=%p %s %c %x %s\n", (void*)f, - (PerlIOBase(f) && PerlIOBase(f)->tab) ? - PerlIOBase(f)->tab->name : "(Null)", - iotype, mode, (names) ? names : "(Null)"); + DEBUG_i( + PerlIO_debug("PerlIO_binmode f=%p %s %c %x %s\n", (void*)f, + (PerlIOBase(f) && PerlIOBase(f)->tab) ? + PerlIOBase(f)->tab->name : "(Null)", + iotype, mode, (names) ? names : "(Null)") ); if (names) { /* Do not flush etc. if (e.g.) switching encodings. @@ -1530,9 +1536,9 @@ PerlIO_openn(pTHX_ const char *layers, const char *mode, int fd, if (narg > 1 && !(tab->kind & PERLIO_K_MULTIARG)) { Perl_croak(aTHX_ "More than one argument to open(,':%s')",tab->name); } - PerlIO_debug("openn(%s,'%s','%s',%d,%x,%o,%p,%d,%p)\n", - tab->name, layers ? layers : "(Null)", mode, fd, - imode, perm, (void*)f, narg, (void*)args); + DEBUG_i( PerlIO_debug("openn(%s,'%s','%s',%d,%x,%o,%p,%d,%p)\n", + tab->name, layers ? layers : "(Null)", mode, fd, + imode, perm, (void*)f, narg, (void*)args) ); if (tab->Open) f = (*tab->Open) (aTHX_ tab, layera, n, mode, fd, imode, perm, f, narg, args); @@ -1609,7 +1615,7 @@ Perl_PerlIO_flush(pTHX_ PerlIO *f) return 0; /* If no Flush defined, silently succeed. */ } else { - PerlIO_debug("Cannot flush f=%p\n", (void*)f); + DEBUG_i( PerlIO_debug("Cannot flush f=%p\n", (void*)f) ); SETERRNO(EBADF, SS_IVCHAN); return -1; } @@ -2001,9 +2007,11 @@ PerlIOBase_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab) } } #if 0 + DEBUG_i( PerlIO_debug("PerlIOBase_pushed f=%p %s %s fl=%08" UVxf " (%s)\n", (void*)f, PerlIOBase(f)->tab->name, (omode) ? omode : "(Null)", l->flags, PerlIO_modestr(f, temp)); + ); #endif return 0; } @@ -2187,9 +2195,9 @@ PerlIOBase_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags) SV *arg = NULL; char buf[8]; assert(self); - PerlIO_debug("PerlIOBase_dup %s f=%p o=%p param=%p\n", - self->name, - (void*)f, (void*)o, (void*)param); + DEBUG_i(PerlIO_debug("PerlIOBase_dup %s f=%p o=%p param=%p\n", + self->name, + (void*)f, (void*)o, (void*)param) ); if (self->Getarg) arg = (*self->Getarg)(aTHX_ o, param, flags); f = PerlIO_push(aTHX_ f, self, PerlIO_modestr(o,buf), arg); @@ -2216,8 +2224,8 @@ S_more_refcounted_fds(pTHX_ const int new_fd) PERL_UNUSED_CONTEXT; #endif - PerlIO_debug("More fds - old=%d, need %d, new=%d\n", - old_max, new_fd, new_max); + DEBUG_i( PerlIO_debug("More fds - old=%d, need %d, new=%d\n", + old_max, new_fd, new_max) ); if (new_fd < old_max) { return; @@ -2239,9 +2247,9 @@ S_more_refcounted_fds(pTHX_ const int new_fd) PL_perlio_fd_refcnt_size = new_max; PL_perlio_fd_refcnt = new_array; - PerlIO_debug("Zeroing %p, %d\n", - (void*)(new_array + old_max), - new_max - old_max); + DEBUG_i( PerlIO_debug("Zeroing %p, %d\n", + (void*)(new_array + old_max), + new_max - old_max) ); Zero(new_array + old_max, new_max - old_max, int); } @@ -2273,8 +2281,8 @@ PerlIOUnix_refcnt_inc(int fd) Perl_croak(aTHX_ "refcnt_inc: fd %d: %d <= 0\n", fd, PL_perlio_fd_refcnt[fd]); } - PerlIO_debug("refcnt_inc: fd %d refcnt=%d\n", - fd, PL_perlio_fd_refcnt[fd]); + DEBUG_i( PerlIO_debug("refcnt_inc: fd %d refcnt=%d\n", + fd, PL_perlio_fd_refcnt[fd]) ); #ifdef USE_ITHREADS MUTEX_UNLOCK(&PL_perlio_mutex); @@ -2290,7 +2298,11 @@ PerlIOUnix_refcnt_dec(int fd) { int cnt = 0; if (fd >= 0) { +#ifdef DEBUGGING + dTHX; +#else dVAR; +#endif #ifdef USE_ITHREADS MUTEX_LOCK(&PL_perlio_mutex); #endif @@ -2305,7 +2317,7 @@ PerlIOUnix_refcnt_dec(int fd) fd, PL_perlio_fd_refcnt[fd]); } cnt = --PL_perlio_fd_refcnt[fd]; - PerlIO_debug("refcnt_dec: fd %d refcnt=%d\n", fd, cnt); + DEBUG_i( PerlIO_debug("refcnt_dec: fd %d refcnt=%d\n", fd, cnt) ); #ifdef USE_ITHREADS MUTEX_UNLOCK(&PL_perlio_mutex); #endif @@ -2352,9 +2364,9 @@ PerlIO_cleanup(pTHX) { int i; #ifdef USE_ITHREADS - PerlIO_debug("Cleanup layers for %p\n",(void*)aTHX); + DEBUG_i( PerlIO_debug("Cleanup layers for %p\n",(void*)aTHX) ); #else - PerlIO_debug("Cleanup layers\n"); + DEBUG_i( PerlIO_debug("Cleanup layers\n") ); #endif /* Raise STDIN..STDERR refcount so we don't close them */ @@ -2557,11 +2569,11 @@ PerlIOUnix_setfd(pTHX_ PerlIO *f, int fd, int imode) Stat_t st; if (PerlLIO_fstat(fd, &st) == 0) { if (!S_ISREG(st.st_mode)) { - PerlIO_debug("%d is not regular file\n",fd); + DEBUG_i( PerlIO_debug("%d is not regular file\n",fd) ); PerlIOBase(f)->flags |= PERLIO_F_NOTREG; } else { - PerlIO_debug("%d _is_ a regular file\n",fd); + DEBUG_i( PerlIO_debug("%d _is_ a regular file\n",fd) ); } } #endif @@ -4493,9 +4505,11 @@ PerlIOCrlf_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab) PerlIOBase(f)->flags |= PERLIO_F_CRLF; code = PerlIOBuf_pushed(aTHX_ f, mode, arg, tab); #if 0 + DEBUG_i( PerlIO_debug("PerlIOCrlf_pushed f=%p %s %s fl=%08" UVxf "\n", (void*)f, PerlIOBase(f)->tab->name, (mode) ? mode : "(Null)", PerlIOBase(f)->flags); + ); #endif { /* If the old top layer is a CRLF layer, reactivate it (if diff --git a/plan9/config.plan9 b/plan9/config.plan9 index 74b353f..a8e2783 100644 --- a/plan9/config.plan9 +++ b/plan9/config.plan9 @@ -3329,8 +3329,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.24.0" /**/ -#define PRIVLIB_EXP "/sys/lib/perl/5.24.0" /**/ +#define PRIVLIB "/sys/lib/perl/5.24.1" /**/ +#define PRIVLIB_EXP "/sys/lib/perl/5.24.1" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -3457,9 +3457,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.24.0/site_perl" /**/ -#define SITELIB_EXP "/sys/lib/perl/5.24.0/site_perl" /**/ -#define SITELIB_STEM "/sys/lib/perl/5.24.0/site_perl" /**/ +#define SITELIB "/sys/lib/perl/5.24.1/site_perl" /**/ +#define SITELIB_EXP "/sys/lib/perl/5.24.1/site_perl" /**/ +#define SITELIB_STEM "/sys/lib/perl/5.24.1/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 fef2205..4e92d01 100644 --- a/plan9/config_sh.sample +++ b/plan9/config_sh.sample @@ -36,8 +36,8 @@ api_subversion='0' api_version='24' api_versionstring='5.24.0' ar='ar' -archlib='/sys/lib/perl5/5.24.0/386' -archlibexp='/sys/lib/perl5/5.24.0/386' +archlib='/sys/lib/perl5/5.24.1/386' +archlibexp='/sys/lib/perl5/5.24.1/386' archname64='' archname='386' archobjs='' @@ -802,17 +802,17 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='/sys/lib/perl/5.24.0/386' +installarchlib='/sys/lib/perl/5.24.1/386' installbin='/usr/bin' installman1dir='/sys/man/1pub' installman3dir='/sys/man/2pub' installprefix='/usr' installprefixexp='/usr' -installprivlib='/sys/lib/perl/5.24.0' +installprivlib='/sys/lib/perl/5.24.1' installscript='/usr/bin' -installsitearch='/sys/lib/perl/5.24.0/site_perl/386' +installsitearch='/sys/lib/perl/5.24.1/site_perl/386' installsitebin='/usr/bin' -installsitelib='/sys/lib/perl/5.24.0/site_perl' +installsitelib='/sys/lib/perl/5.24.1/site_perl' installstyle='lib/perl5' installusrbinperl='undef' installvendorarch='' @@ -937,8 +937,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/sys/lib/perl/5.24.0' -privlibexp='/sys/lib/perl/5.24.0' +privlib='/sys/lib/perl/5.24.1' +privlibexp='/sys/lib/perl/5.24.1' procselfexe='' prototype='define' ptrsize='4' @@ -1003,13 +1003,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.24.0/site_perl/386' +sitearch='/sys/lib/perl/5.24.1/site_perl/386' sitearchexp='/sys/lib/perl/site_perl/386' sitebin='/usr/bin' sitebinexp='/usr/bin' -sitelib='/sys/lib/perl/5.24.0/site_perl' -sitelib_stem='/sys/lib/perl/5.24.0/site_perl' -sitelibexp='/sys/lib/perl/5.24.0/site_perl' +sitelib='/sys/lib/perl/5.24.1/site_perl' +sitelib_stem='/sys/lib/perl/5.24.1/site_perl' +sitelibexp='/sys/lib/perl/5.24.1/site_perl' siteprefix='/usr' siteprefixexp='/usr' sizesize='4' @@ -1042,7 +1042,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/sys/include/ape/string.h' submit='' -subversion='0' +subversion='1' sysman='/sys/man/1pub' tail='' tar='' @@ -1124,8 +1124,8 @@ vendorlib_stem='' vendorlibexp='' vendorprefix='' vendorprefixexp='' -version='5.24.0' -version_patchlevel_string='version 24 subversion 0' +version='5.24.1' +version_patchlevel_string='version 24 subversion 1' versiononly='undef' vi='' xlibpth='' @@ -1139,7 +1139,7 @@ config_args='' config_argc=0 PERL_REVISION=5 PERL_VERSION=24 -PERL_SUBVERSION=0 +PERL_SUBVERSION=1 PERL_API_REVISION=5 PERL_API_VERSION=24 PERL_API_SUBVERSION=0 diff --git a/pod/.gitignore b/pod/.gitignore index cd6539f..428d9cf 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl5240delta.pod +/perl5241delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index 181e7ca..671044e 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -180,6 +180,7 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5240delta Perl changes in version 5.24.0 perl5222delta Perl changes in version 5.22.2 perl5221delta Perl changes in version 5.22.1 perl5220delta Perl changes in version 5.22.0 diff --git a/pod/perl5240delta.pod b/pod/perl5240delta.pod new file mode 100644 index 0000000..0b0e8bc --- /dev/null +++ b/pod/perl5240delta.pod @@ -0,0 +1,2254 @@ +=encoding utf8 + +=head1 NAME + +perl5240delta - what is new for perl v5.24.0 + +=head1 DESCRIPTION + +This document describes the differences between the 5.22.0 release and the +5.24.0 release. + +=head1 Core Enhancements + +=head2 Postfix dereferencing is no longer experimental + +Using the C and C features no longer emits a +warning. Existing code that disables the C warning +category that they previously used will continue to work. The C +feature has no effect; all Perl code can use postfix dereferencing, +regardless of what feature declarations are in scope. The C<5.24> feature +bundle now includes the C feature. + +=head2 Unicode 8.0 is now supported + +For details on what is in this release, see +L. + +=head2 perl will now croak when closing an in-place output file fails + +Until now, failure to close the output file for an in-place edit was not +detected, meaning that the input file could be clobbered without the edit being +successfully completed. Now, when the output file cannot be closed +successfully, an exception is raised. + +=head2 New C<\b{lb}> boundary in regular expressions + +C stands for Line Break. It is a Unicode property +that determines where a line of text is suitable to break (typically so +that it can be output without overflowing the available horizontal +space). This capability has long been furnished by the +L module, but now a light-weight, non-customizable +version that is suitable for many purposes is in core Perl. + +=head2 C now works in UTF-8 locales + +L +now will successfully compile when S> is in effect. The compiled +pattern will use standard Unicode rules. If the runtime locale is not a +UTF-8 one, a warning is raised and standard Unicode rules are used +anyway. No tainting is done since the outcome does not actually depend +on the locale. + +=head2 Integer shift (C<< << >> and C<< >> >>) now more explicitly defined + +Negative shifts are reverse shifts: left shift becomes right shift, +and right shift becomes left shift. + +Shifting by the number of bits in a native integer (or more) is zero, +except when the "overshift" is right shifting a negative value under +C, in which case the result is -1 (arithmetic shift). + +Until now negative shifting and overshifting have been undefined +because they have relied on whatever the C implementation happens +to do. For example, for the overshift a common C behavior is +"modulo shift": + + 1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1 # Common C behavior. + + # And the same for <<, while Perl now produces 0 for both. + +Now these behaviors are well-defined under Perl, regardless of what +the underlying C implementation does. Note, however, that you are still +constrained by the native integer width: you need to know how far left you +can go. You can use for example: + + use Config; + my $wordbits = $Config{uvsize} * 8; # Or $Config{uvsize} << 3. + +If you need a more bits on the left shift, you can use for example +the C pragma, or the C module from CPAN. + +=head2 printf and sprintf now allow reordered precision arguments + +That is, C<< sprintf '|%.*2$d|', 2, 3 >> now returns C<|002|>. This extends +the existing reordering mechanism (which allows reordering for arguments +that are used as format fields, widths, and vector separators). + +=head2 More fields provided to C callback with C + +When passing the C flag to L, the +C, C, C, C, C and C fields are now +included in the hash passed to the handler, if supported by the +platform. + +=head2 Hashbang redirection to Perl 6 + +Previously perl would redirect to another interpreter if it found a +hashbang path unless the path contains "perl" (see L). To improve +compatability with Perl 6 this behavior has been extended to also redirect +if "perl" is followed by "6". + +=head1 Security + +=head2 Set proper umask before calling C + +In 5.22 perl started setting umask to 0600 before calling C +and restoring it afterwards. This wrongfully tells C to strip +the owner read and write bits from the given mode before applying it, +rather than the intended negation of leaving only those bits in place. + +Systems that use mode 0666 in C (like old versions of +glibc) create a file with permissions 0066, leaving world read and +write permissions regardless of current umask. + +This has been fixed by using umask 0177 instead. [perl #127322] + +=head2 Fix out of boundary access in Win32 path handling + +This is CVE-2015-8608. For more information see +L<[perl #126755]|https://rt.perl.org/Ticket/Display.html?id=126755> + +=head2 Fix loss of taint in canonpath + +This is CVE-2015-8607. For more information see +L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862> + +=head2 Avoid accessing uninitialized memory in win32 C + +Added validation that will detect both a short salt and invalid characters +in the salt. +L<[perl #126922]|https://rt.perl.org/Ticket/Display.html?id=126922> + +=head2 Remove duplicate environment variables from C + +Previously, if an environment variable appeared more than once in +C, C<%ENV> would contain the last entry for that name, +while a typical C would return the first entry. We now +make sure C<%ENV> contains the same as what C returns. + +Second, we remove duplicates from C, so if a setting +with that name is set in C<%ENV>, we won't pass an unsafe value +to a child process. + +[CVE-2016-2381] + +=head1 Incompatible Changes + +=head2 The C feature has been removed + +The experimental C feature (which allowed calling C, +C, C, C, C, C, C, and C on +a scalar argument) has been deemed unsuccessful. It has now been removed; +trying to use the feature (or to disable the C +warning it previously triggered) now yields an exception. + +=head2 Lexical $_ has been removed + +C was introduced in Perl 5.10, and subsequently caused much confusion +with no obvious solution. In Perl 5.18.0, it was made experimental on the +theory that it would either be removed or redesigned in a less confusing (but +backward-incompatible) way. Over the following years, no alternatives were +proposed. The feature has now been removed and will fail to compile. + +=head2 C is now tailored to Perl expectations + +This is now more suited to be a drop-in replacement for plain C<\b>, but +giving better results for parsing natural language. Previously it +strictly followed the current Unicode rules which calls for it to match +between each white space character. Now it doesn't generally match +within spans of white space, behaving like C<\b> does. See +L + +=head2 Regular expression compilation errors + +Some regular expression patterns that had runtime errors now +don't compile at all. + +Almost all Unicode properties using the C<\p{}> and C<\P{}> regular +expression pattern constructs are now checked for validity at pattern +compilation time, and invalid ones will cause the program to not +compile. In earlier releases, this check was often deferred until run +time. Whenever an error check is moved from run- to compile time, +erroneous code is caught 100% of the time, whereas before it would only +get caught if and when the offending portion actually gets executed, +which for unreachable code might be never. + +=head2 C now disallowed under C + +An empty C<\N{}> makes no sense, but for backwards compatibility is +accepted as doing nothing, though a deprecation warning is raised by +default. But now this is a fatal error under the experimental feature +L. + +=head2 Nested declarations are now disallowed + +A C, C, or C declaration is no longer allowed inside +of another C, C, or C declaration. + +For example, these are now fatal: + + my ($x, my($y)); + our (my $x); + +L<[perl #125587]|https://rt.perl.org/Ticket/Display.html?id=125587> + +L<[perl #121058]|https://rt.perl.org/Ticket/Display.html?id=121058> + +=head2 The C character class has been removed. + +This regular expression character class was deprecated in v5.20.0 and has +produced a deprecation warning since v5.22.0. It is now a compile-time +error. If you need to examine the individual bytes that make up a +UTF8-encoded character, then use C on the string (or a +copy) first. + +=head2 C no longer chdirs home + +Using C or C to chdir home has been deprecated since +perl v5.8, and will now fail. Use C instead. + +=head2 ASCII characters in variable names must now be all visible + +It was legal until now on ASCII platforms for variable names to contain +non-graphical ASCII control characters (ordinals 0 through 31, and 127, +which are the C0 controls and C). This usage has been +deprecated since v5.20, and as of now causes a syntax error. The +variables these names referred to are special, reserved by Perl for +whatever use it may choose, now, or in the future. Each such variable +has an alternative way of spelling it. Instead of the single +non-graphic control character, a two character sequence beginning with a +caret is used, like C<$^]> and C<${^GLOBAL_PHASE}>. Details are at +L. It remains legal, though unwise and deprecated (raising a +deprecation warning), to use certain non-graphic non-ASCII characters in +variables names when not under S>. No code should do this, +as all such variables are reserved by Perl, and Perl doesn't currently +define any of them (but could at any time, without notice). + +=head2 An off by one issue in C<$Carp::MaxArgNums> has been fixed + +C<$Carp::MaxArgNums> is supposed to be the number of arguments to display. +Prior to this version, it was instead showing C<$Carp::MaxArgNums> + 1 arguments, +contrary to the documentation. + +=head2 Only blanks and tabs are now allowed within C<[...]> within C<(?[...])>. + +The experimental Extended Bracketed Character Classes can contain regular +bracketed character classes within them. These differ from regular ones in +that white space is generally ignored, unless escaped by preceding it with a +backslash. The white space that is ignored is now limited to just tab C<\t> +and SPACE characters. Previously, it was any white space. See +L. + +=head1 Deprecations + +=head2 Using code points above the platform's C is now deprecated + +Unicode defines code points in the range C<0..0x10FFFF>. Some standards +at one time defined them up to 2**31 - 1, but Perl has allowed them to +be as high as anything that will fit in a word on the platform being +used. However, use of those above the platform's C is broken in +some constructs, notably C, regular expression patterns involving +quantifiers, and in some arithmetic and comparison operations, such as +being the upper limit of a loop. Now the use of such code points raises +a deprecation warning, unless that warning category is turned off. +C is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on +64-bit ones. + +=head2 Doing bitwise operations on strings containing code points above +0xFF is deprecated + +The string bitwise operators treat their operands as strings of bytes, +and values beyond 0xFF are nonsensical in this context. To operate on +encoded bytes, first encode the strings. To operate on code points' +numeric values, use C and C. In the future, this +warning will be replaced by an exception. + +=head2 C, C, C and C are deprecated on +:utf8 handles + +The C, C, C and C operators +are deprecated on handles that have the C<:utf8> layer, either +explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer. + +Both C and C currently use only the C<:utf8> flag for the +stream, ignoring the actual layers. Since C and C do no +UTF-8 validation they can end up creating invalidly encoded scalars. + +Similarly, C and C use only the C<:utf8> flag, otherwise +ignoring any layers. If the flag is set, both write the value UTF-8 +encoded, even if the layer is some different encoding, such as the +example above. + +Ideally, all of these operators would completely ignore the C<:utf8> +state, working only with bytes, but this would result in silently +breaking existing code. To avoid this a future version of perl will +throw an exception when any of C, C, C or C +are called on handle with the C<:utf8> layer. + +=head1 Performance Enhancements + +=over 4 + +=item * + +The overhead of scope entry and exit has been considerably reduced, so +for example subroutine calls, loops and basic blocks are all faster now. +This empty function call now takes about a third less time to execute: + + sub f{} f(); + +=item * + +Many languages, such as Chinese, are caseless. Perl now knows about +most common ones, and skips much of the work when +a program tries to change case in them (like C) or match +caselessly (C). This will speed up a program, such as a web +server, that can operate on multiple languages, while it is operating on a +caseless one. + +=item * + +C has been made much faster. + +On platforms with a libc C implementation which makes good use of +underlying hardware support, patterns which include fixed substrings will now +often be much faster; for example with glibc on a recent x86_64 CPU, this: + + $s = "a" x 1000 . "wxyz"; + $s =~ /wxyz/ for 1..30000 + +is now about 7 times faster. On systems with slow C, e.g. 32-bit ARM +Raspberry Pi, there will be a small or little speedup. Conversely, some +pathological cases, such as C<"ab" x 1000 =~ /aa/> will be slower now; up to 3 +times slower on the rPi, 1.5x slower on x86_64. + +=item * + +Faster addition, subtraction and multiplication. + +Since 5.8.0, arithmetic became slower due to the need to support +64-bit integers. To deal with 64-bit integers, a lot more corner +cases need to be checked, which adds time. We now detect common +cases where there is no need to check for those corner cases, +and special-case them. + +=item * + +Preincrement, predecrement, postincrement, and postdecrement have been +made faster by internally splitting the functions which handled multiple +cases into different functions. + +=item * + +Creating Perl debugger data structures (see L) +for XSUBs and const subs has been removed. This removed one glob/scalar combo +for each unique C<.c> file that XSUBs and const subs came from. On startup +(C) about half a dozen glob/scalar debugger combos were created. +Loading XS modules created more glob/scalar combos. These things were +being created regardless of whether the perl debugger was being used, +and despite the fact that it can't debug C code anyway + +=item * + +On Win32, Cing or C<-X>ing a path, if the file or directory does not +exist, is now 3.5x faster than before. + +=item * + +Single arguments in list assign are now slightly faster: + + ($x) = (...); + (...) = ($x); + +=item * + +Less peak memory is now used when compiling regular expression patterns. + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over + +=item * + +L has been upgraded from version 0.10 to 0.11. + +=item * + +L has been upgraded from version 0.97 to 0.99. + +=item * + +L has been upgraded from version 2.26 to 2.29. + +=item * + +L has been upgraded from version 1.08 to 1.11. + +=item * + +L has been upgraded from version 1.58 to 1.62. + +=item * + +L has been upgraded from version 1.35 to 1.37. + +=item * + +L has been upgraded from version 2.22 to 2.23. + +=item * + +L has been upgraded from version 1.2 to 1.22. + +=item * + +L has been upgraded from version 0.39 to 0.42. + +=item * + +L has been upgraded from version 1.04 to 1.05. + +=item * + +L has been upgraded from version 1.36 to 1.40. + +=item * + +L has been upgraded from version 2.068 to 2.069. + +=item * + +L has been upgraded from version 2.068 to 2.069. + +=item * + +L has been upgraded from version 0.24 to 0.25. + +=item * + +L has been upgraded from version 2.150001 to 2.150005. + +=item * + +L has been upgraded from version 2.132 to 2.140. + +=item * + +L has been upgraded from version 0.012 to 0.018. + +=item * + +L has been upgraded from version 2.158 to 2.160. + +=item * + +L has been upgraded from version 1.22 to 1.23. + +=item * + +L has been upgraded from version 3.31 to 3.32. + +=item * + +L has been upgraded from version 1.17 to 1.18. + +=item * + +L has been upgraded from version 1.32 to 1.38. + +=item * + +L has been upgraded from version 2.72 to 2.80. + +=item * + +L has been upgraded from version 2.14 to 2.17. + +=item * + +L has been upgraded from version 0.11 to 0.12. + +=item * + +L has been upgraded from version 1.09 to 1.10. + +=item * + +L has been upgraded from version 1.23 to 1.25. + +=item * + +L has been upgraded from version 0.013 to 0.016. + +=item * + +L has been upgraded from version 0.280221 to 0.280225. + +=item * + +L has been upgraded from version 1.32 to 1.33. + +=item * + +L has been upgraded from version 7.04_01 to 7.10_01. + +=item * + +L has been upgraded from version 3.28 to 3.31. + +=item * + +L has been upgraded from version 3.28 to 3.31. + +=item * + +L has been upgraded from version 1.40 to 1.42. + +=item * + +L has been upgraded from version 2.17 to 2.23. + +=item * + +L has been upgraded from version 2.30 to 2.31. + +=item * + +L has been upgraded from version 1.29 to 1.34. + +=item * + +L has been upgraded from version 1.24 to 1.26. + +=item * + +L has been upgraded from version 2.09 to 2.12_01. + +=item * + +L has been upgraded from version 3.56 to 3.63. + +=item * + +L has been upgraded from version 1.54 to 1.55. + +=item * + +L has been upgraded from version 2.45 to 2.48. + +=item * + +L has been upgraded from version 0.18 to 0.19. + +=item * + +L has been upgraded from version 1.15 to 1.19. + +=item * + +L has been upgraded from version 0.054 to 0.056. + +=item * + +L has been upgraded from version 0.12 to 0.13. + +=item * + +L has been upgraded from version 0.0604 to 0.0606. + +=item * + +L has been upgraded from version 1.35 to 1.36. + +=item * + +IO-Compress has been upgraded from version 2.068 to 2.069. + +=item * + +L has been upgraded from version 1.18 to 1.20. + +=item * + +L has been upgraded from version 2.04 to 2.06_01. + +=item * + +L has been upgraded from version 1.41 to 1.42_02. + +=item * + +L has been upgraded from version 1.06 to 1.08. + +=item * + +L has been upgraded from version 3.34 to 3.37. + +=item * + +L has been upgraded from version 1.9997 to 1.999715. + +=item * + +L has been upgraded from version 0.31 to 0.40. + +=item * + +L has been upgraded from version 0.2608 to 0.260802. + +=item * + +L has been upgraded from version 5.20150520 to 5.20160506. + +=item * + +L has been upgraded from version 1.000026 to 1.000031. + +=item * + +L has been upgraded from version 1.17 to 1.18. + +=item * + +L has been upgraded from version 1.12 to 1.14. + +=item * + +L has been upgraded from version 1.32 to 1.34. + +=item * + +L has been upgraded from version 0.232 to 0.234. + +=item * + +L has been upgraded from version 1.4414 to 1.4417. + +=item * + +L has been upgraded from version 1.008 to 1.009. + +=item * + +L has been upgraded from version 5.021009 to 5.021010. + +=item * + +L has been upgraded from version 0.21 to 0.24. + +=item * + +L has been upgraded from version 0.014 to 0.016. + +=item * + +L has been upgraded from version 0.22 to 0.24. + +=item * + +L has been upgraded from version 0.15 to 0.16. + +=item * + +podlators has been upgraded from version 2.28 to 4.07. + +=item * + +L has been upgraded from version 1.09 to 1.10. + +=item * + +L has been upgraded from version 3.25 to 3.25_02. + +=item * + +L has been upgraded from version 3.29 to 3.32. + +=item * + +L has been upgraded from version 1.64 to 1.68. + +=item * + +L has been upgraded from version 1.53 to 1.65. + +=item * + +L has been upgraded from version 1.41 to 1.42_02. + +=item * + +L has been upgraded from version 1.13 to 1.14. + +=item * + +L has been upgraded from version 1.22 to 1.23. + +=item * + +L has been upgraded from version 2.018 to 2.020_03. + +=item * + +L has been upgraded from version 2.53 to 2.56. + +=item * + +L has been upgraded from version 1.09 to 1.11. + +=item * + +L has been upgraded from version 4.03 to 4.04. + +=item * + +L has been upgraded from version 1.15 to 1.17. + +=item * + +L has been upgraded from version 1.26 to 1.28. + +=item * + +L has been upgraded from version 3.35 to 3.36. + +=item * + +L has been upgraded from version 3.05 to 3.09. + +=item * + +L has been upgraded from version 2.01 to 2.07. + +=item * + +L has been upgraded from version 1.48 to 1.51. + +=item * + +L has been upgraded from version 1.01 to 1.02. + +=item * + +L has been upgraded from version 1.03 to 1.04. + +=item * + +L has been upgraded from version 1.9726 to 1.9733. + +=item * + +L has been upgraded from version 1.29 to 1.31. + +=item * + +L has been upgraded from version 1.12 to 1.14. + +=item * + +L has been upgraded from version 1.18 to 1.25. + +=item * + +L has been upgraded from version 0.61 to 0.64. + +=item * + +L has been upgraded from version 1.12 to 1.13. + +=item * + +L has been upgraded from version 1.17 to 1.19. + +=item * + +L has been upgraded from version 0.9909 to 0.9916. + +=item * + +L has been upgraded from version 1.32 to 1.36. + +=item * + +L has been upgraded from version 0.51 to 0.52. + +=item * + +L has been upgraded from version 0.1202 to 0.1203. + +=item * + +L has been upgraded from version 0.13 to 0.14. + +=item * + +L has been upgraded from version 0.20 to 0.21. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +=head3 L + +=over 4 + +=item * + +The process of using undocumented globals has been documented, namely, that one +should send email to L +first to get the go-ahead for documenting and using an undocumented function or +global variable. + +=back + +=head3 L + +=over 4 + +=item * + +A number of cleanups have been made to perlcall, including: + +=over 4 + +=item * + +use C and C instead of C where applicable +and update prose to match + +=item * + +add POPu, POPul and POPpbytex to the "complete list of POP macros" +and clarify the documentation for some of the existing entries, and +a note about side-effects + +=item * + +add API documentation for POPu and POPul + +=item * + +use ERRSV more efficiently + +=item * + +approaches to thread-safety storage of SVs. + +=back + +=back + +=head3 L + +=over 4 + +=item * + +The documentation of C has been revised to clarify valid inputs. + +=item * + +Better explain meaning of negative PIDs in C. +L<[perl #127080]|https://rt.perl.org/Ticket/Display.html?id=127080> + +=item * + +General cleanup: there's more consistency now (in POD usage, grammar, code +examples), better practices in code examples (use of C, removal of bareword +filehandles, dropped usage of C<&> when calling subroutines, ...), etc. + +=back + +=head3 L + +=over 4 + +=item * + +A new section has been added, L, which explains how the perl context stack works. + +=back + +=head3 L + +=over 4 + +=item * + +A stronger caution about using locales in threaded applications is +given. Locales are not thread-safe, and you can get wrong results or +even segfaults if you use them there. + +=back + +=head3 L + +=over 4 + +=item * + +We now recommend contacting the module-authors list or PAUSE in seeking +guidance on the naming of modules. + +=back + +=head3 L + +=over 4 + +=item * + +The documentation of C now describes how C<$?> is affected. + +=back + +=head3 L + +=over 4 + +=item * + +This note has been added to perlpolicy: + + While civility is required, kindness is encouraged; if you have any + doubt about whether you are being civil, simply ask yourself, "Am I + being kind?" and aspire to that. + +=back + +=head3 L + +=over 4 + +=item * + +Fix some examples to be L clean. + +=back + +=head3 L + +=over 4 + +=item * + +Clarify that in languages like Japanese and Thai, dictionary lookup +is required to determine word boundaries. + +=back + +=head3 L + +=over 4 + +=item * + +Updated to note that anonymous subroutines can have signatures. + +=back + +=head3 L + +=over 4 + +=item * + +Fixed a broken example where C<=> was used instead of +C<==> in conditional in do/while example. + +=back + +=head3 L + +=over 4 + +=item * + +The usage of C and C has been clarified. + +=back + +=head3 L + +=over 4 + +=item * + +Discourage use of 'In' as a prefix signifying the Unicode Block property. + +=back + +=head3 L + +=over 4 + +=item * + +The documentation of C<$@> was reworded to clarify that it is not just for +syntax errors in C. +L<[perl #124034]|https://rt.perl.org/Ticket/Display.html?id=124034> + +=item * + +The specific true value of C<$!{E...}> is now documented, noting that it is +subject to change and not guaranteed. + +=item * + +Use of C<$OLD_PERL_VERSION> is now discouraged. + +=back + +=head3 L + +=over 4 + +=item * + +The documentation of C has been corrected; they are I +by default, not I. + +=back + +=head1 Diagnostics + +The following additions or changes have been made to diagnostic output, +including warnings and fatal error messages. For the complete list of +diagnostic messages, see L. + +=head2 New Diagnostics + +=head3 New Errors + +=over 4 + +=item * + +L<%s must not be a named sequence in transliteration operator|perldiag/"%s must not be a named sequence in transliteration operator"> + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L-- HERE in mE%sE +|perldiag/"Empty \%c in regex; marked by <-- HERE in mE%sE"> + +=item * + +L + +=item * + +L + +=item * + +L<<< Sequence (?... not terminated in regex; marked by S<<-- HERE> in mE%sE|perldiag/"Sequence (?... not terminated in regex; marked by <-- HERE in mE%sE" >>> + +=item * + +L<<< Sequence (?PE... not terminated in regex; marked by E-- HERE in mE%sE +|perldiag/"Sequence (?PE... not terminated in regex; marked by <-- HERE in mE%sE" >>> + +=item * + +L... not terminated in regex; marked by E-- HERE in mE%sE +|perldiag/"Sequence (?PE... not terminated in regex; marked by <-- HERE in mE%sE"> + +=back + +=head3 New Warnings + +=over 4 + +=item * + +L-- HERE in mE%sE| +perldiag/Assuming NOT a POSIX class since %s in regex; marked by <-- HERE in mE%sE> + +=item * + +L<%s() is deprecated on :utf8 handles|perldiag/"%s() is deprecated on :utf8 handles"> + +=back + +=head2 Changes to Existing Diagnostics + +=over 4 + +=item * + +Accessing the C part of a glob as C instead of C is no +longer deprecated. It is discouraged to encourage uniformity (so that, for +example, one can grep more easily) but it will not be removed. +L<[perl #127060]|https://rt.perl.org/Ticket/Display.html?id=127060> + +=item * + +The diagnostic C<< Hexadecimal float: internal error >> has been changed to +C<< Hexadecimal float: internal error (%s) >> to include more information. + +=item * + +L + +This error now reports the name of the non-lvalue subroutine you attempted to +use as an lvalue. + +=item * + +When running out of memory during an attempt the increase the stack +size, previously, perl would die using the cryptic message +C<< panic: av_extend_guts() negative count (-9223372036854775681) >>. +This has been fixed to show the prettier message: +L<< Out of memory during stack extend|perldiag/"Out of memory during %s extend" >> + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +C now acts as if the C<-O> option is always passed, allowing command +line options to override saved configuration. This should eliminate confusion +when command line options are ignored for no obvious reason. C<-O> is now +permitted, but ignored. + +=item * + +Bison 3.0 is now supported. + +=item * + +F no longer probes for F by default. Originally +this was the "New Math" library, but the name has been re-used by the +GNOME NetworkManager. +L<[perl #127131]|https://rt.perl.org/Ticket/Display.html?id=127131> + +=item * + +Added F probes for C, C, and C. + +=item * + +C<< PPPort.so/PPPort.dll >> no longer get installed, as they are +not used by C<< PPPort.pm >>, only by its test files. + +=item * + +It is now possible to specify which compilation date to show on +C<< perl -V >> output, by setting the macro C<< PERL_BUILD_DATE >>. + +=item * + +Using the C define in combination with the default hash algorithm +C resulted in a fatal error while compiling +the interpreter, since Perl 5.17.10. This has been fixed. + +=item * + +F should handle spaces in paths a little better. + +=item * + +No longer generate EBCDIC POSIX-BC tables. We don't believe anyone is +using Perl and POSIX-BC at this time, and by not generating these tables +it saves time during development, and makes the resulting tar ball smaller. + +=item * + +The GNU Make makefile for Win32 now supports parallel builds. [perl #126632] + +=item * + +You can now build perl with MSVC++ on Win32 using GNU Make. [perl #126632] + +=item * + +The Win32 miniperl now has a real C which increases build performance +resulting in C being 605x faster in Win32 miniperl. + +=item * + +Configure now takes C<-Dusequadmath> into account when calculating the +C configuration variable. Previously the mis-calculated +C could cause alignment errors on debugging builds. [perl +#127894] + +=back + +=head1 Testing + +=over 4 + +=item * + +A new test (F) has been added to test the list assignment operator +C. + +=item * + +Parallel building has been added to the dmake C makefile. All +Win32 compilers are supported. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item AmigaOS + +=over 4 + +=item * + +The AmigaOS port has been reintegrated into the main tree, based off of +Perl 5.22.1. + +=back + +=item Cygwin + +=over 4 + +=item * + +Tests are more robust against unusual cygdrive prefixes. +L<[perl #126834]|https://rt.perl.org/Ticket/Display.html?id=126834> + +=back + +=item EBCDIC + +=over 4 + +=item UTF-EBCDIC extended + +UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been +extended so that it can represent code points up to 2 ** 64 - 1 on +platforms with 64-bit words. This brings it into parity with UTF-8. +This enhancement requires an incompatible change to the representation +of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the +previous maximum representable code point). This means that a file that +contains one of these code points, written out with previous versions of +perl cannot be read in, without conversion, by a perl containing this +change. We do not believe any such files are in existence, but if you +do have one, submit a ticket at L, +and we will write a conversion script for you. + +=item EBCDIC C and C fixed for UTF-EBCDIC strings + +Comparing two strings that were both encoded in UTF-8 (or more +precisely, UTF-EBCDIC) did not work properly until now. Since C +uses C, this fixes that as well. + +=item EBCDIC C and C fixed for C<\N{}>, and C> ranges + +Perl v5.22 introduced the concept of portable ranges to regular +expression patterns. A portable range matches the same set of +characters no matter what platform is being run on. This concept is now +extended to C. See +CEE|perlop/trESEARCHLISTEREPLACEMENTLISTEcdsr>>. + +There were also some problems with these operations under S>, which are now fixed + +=back + +=item FreeBSD + +=over 4 + +=item * + +Use the C function from FreeBSD if it is available. +L<[perl #126847]|https://rt.perl.org/Ticket/Display.html?id=126847> + +=back + +=item IRIX + +=over 4 + +=item * + +Under some circumstances IRIX stdio C and C set the errno to +C, which made no sense according to either IRIX or POSIX docs. Errno +is now cleared in such cases. +L<[perl #123977]|https://rt.perl.org/Ticket/Display.html?id=123977> + +=item * + +Problems when multiplying long doubles by infinity have been fixed. +L<[perl #126396]|https://rt.perl.org/Ticket/Display.html?id=126396> + +=back + +=item MacOS X + +=over 4 + +=item * + +Until now OS X builds of perl have specified a link target of 10.3 (Panther, +2003) but have not specified a compiler target. From now on, builds of perl on +OS X 10.6 or later (Snow Leopard, 2008) by default capture the current OS X +version and specify that as the explicit build target in both compiler and +linker flags, thus preserving binary compatibility for extensions built later +regardless of changes in OS X, SDK, or compiler and linker versions. To +override the default value used in the build and preserved in the flags, +specify C before configuring and building +perl, where 10.N is the version of OS X you wish to target. In OS X 10.5 or +earlier there is no change to the behavior present when those systems were +current; the link target is still OS X 10.3 and there is no explicit compiler +target. + +=item * + +Builds with both -DDEBUGGING and threading enabled would fail with a +"panic: free from wrong pool" error when built or tested from Terminal +on OS X. This was caused by perl's internal management of the +environment conflicting with an atfork handler using the libc +C function to update the environment. + +Perl now uses C/C to update the environment on OS X. +L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240> + +=back + +=item Solaris + +=over 4 + +=item * + +All Solaris variants now build a shared libperl + +Solaris and variants like OpenIndiana now always build with the shared +Perl library (Configure -Duseshrplib). This was required for the +OpenIndiana builds, but this has also been the setting for Oracle/Sun +Perl builds for several years. + +=back + +=item Tru64 + +=over 4 + +=item * + +Workaround where Tru64 balks when prototypes are listed as +C<< PERL_STATIC_INLINE >>, but where the test is build with +C<< -DPERL_NO_INLINE_FUNCTIONS >>. + +=back + +=item VMS + +=over 4 + +=item * + +On VMS, the math function prototypes in C are now visible under C++. +Now building the POSIX extension with C++ will no longer crash. + +=item * + +VMS has had C/C since v7.0 (released in 1996), +C now always uses C/C. + +=item * + +Perl now implements its own C by scanning for processes in the +specified process group, which may not mean exactly the same thing as a Unix +process group, but allows us to send a signal to a parent (or master) process +and all of its sub-processes. At the perl level, this means we can now send a +negative pid like so: + + kill SIGKILL, -$pid; + +to signal all processes in the same group as C<$pid>. + +=item * + +For those C<%ENV> elements based on the CRTL environ array, we've always +preserved case when setting them but did look-ups only after upcasing the +key first, which made lower- or mixed-case entries go missing. This problem +has been corrected by making C<%ENV> elements derived from the environ array +case-sensitive on look-up as well as case-preserving on store. + +=item * + +Environment look-ups for C and C previously only +considered logical names, but now consider all sources of C<%ENV> as +determined by C and as documented in L. + +=item * + +The minimum supported version of VMS is now v7.3-2, released in 2003. As a +side effect of this change, VAX is no longer supported as the terminal +release of OpenVMS VAX was v7.3 in 2001. + +=back + +=item Win32 + +=over 4 + +=item * + +A new build option C has been added to the makefiles. This +option is off by default, meaning the default is to do Windows registry +lookups. This option stops Perl from looking inside the registry for anything. +For what values are looked up in the registry see L. Internally, in +C, the name of this option is C. + +=item * + +The behavior of Perl using C and +C to lookup certain values, including C<%ENV> +vars starting with C has changed. Previously, the 2 keys were checked +for entries at all times through the perl process's life time even if +they did not +exist. For performance reasons, now, if the root key (i.e. +C or C) does +not exist at process start time, it will not be checked again for C<%ENV> +override entries for the remainder of the perl process's life. This more +closely matches Unix behavior in that the environment is copied or inherited +on startup and changing the variable in the parent process or another process +or editing F<.bashrc> will not change the environmental variable in other +existing, running, processes. + +=item * + +One glob fetch was removed for each C<-X> or C call whether done from +Perl code or internally from Perl's C code. The glob being looked up was +C<${^WIN32_SLOPPY_STAT}> which is a special variable. This makes C<-X> and +C slightly faster. + +=item * + +During miniperl's process startup, during the build process, 4 to 8 IO calls +related to the process starting F<.pl> and the F file were +removed from the code opening and executing the first 1 or 2 F<.pl> files. + +=item * + +Builds using Microsoft Visual C++ 2003 and earlier no longer produce +an "INTERNAL COMPILER ERROR" message. [perl #126045] + +=item * + +Visual C++ 2013 builds will now execute on XP and higher. Previously they would +only execute on Vista and higher. + +=item * + +You can now build perl with GNU Make and GCC. [perl #123440] + +=item * + +C now works for files over 4GB in size. +[perl #125347] + +=item * + +Parallel building has been added to the dmake C makefile. All +Win32 compilers are supported. + +=item * + +Building a 64-bit perl with a 64-bit GCC but a 32-bit gmake would +result in an invalid C<$Config{archname}> for the resulting perl. +[perl #127584] + +=item * + +Errors set by Winsock functions are now put directly into C<$^E>, and the +relevant C error codes are now exported from the L and L +modules for testing this against. + +The previous behavior of putting the errors (converted to POSIX-style C +error codes since Perl 5.20.0) into C<$!> was buggy due to the non-equivalence +of like-named Winsock and POSIX error constants, a relationship between which +has unfortunately been established in one way or another since Perl 5.8.0. + +The new behavior provides a much more robust solution for checking Winsock +errors in portable software without accidentally matching POSIX tests that were +intended for other OSes and may have different meanings for Winsock. + +The old behavior is currently retained, warts and all, for backwards +compatibility, but users are encouraged to change any code that tests C<$!> +against C constants for Winsock errors to instead test C<$^E> against +C constants. After a suitable deprecation period, the old behavior may +be removed, leaving C<$!> unchanged after Winsock function calls, to avoid any +possible confusion over which error variable to check. + +=back + +=item ppc64el + +=over 4 + +=item floating point + +The floating point format of ppc64el (Debian naming for little-endian +PowerPC) is now detected correctly. + +=back + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +The implementation of perl's context stack system, and its internal API, +have been heavily reworked. Note that no significant changes have been +made to any external APIs, but XS code which relies on such internal +details may need to be fixed. The main changes are: + +=over 4 + +=item * + +The C, C etc. macros have been replaced with static +inline functions such as C, C etc. These use +function args rather than implicitly relying on local vars such as +C and C being available. Also their functionality has +changed: in particular, C no longer decrements +C. The ordering of the steps in the C functions +involving C, C etc. has changed. See the new +documentation, L, for +details on how to use them. + +=item * + +Various macros, which now consistently have a CX_ prefix, have been added: + + CX_CUR(), CX_LEAVE_SCOPE(), CX_POP() + +or renamed: + + CX_POP_SAVEARRAY(), CX_DEBUG(), CX_PUSHSUBST(), CX_POPSUBST() + +=item * + +C now saves C and C, so +C and C no longer do + + ENTER; SAVETMPS; ....; LEAVE + +=item * + +C now also restores C. + +=item * + +In C for every context type, the current savestack frame is +now processed before each context is popped; formerly this was only done +for sub-like context frames. This action has been removed from +C and placed into its own macro, C, which +must be called before C etc. + +C now also does a C on the last popped frame +(formerly it only did the C etc. actions on each frame). + +=item * + +The temps stack is now freed on scope exit; previously, temps created +during the last statement of a block wouldn't be freed until the next +C following the block (apart from an existing hack that did +this for recursive subs in scalar context); and in something like +C, the temps created by the last statement in C would +formerly not be freed until the statement following the return from +C. + +=item * + +Most values that were saved on the savestack on scope entry are now +saved in suitable new fields in the context struct, and saved and +restored directly by C and C, which is much +faster. + +=item * + +Various context struct fields have been added, removed or modified. + +=item * + +The handling of C<@_> in C and C has been +considerably tidied up, including removing the C field from the +context struct, and extracting out some common (but rarely used) code into +a separate function, C. Also, useful subsets of +C which had been unrolled in places like C have been +gathered into the new functions C and +C. + +=item * + +C and C now use the same function as the rest +of the C's to process return args. + +=item * + +C and C flags have been added, and +C has been split into C, C. + +=item * + +Some variables formerly declared by C (but not documented) have +been removed. + +=back + +=item * + +The obscure C variable, effectively a vestige of Perl 1, has +been removed. It was documented as deprecated in Perl 5.20, with a statement +that it would be removed early in the 5.21.x series; that has now finally +happened. +L<[perl #121351]|https://rt.perl.org/Ticket/Display.html?id=121351> + +=item * + +An unwarranted assertion in C has been removed. If +a stub subroutine +definition with a prototype has been seen, then any subsequent stub (or +definition) of the same subroutine with an attribute was causing an assertion +failure because of a null pointer. +L<[perl #126845]|https://rt.perl.org/Ticket/Display.html?id=126845> + +=item * + +C<::> has been replaced by C<__> in C, like it's done for +parameters/return values. This is more consistent, and simplifies writing XS +code wrapping C++ classes into a nested Perl namespace (it requires only +a typedef for C rather than two, one for C and the other +for C). + +=item * + +The C function is now deprecated. Instead use +C, C, C, and C. +(See L.) + +=item * + +Perl core code and the threads extension have been annotated so that, +if Perl is configured to use threads, then during compile-time clang (3.6 +or later) will warn about suspicious uses of mutexes. +See L for more +information. + +=item * + +The C emulation has been enhanced. This will help older +and/or more exotic platforms or configurations. + + +=item * + +Most EBCDIC-specific code in the core has been unified with non-EBCDIC +code, to avoid repetition and make maintenance easier. + +=item * + +MSWin32 code for C<$^X> has been moved out of the F directory to +F, where other operating systems set that variable. + +=item * + +C<< sv_ref() >> is now part of the API. + +=item * + +L had its return type changed from C to C. It +previously has always returned C<0> since Perl 5.000 stable but that was +undocumented. Although C is marked as public API, XS code is not +expected to be impacted since the proper API call would be through public API +C, or quasi-public C, or non-public +C calls, and the return value of C was previously a +meaningless constant that can be rewritten as C<(sv_backoff(sv),0)>. + +=item * + +The C and C macros have been improved to avoid various issues +with integer truncation and wrapping. In particular, some casts formerly used +within the macros have been removed. This means for example that passing an +unsigned C argument is likely to raise a compiler warning now +(it's always been documented to require a signed value; formerly int, +lately SSize_t). + +=item * + +C and C have been removed. + +=item * + +C and C have been removed. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +It now works properly to specify a user-defined property, such as + + qr/\p{mypkg1::IsMyProperty}/i + +with C caseless matching, an explicit package name, and +I not defined at the time of the pattern compilation. + +=item * + +Perl's C, C, C and C fallbacks are now +more compatible with the originals. [perl #127619] + +=item * + +Fixed the issue where a C<< s///r >>) with B<< -DPERL_NO_COW >> attempts +to modify the source SV, resulting in the program dying. [perl #127635] + +=item * + +Fixed an EBCDIC-platform-only case where a pattern could fail to match. This +occurred when matching characters from the set of C1 controls when the +target matched string was in UTF-8. + +=item * + +Narrow the filename check in F and F. Previously, +it assumed that if the filename (without the F<.pmc?> extension) differed +from the package name, if was a misspelled use statement (i.e. C +instead of C). We now check whether there's really a +miscapitalization happening, and not some other issue. + +=item * + +Turn an assertion into a more user friendly failure when parsing +regexes. [perl #127599] + +=item * + +Correctly raise an error when trying to compile patterns with +unterminated character classes while there are trailing backslashes. +[perl #126141]. + +=item * + +Line numbers larger than 2**31-1 but less than 2**32 are no longer +returned by C as negative numbers. [perl #126991] + +=item * + +C<< unless ( I ) >> now properly warns when syntax +warnings are enabled. [perl #127122] + +=item * + +Setting an C glob to an array reference now properly adds +C magic to any existing elements. Previously modifying such +an element would not update the ISA cache, so method calls would call +the wrong function. Perl would also crash if the C glob was +destroyed, since new code added in 5.23.7 would try to release the +C magic from the elements. [perl #127351] + +=item * + +If a here-doc was found while parsing another operator, the parser had +already read end of file, and the here-doc was not terminated, perl +could produce an assertion or a segmentation fault. This now reliably +complains about the unterminated here-doc. [perl #125540] + +=item * + +C would sometimes return the last value returned by the C +handler as well as it's normal value, messing up the stack. [perl +#126621] + +=item * + +Fixed an operator precedence problem when C< castflags & 2> is true. +[perl #127474] + +=item * + +Caching of DESTROY methods could result in a non-pointer or a +non-STASH stored in the C slot of a stash, breaking the B +C method. The DESTROY method is now cached in the MRO metadata +for the stash. [perl #126410] + +=item * + +The AUTOLOAD method is now called when searching for a DESTROY method, +and correctly sets C<$AUTOLOAD> too. [perl #124387] [perl #127494] + +=item * + +Avoid parsing beyond the end of the buffer when processing a C<#line> +directive with no filename. [perl #127334] + +=item * + +Perl now raises a warning when a regular expression pattern looks like +it was supposed to contain a POSIX class, like C, but +there was some slight defect in its specification which causes it to +instead be treated as a regular bracketed character class. An example +would be missing the second colon in the above like this: +C. This compiles to match a sequence of two characters. +The second is C<"]">, and the first is any of: C<"[">, C<":">, C<"a">, +C<"h">, C<"l">, or C<"p">. This is unlikely to be the intended +meaning, and now a warning is raised. No warning is raised unless the +specification is very close to one of the 14 legal POSIX classes. (See +L.) +[perl #8904] + +=item * + +Certain regex patterns involving a complemented POSIX class in an +inverted bracketed character class, and matching something else +optionally would improperly fail to match. An example of one that could +fail is C. This has been fixed. +[perl #127537] + +=item * + +Perl 5.22 added support to the C99 hexadecimal floating point notation, +but sometimes misparses hex floats. This has been fixed. +[perl #127183] + +=item * + +A regression that allowed undeclared barewords in hash keys to work despite +strictures has been fixed. +L<[perl #126981]|https://rt.perl.org/Ticket/Display.html?id=126981> + +=item * + +Calls to the placeholder C<&PL_sv_yes> used internally when an C +or C method isn't found now correctly handle scalar context. +L<[perl #126042]|https://rt.perl.org/Ticket/Display.html?id=126042> + +=item * + +Report more context when we see an array where we expect to see an +operator and avoid an assertion failure. +L<[perl #123737]|https://rt.perl.org/Ticket/Display.html?id=123737> + +=item * + +Modifying an array that was previously a package C<@ISA> no longer +causes assertion failures or crashes. +L<[perl #123788]|https://rt.perl.org/Ticket/Display.html?id=123788> + +=item * + +Retain binary compatibility across plain and DEBUGGING perl builds. +L<[perl #127212]|https://rt.perl.org/Ticket/Display.html?id=127212> + +=item * + +Avoid leaking memory when setting C<$ENV{foo}> on darwin. +L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240> + +=item * + +C no longer crashes on utf8 strings. When C<\G> is a fixed number +of characters from the start of the regex, perl needs to count back that +many characters from the current C position and start matching from +there. However, it was counting back bytes rather than characters, which +could lead to panics on utf8 strings. + +=item * + +In some cases operators that return integers would return negative +integers as large positive integers. +L<[perl #126635]|https://rt.perl.org/Ticket/Display.html?id=126635> + +=item * + +The C operator would assert for DEBUGGING builds instead of +producing the correct error message. The condition asserted on is +detected and reported on correctly without the assertions, so the +assertions were removed. +L<[perl #126480]|https://rt.perl.org/Ticket/Display.html?id=126480> + +=item * + +In some cases, failing to parse a here-doc would attempt to use freed +memory. This was caused by a pointer not being restored correctly. +L<[perl #126443]|https://rt.perl.org/Ticket/Display.html?id=126443> + +=item * + +C<< @x = sort { *a = 0; $a <=> $b } 0 .. 1 >> no longer frees the GP +for *a before restoring its SV slot. +L<[perl #124097]|https://rt.perl.org/Ticket/Display.html?id=124097> + +=item * + +Multiple problems with the new hexadecimal floating point printf +format C<%a> were fixed: +L<[perl #126582]|https://rt.perl.org/Ticket/Display.html?id=126582>, +L<[perl #126586]|https://rt.perl.org/Ticket/Display.html?id=126586>, +L<[perl #126822]|https://rt.perl.org/Ticket/Display.html?id=126822> + +=item * + +Calling C in C no longer leaks. + +=item * + +A regression from Perl v5.20 was fixed in which debugging output of regular +expression compilation was wrong. (The pattern was correctly compiled, but +what got displayed for it was wrong.) + +=item * + +C<\b{sb}> works much better. In Perl v5.22.0, this new construct didn't +seem to give the expected results, yet passed all the tests in the +extensive suite furnished by Unicode. It turns out that it was because +these were short input strings, and the failures had to do with longer +inputs. + +=item * + +Certain syntax errors in +L caused panics +instead of the proper error message. This has now been fixed. [perl +#126481] + +=item * + +Perl 5.20 added a message when a quantifier in a regular +expression was useless, but then caused the parser to skip it; +this caused the surplus quantifier to be silently ignored, instead +of throwing an error. This is now fixed. [perl #126253] + +=item * + +The switch to building non-XS modules last in win32/makefile.mk (introduced +by design as part of the changes to enable parallel building) caused the +build of POSIX to break due to problems with the version module. This +is now fixed. + +=item * + +Improved parsing of hex float constants. + +=item * + +Fixed an issue with C<< pack >> where C<< pack "H" >> (and C<< pack "h" >>) +could read past the source when given a non-utf8 source, and a utf8 target. +[perl #126325] + +=item * + +Fixed several cases where perl would abort due to a segmentation fault, +or a C-level assert. [perl #126615], [perl #126602], [perl #126193]. + +=item * + +There were places in regular expression patterns where comments (C<(?#...)>) +weren't allowed, but should have been. This is now fixed. +L<[perl #116639]|https://rt.perl.org/Ticket/Display.html?id=116639> + +=item * + +Some regressions from Perl 5.20 have been fixed, in which some syntax errors in +L|perlrecharclass/Extended Bracketed Character Classes> constructs +within regular expression patterns could cause a segfault instead of a proper +error message. +L<[perl #126180]|https://rt.perl.org/Ticket/Display.html?id=126180> +L<[perl #126404]|https://rt.perl.org/Ticket/Display.html?id=126404> + +=item * + +Another problem with +L|perlrecharclass/Extended Bracketed Character Classes> +constructs has been fixed wherein things like C<\c]> could cause panics. +L<[perl #126181]|https://rt.perl.org/Ticket/Display.html?id=126181> + +=item * + +Some problems with attempting to extend the perl stack to around 2G or 4G +entries have been fixed. This was particularly an issue on 32-bit perls built +to use 64-bit integers, and was easily noticeable with the list repetition +operator, e.g. + + @a = (1) x $big_number + +Formerly perl may have crashed, depending on the exact value of C<$big_number>; +now it will typically raise an exception. +L<[perl #125937]|https://rt.perl.org/Ticket/Display.html?id=125937> + +=item * + +In a regex conditional expression C<(?(condition)yes-pattern|no-pattern)>, if +the condition is C<(?!)> then perl failed the match outright instead of +matching the no-pattern. This has been fixed. +L<[perl #126222]|https://rt.perl.org/Ticket/Display.html?id=126222> + +=item * + +The special backtracking control verbs C<(*VERB:ARG)> now all allow an optional +argument and set C/C appropriately as well. +L<[perl #126186]|https://rt.perl.org/Ticket/Display.html?id=126186> + +=item * + +Several bugs, including a segmentation fault, have been fixed with the boundary +checking constructs (introduced in Perl 5.22) C<\b{gcb}>, C<\b{sb}>, C<\b{wb}>, +C<\B{gcb}>, C<\B{sb}>, and C<\B{wb}>. All the C<\B{}> ones now match an empty +string; none of the C<\b{}> ones do. +L<[perl #126319]|https://rt.perl.org/Ticket/Display.html?id=126319> + +=item * + +Duplicating a closed file handle for write no longer creates a +filename of the form F. [perl #125115] + +=item * + +Warning fatality is now ignored when rewinding the stack. This +prevents infinite recursion when the now fatal error also causes +rewinding of the stack. [perl #123398] + +=item * + +In perl v5.22.0, the logic changed when parsing a numeric parameter to the -C +option, such that the successfully parsed number was not saved as the option +value if it parsed to the end of the argument. [perl #125381] + +=item * + +The PadlistNAMES macro is an lvalue again. + +=item * + +Zero -DPERL_TRACE_OPS memory for sub-threads. + +C was missing Zero init of PL_op_exec_cnt[]. This +caused sub-threads in threaded -DPERL_TRACE_OPS builds to spew exceedingly +large op-counts at destruct. These counts would print %x as "ABABABAB", +clearly a mem-poison value. + +=item * + +A leak in the XS typemap caused one scalar to be leaked each time a C +or a C was Ced or imported to Perl, since perl 5.000. These +particular typemap entries are thought to be extremely rarely used by XS +modules. [perl #124181] + +=item * + +C and C will now warn if the argument is a negative number +and return undef. Previously they would pass the negative value to the +underlying C function which may have set up a timer with a surprising value. + +=item * + +Perl can again be compiled with any Unicode version. This used to +(mostly) work, but was lost in v5.18 through v5.20. The property +C did not exist prior to Unicode 5.0. L +incorrectly said it did. This has been fixed. + +=item * + +Very large code-points (beyond Unicode) in regular expressions no +longer cause a buffer overflow in some cases when converted to UTF-8. +L<[perl #125826]|https://rt.perl.org/Ticket/Display.html?id=125826> + +=item * + +The integer overflow check for the range operator (...) in list +context now correctly handles the case where the size of the range is +larger than the address space. This could happen on 32-bits with +-Duse64bitint. +L<[perl #125781]|https://rt.perl.org/Ticket/Display.html?id=125781> + +=item * + +A crash with C<< %::=(); J->${\"::"} >> has been fixed. +L<[perl #125541]|https://rt.perl.org/Ticket/Display.html?id=125541> + +=item * + +C no longer segfaults, giving a syntax error message instead. +[perl #125805] + +=item * + +Regular expression possessive quantifier v5.20 regression now fixed. +CIC<{>I,IC<}+>C is supposed to behave identically +to C>IC<{>I,IC<})/>. Since v5.20, this didn't +work if I and I were equal. [perl #125825] + +=item * + +C<< BEGIN <> >> no longer segfaults and properly produces an error +message. [perl #125341] + +=item * + +In C an illegal backwards range like C was +not always detected, giving incorrect results. This is now fixed. + +=back + +=head1 Known Problems + +=over 4 + +=item * + +Some modules have been broken by the L. +These modules were relying on non-guaranteed implementation details in perl. +Their maintainers have been informed, and should contact perl5-porters for +advice if needed. Below is a subset of these modules: + +=over 4 + +=item L + +=item L + +L and perl v5.22.0 were already incompatible due to a change in the perl, +and the reworking on the perl context stack creates a further incompatibility. +perl5-porters has L. + +=item L + +=item L + +=item L + +=item L + +=back + +=item * + +The module L no longer works on perl v5.24.0, because perl +no longer has a lexical C<$_>! + +=item * + +C has been patched for compatibility for v5.22.0 and later but no +release has been made. The relevant patch (and other changes) can be found in +their source code repository, L. + +=back + +=head1 Acknowledgements + +Perl 5.24.0 represents approximately 11 months of development since Perl 5.22.0 +and contains approximately 360,000 lines of changes across 1,800 files from 77 +authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 250,000 lines of changes to 1,200 .pm, .t, .c and .h files. + +Perl continues to flourish into its third decade thanks to a vibrant community +of users and developers. The following people are known to have contributed the +improvements that became Perl 5.24.0: + +Aaron Crane, Aaron Priven, Abigail, Achim Gratz, Alexander D'Archangel, Alex +Vandiver, Andreas König, Andy Broad, Andy Dougherty, Aristotle Pagaltzis, +Chase Whitener, Chas. Owens, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn +Ilmari MannsÃ¥ker, Dan Collins, Daniel Dragan, David Golden, David Mitchell, +Dominic Hargreaves, Doug Bell, Dr.Ruud, Ed Avis, Ed J, Father Chrysostomos, +Herbert Breunung, H.Merijn Brand, Hugo van der Sanden, Ivan Pozdeev, James E +Keenan, Jan Dubois, Jarkko Hietaniemi, Jerry D. Hedden, Jim Cromie, John +Peacock, John SJ Anderson, Karen Etheridge, Karl Williamson, kmx, Leon +Timmermans, Ludovic E. R. Tolhurst-Cleaver, Lukas Mai, Martijn Lievaart, +Matthew Horsfall, Mattia Barbon, Max Maischein, Mohammed El-Afifi, Nicholas +Clark, Nicolas R., Niko Tyni, Peter John Acklam, Peter Martini, Peter +Rabbitson, Pip Cet, Rafael Garcia-Suarez, Reini Urban, Renee Baecker, Ricardo +Signes, Sawyer X, Shlomi Fish, Sisyphus, Stanislaw Pusep, Steffen Müller, +Stevan Little, Steve Hay, Sullivan Beck, Thomas Sibley, Todd Rinaldo, Tom +Hukins, Tony Cook, Unicode Consortium, Victor Adam, Vincent Pit, Vladimir +Timofeev, Yves Orton, Zachary Storer, Zefram. + +The list above is almost certainly incomplete as it is automatically generated +from version control history. In particular, it does not include the names of +the (very much appreciated) contributors who reported issues to the Perl bug +tracker. + +Many of the changes included in this version originated in the CPAN modules +included in Perl's core. We're grateful to the entire CPAN community for +helping Perl to flourish. + +For a more complete list of all of Perl's historical contributors, please see +the F file in the Perl source distribution. + +=head1 Reporting Bugs + +If you find what you think is a bug, you might check the articles recently +posted to the comp.lang.perl.misc newsgroup and the perl bug database at +https://rt.perl.org/ . There may also be information at +http://www.perl.org/ , the Perl Home Page. + +If you believe you have an unreported bug, please run the L program +included with your release. Be sure to trim your bug down to a tiny but +sufficient test case. Your bug report, along with the output of C, +will be sent off to perlbug@perl.org to be analysed by the Perl porting team. + +If the bug you are reporting has security implications which make it +inappropriate to send to a publicly archived mailing list, then see +L +for details of how to report the issue. + +=head1 SEE ALSO + +The F file for an explanation of how to view exhaustive details on +what changed. + +The F file for how to build Perl. + +The F file for general stuff. + +The F and F files for copyright information. + +=cut diff --git a/pod/perlapio.pod b/pod/perlapio.pod index a879809..8e0f82e 100644 --- a/pod/perlapio.pod +++ b/pod/perlapio.pod @@ -499,23 +499,25 @@ debugging. No return value. Its main use is inside PerlIO where using real printf, warn() etc. would recursively call PerlIO and be a problem. -PerlIO_debug writes to the file named by $ENV{'PERLIO_DEBUG'} typical +PerlIO_debug writes to the file named by $ENV{'PERLIO_DEBUG'} or defaults +to stderr if the environment variable is not defined. Typical use might be Bourne shells (sh, ksh, bash, zsh, ash, ...): - PERLIO_DEBUG=/dev/tty ./perl somescript some args + PERLIO_DEBUG=/tmp/perliodebug.log ./perl -Di somescript some args Csh/Tcsh: - setenv PERLIO_DEBUG /dev/tty - ./perl somescript some args + setenv PERLIO_DEBUG /tmp/perliodebug.log + ./perl -Di somescript some args If you have the "env" utility: - env PERLIO_DEBUG=/dev/tty ./perl somescript some args + env PERLIO_DEBUG=/tmp/perliodebug.log ./perl -Di somescript args Win32: - set PERLIO_DEBUG=CON - perl somescript some args + set PERLIO_DEBUG=perliodebug.log + perl -Di somescript some args -If $ENV{'PERLIO_DEBUG'} is not set PerlIO_debug() is a no-op. +On a Perl built without C<-DDEBUGGING>, or when the C<-Di> command-line switch +is not specified, or under taint, PerlIO_debug() is a no-op. =back diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 9a86066..0608c02 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,2222 +2,276 @@ =head1 NAME -perldelta - what is new for perl v5.24.0 +perldelta - what is new for perl v5.24.1 =head1 DESCRIPTION -This document describes the differences between the 5.22.0 release and the -5.24.0 release. +This document describes differences between the 5.24.0 release and the 5.24.1 +release. -=head1 Core Enhancements +If you are upgrading from an earlier release such as 5.22.0, first read +L, which describes differences between 5.22.0 and 5.24.0. -=head2 Postfix dereferencing is no longer experimental - -Using the C and C features no longer emits a -warning. Existing code that disables the C warning -category that they previously used will continue to work. The C -feature has no effect; all Perl code can use postfix dereferencing, -regardless of what feature declarations are in scope. The C<5.24> feature -bundle now includes the C feature. - -=head2 Unicode 8.0 is now supported - -For details on what is in this release, see -L. - -=head2 perl will now croak when closing an in-place output file fails - -Until now, failure to close the output file for an in-place edit was not -detected, meaning that the input file could be clobbered without the edit being -successfully completed. Now, when the output file cannot be closed -successfully, an exception is raised. - -=head2 New C<\b{lb}> boundary in regular expressions - -C stands for Line Break. It is a Unicode property -that determines where a line of text is suitable to break (typically so -that it can be output without overflowing the available horizontal -space). This capability has long been furnished by the -L module, but now a light-weight, non-customizable -version that is suitable for many purposes is in core Perl. - -=head2 C now works in UTF-8 locales - -L -now will successfully compile when S> is in effect. The compiled -pattern will use standard Unicode rules. If the runtime locale is not a -UTF-8 one, a warning is raised and standard Unicode rules are used -anyway. No tainting is done since the outcome does not actually depend -on the locale. - -=head2 Integer shift (C<< << >> and C<< >> >>) now more explicitly defined - -Negative shifts are reverse shifts: left shift becomes right shift, -and right shift becomes left shift. - -Shifting by the number of bits in a native integer (or more) is zero, -except when the "overshift" is right shifting a negative value under -C, in which case the result is -1 (arithmetic shift). - -Until now negative shifting and overshifting have been undefined -because they have relied on whatever the C implementation happens -to do. For example, for the overshift a common C behavior is -"modulo shift": - - 1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1 # Common C behavior. - - # And the same for <<, while Perl now produces 0 for both. - -Now these behaviors are well-defined under Perl, regardless of what -the underlying C implementation does. Note, however, that you are still -constrained by the native integer width: you need to know how far left you -can go. You can use for example: - - use Config; - my $wordbits = $Config{uvsize} * 8; # Or $Config{uvsize} << 3. - -If you need a more bits on the left shift, you can use for example -the C pragma, or the C module from CPAN. - -=head2 printf and sprintf now allow reordered precision arguments - -That is, C<< sprintf '|%.*2$d|', 2, 3 >> now returns C<|002|>. This extends -the existing reordering mechanism (which allows reordering for arguments -that are used as format fields, widths, and vector separators). - -=head2 More fields provided to C callback with C - -When passing the C flag to L, the -C, C, C, C, C and C fields are now -included in the hash passed to the handler, if supported by the -platform. - -=head2 Hashbang redirection to Perl 6 - -Previously perl would redirect to another interpreter if it found a -hashbang path unless the path contains "perl" (see L). To improve -compatability with Perl 6 this behavior has been extended to also redirect -if "perl" is followed by "6". - -=head1 Security - -=head2 Set proper umask before calling C - -In 5.22 perl started setting umask to 0600 before calling C -and restoring it afterwards. This wrongfully tells C to strip -the owner read and write bits from the given mode before applying it, -rather than the intended negation of leaving only those bits in place. - -Systems that use mode 0666 in C (like old versions of -glibc) create a file with permissions 0066, leaving world read and -write permissions regardless of current umask. - -This has been fixed by using umask 0177 instead. [perl #127322] - -=head2 Fix out of boundary access in Win32 path handling - -This is CVE-2015-8608. For more information see -L<[perl #126755]|https://rt.perl.org/Ticket/Display.html?id=126755> - -=head2 Fix loss of taint in canonpath - -This is CVE-2015-8607. For more information see -L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862> - -=head2 Avoid accessing uninitialized memory in win32 C - -Added validation that will detect both a short salt and invalid characters -in the salt. -L<[perl #126922]|https://rt.perl.org/Ticket/Display.html?id=126922> - -=head2 Remove duplicate environment variables from C - -Previously, if an environment variable appeared more than once in -C, C<%ENV> would contain the last entry for that name, -while a typical C would return the first entry. We now -make sure C<%ENV> contains the same as what C returns. - -Second, we remove duplicates from C, so if a setting -with that name is set in C<%ENV>, we won't pass an unsafe value -to a child process. - -[CVE-2016-2381] - -=head1 Incompatible Changes - -=head2 The C feature has been removed - -The experimental C feature (which allowed calling C, -C, C, C, C, C, C, and C on -a scalar argument) has been deemed unsuccessful. It has now been removed; -trying to use the feature (or to disable the C -warning it previously triggered) now yields an exception. - -=head2 Lexical $_ has been removed - -C was introduced in Perl 5.10, and subsequently caused much confusion -with no obvious solution. In Perl 5.18.0, it was made experimental on the -theory that it would either be removed or redesigned in a less confusing (but -backward-incompatible) way. Over the following years, no alternatives were -proposed. The feature has now been removed and will fail to compile. - -=head2 C is now tailored to Perl expectations - -This is now more suited to be a drop-in replacement for plain C<\b>, but -giving better results for parsing natural language. Previously it -strictly followed the current Unicode rules which calls for it to match -between each white space character. Now it doesn't generally match -within spans of white space, behaving like C<\b> does. See -L - -=head2 Regular expression compilation errors - -Some regular expression patterns that had runtime errors now -don't compile at all. - -Almost all Unicode properties using the C<\p{}> and C<\P{}> regular -expression pattern constructs are now checked for validity at pattern -compilation time, and invalid ones will cause the program to not -compile. In earlier releases, this check was often deferred until run -time. Whenever an error check is moved from run- to compile time, -erroneous code is caught 100% of the time, whereas before it would only -get caught if and when the offending portion actually gets executed, -which for unreachable code might be never. - -=head2 C now disallowed under C - -An empty C<\N{}> makes no sense, but for backwards compatibility is -accepted as doing nothing, though a deprecation warning is raised by -default. But now this is a fatal error under the experimental feature -L. - -=head2 Nested declarations are now disallowed - -A C, C, or C declaration is no longer allowed inside -of another C, C, or C declaration. - -For example, these are now fatal: - - my ($x, my($y)); - our (my $x); - -L<[perl #125587]|https://rt.perl.org/Ticket/Display.html?id=125587> - -L<[perl #121058]|https://rt.perl.org/Ticket/Display.html?id=121058> - -=head2 The C character class has been removed. - -This regular expression character class was deprecated in v5.20.0 and has -produced a deprecation warning since v5.22.0. It is now a compile-time -error. If you need to examine the individual bytes that make up a -UTF8-encoded character, then use C on the string (or a -copy) first. - -=head2 C no longer chdirs home - -Using C or C to chdir home has been deprecated since -perl v5.8, and will now fail. Use C instead. - -=head2 ASCII characters in variable names must now be all visible - -It was legal until now on ASCII platforms for variable names to contain -non-graphical ASCII control characters (ordinals 0 through 31, and 127, -which are the C0 controls and C). This usage has been -deprecated since v5.20, and as of now causes a syntax error. The -variables these names referred to are special, reserved by Perl for -whatever use it may choose, now, or in the future. Each such variable -has an alternative way of spelling it. Instead of the single -non-graphic control character, a two character sequence beginning with a -caret is used, like C<$^]> and C<${^GLOBAL_PHASE}>. Details are at -L. It remains legal, though unwise and deprecated (raising a -deprecation warning), to use certain non-graphic non-ASCII characters in -variables names when not under S>. No code should do this, -as all such variables are reserved by Perl, and Perl doesn't currently -define any of them (but could at any time, without notice). - -=head2 An off by one issue in C<$Carp::MaxArgNums> has been fixed - -C<$Carp::MaxArgNums> is supposed to be the number of arguments to display. -Prior to this version, it was instead showing C<$Carp::MaxArgNums> + 1 arguments, -contrary to the documentation. - -=head2 Only blanks and tabs are now allowed within C<[...]> within C<(?[...])>. - -The experimental Extended Bracketed Character Classes can contain regular -bracketed character classes within them. These differ from regular ones in -that white space is generally ignored, unless escaped by preceding it with a -backslash. The white space that is ignored is now limited to just tab C<\t> -and SPACE characters. Previously, it was any white space. See -L. - -=head1 Deprecations - -=head2 Using code points above the platform's C is now deprecated - -Unicode defines code points in the range C<0..0x10FFFF>. Some standards -at one time defined them up to 2**31 - 1, but Perl has allowed them to -be as high as anything that will fit in a word on the platform being -used. However, use of those above the platform's C is broken in -some constructs, notably C, regular expression patterns involving -quantifiers, and in some arithmetic and comparison operations, such as -being the upper limit of a loop. Now the use of such code points raises -a deprecation warning, unless that warning category is turned off. -C is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on -64-bit ones. - -=head2 Doing bitwise operations on strings containing code points above -0xFF is deprecated - -The string bitwise operators treat their operands as strings of bytes, -and values beyond 0xFF are nonsensical in this context. To operate on -encoded bytes, first encode the strings. To operate on code points' -numeric values, use C and C. In the future, this -warning will be replaced by an exception. - -=head2 C, C, C and C are deprecated on -:utf8 handles - -The C, C, C and C operators -are deprecated on handles that have the C<:utf8> layer, either -explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer. - -Both C and C currently use only the C<:utf8> flag for the -stream, ignoring the actual layers. Since C and C do no -UTF-8 validation they can end up creating invalidly encoded scalars. - -Similarly, C and C use only the C<:utf8> flag, otherwise -ignoring any layers. If the flag is set, both write the value UTF-8 -encoded, even if the layer is some different encoding, such as the -example above. - -Ideally, all of these operators would completely ignore the C<:utf8> -state, working only with bytes, but this would result in silently -breaking existing code. To avoid this a future version of perl will -throw an exception when any of C, C, C or C -are called on handle with the C<:utf8> layer. - -=head1 Performance Enhancements - -=over 4 - -=item * - -The overhead of scope entry and exit has been considerably reduced, so -for example subroutine calls, loops and basic blocks are all faster now. -This empty function call now takes about a third less time to execute: - - sub f{} f(); - -=item * - -Many languages, such as Chinese, are caseless. Perl now knows about -most common ones, and skips much of the work when -a program tries to change case in them (like C) or match -caselessly (C). This will speed up a program, such as a web -server, that can operate on multiple languages, while it is operating on a -caseless one. - -=item * - -C has been made much faster. - -On platforms with a libc C implementation which makes good use of -underlying hardware support, patterns which include fixed substrings will now -often be much faster; for example with glibc on a recent x86_64 CPU, this: - - $s = "a" x 1000 . "wxyz"; - $s =~ /wxyz/ for 1..30000 - -is now about 7 times faster. On systems with slow C, e.g. 32-bit ARM -Raspberry Pi, there will be a small or little speedup. Conversely, some -pathological cases, such as C<"ab" x 1000 =~ /aa/> will be slower now; up to 3 -times slower on the rPi, 1.5x slower on x86_64. - -=item * - -Faster addition, subtraction and multiplication. - -Since 5.8.0, arithmetic became slower due to the need to support -64-bit integers. To deal with 64-bit integers, a lot more corner -cases need to be checked, which adds time. We now detect common -cases where there is no need to check for those corner cases, -and special-case them. - -=item * - -Preincrement, predecrement, postincrement, and postdecrement have been -made faster by internally splitting the functions which handled multiple -cases into different functions. - -=item * - -Creating Perl debugger data structures (see L) -for XSUBs and const subs has been removed. This removed one glob/scalar combo -for each unique C<.c> file that XSUBs and const subs came from. On startup -(C) about half a dozen glob/scalar debugger combos were created. -Loading XS modules created more glob/scalar combos. These things were -being created regardless of whether the perl debugger was being used, -and despite the fact that it can't debug C code anyway - -=item * - -On Win32, Cing or C<-X>ing a path, if the file or directory does not -exist, is now 3.5x faster than before. - -=item * - -Single arguments in list assign are now slightly faster: - - ($x) = (...); - (...) = ($x); - -=item * - -Less peak memory is now used when compiling regular expression patterns. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over - -=item * - -L has been upgraded from version 0.10 to 0.11. - -=item * - -L has been upgraded from version 0.97 to 0.99. - -=item * - -L has been upgraded from version 2.26 to 2.29. - -=item * - -L has been upgraded from version 1.08 to 1.11. - -=item * - -L has been upgraded from version 1.58 to 1.62. - -=item * - -L has been upgraded from version 1.35 to 1.37. - -=item * - -L has been upgraded from version 2.22 to 2.23. - -=item * - -L has been upgraded from version 1.2 to 1.22. - -=item * - -L has been upgraded from version 0.39 to 0.42. - -=item * - -L has been upgraded from version 1.04 to 1.05. - -=item * - -L has been upgraded from version 1.36 to 1.40. - -=item * - -L has been upgraded from version 2.068 to 2.069. - -=item * - -L has been upgraded from version 2.068 to 2.069. - -=item * - -L has been upgraded from version 0.24 to 0.25. - -=item * - -L has been upgraded from version 2.150001 to 2.150005. - -=item * - -L has been upgraded from version 2.132 to 2.140. - -=item * - -L has been upgraded from version 0.012 to 0.018. - -=item * - -L has been upgraded from version 2.158 to 2.160. - -=item * - -L has been upgraded from version 1.22 to 1.23. - -=item * - -L has been upgraded from version 3.31 to 3.32. - -=item * - -L has been upgraded from version 1.17 to 1.18. - -=item * - -L has been upgraded from version 1.32 to 1.38. - -=item * - -L has been upgraded from version 2.72 to 2.80. - -=item * - -L has been upgraded from version 2.14 to 2.17. - -=item * - -L has been upgraded from version 0.11 to 0.12. - -=item * - -L has been upgraded from version 1.09 to 1.10. - -=item * - -L has been upgraded from version 1.23 to 1.25. - -=item * - -L has been upgraded from version 0.013 to 0.016. - -=item * - -L has been upgraded from version 0.280221 to 0.280225. - -=item * - -L has been upgraded from version 1.32 to 1.33. - -=item * - -L has been upgraded from version 7.04_01 to 7.10_01. - -=item * - -L has been upgraded from version 3.28 to 3.31. - -=item * - -L has been upgraded from version 3.28 to 3.31. - -=item * - -L has been upgraded from version 1.40 to 1.42. - -=item * - -L has been upgraded from version 2.17 to 2.23. - -=item * - -L has been upgraded from version 2.30 to 2.31. - -=item * - -L has been upgraded from version 1.29 to 1.34. - -=item * - -L has been upgraded from version 1.24 to 1.26. - -=item * - -L has been upgraded from version 2.09 to 2.12_01. - -=item * - -L has been upgraded from version 3.56 to 3.63. - -=item * - -L has been upgraded from version 1.54 to 1.55. - -=item * - -L has been upgraded from version 2.45 to 2.48. - -=item * - -L has been upgraded from version 0.18 to 0.19. - -=item * - -L has been upgraded from version 1.15 to 1.19. - -=item * - -L has been upgraded from version 0.054 to 0.056. - -=item * - -L has been upgraded from version 0.12 to 0.13. - -=item * - -L has been upgraded from version 0.0604 to 0.0606. - -=item * - -L has been upgraded from version 1.35 to 1.36. - -=item * - -IO-Compress has been upgraded from version 2.068 to 2.069. - -=item * - -L has been upgraded from version 1.18 to 1.20. - -=item * - -L has been upgraded from version 2.04 to 2.06_01. - -=item * - -L has been upgraded from version 1.41 to 1.42_02. - -=item * - -L has been upgraded from version 1.06 to 1.08. - -=item * - -L has been upgraded from version 3.34 to 3.37. - -=item * - -L has been upgraded from version 1.9997 to 1.999715. - -=item * - -L has been upgraded from version 0.31 to 0.40. - -=item * - -L has been upgraded from version 0.2608 to 0.260802. - -=item * - -L has been upgraded from version 5.20150520 to 5.20160506. - -=item * - -L has been upgraded from version 1.000026 to 1.000031. - -=item * - -L has been upgraded from version 1.17 to 1.18. - -=item * - -L has been upgraded from version 1.12 to 1.14. - -=item * - -L has been upgraded from version 1.32 to 1.34. - -=item * - -L has been upgraded from version 0.232 to 0.234. - -=item * - -L has been upgraded from version 1.4414 to 1.4417. - -=item * - -L has been upgraded from version 1.008 to 1.009. - -=item * - -L has been upgraded from version 5.021009 to 5.021010. - -=item * - -L has been upgraded from version 0.21 to 0.24. - -=item * - -L has been upgraded from version 0.014 to 0.016. - -=item * - -L has been upgraded from version 0.22 to 0.24. - -=item * - -L has been upgraded from version 0.15 to 0.16. - -=item * - -podlators has been upgraded from version 2.28 to 4.07. - -=item * - -L has been upgraded from version 1.09 to 1.10. - -=item * - -L has been upgraded from version 3.25 to 3.25_02. - -=item * - -L has been upgraded from version 3.29 to 3.32. - -=item * - -L has been upgraded from version 1.64 to 1.68. - -=item * - -L has been upgraded from version 1.53 to 1.65. - -=item * - -L has been upgraded from version 1.41 to 1.42_02. - -=item * - -L has been upgraded from version 1.13 to 1.14. - -=item * - -L has been upgraded from version 1.22 to 1.23. - -=item * - -L has been upgraded from version 2.018 to 2.020_03. - -=item * - -L has been upgraded from version 2.53 to 2.56. - -=item * - -L has been upgraded from version 1.09 to 1.11. - -=item * - -L has been upgraded from version 4.03 to 4.04. - -=item * - -L has been upgraded from version 1.15 to 1.17. - -=item * - -L has been upgraded from version 1.26 to 1.28. - -=item * - -L has been upgraded from version 3.35 to 3.36. - -=item * - -L has been upgraded from version 3.05 to 3.09. - -=item * - -L has been upgraded from version 2.01 to 2.07. - -=item * - -L has been upgraded from version 1.48 to 1.51. - -=item * - -L has been upgraded from version 1.01 to 1.02. - -=item * - -L has been upgraded from version 1.03 to 1.04. - -=item * - -L has been upgraded from version 1.9726 to 1.9733. - -=item * - -L has been upgraded from version 1.29 to 1.31. - -=item * - -L has been upgraded from version 1.12 to 1.14. - -=item * - -L has been upgraded from version 1.18 to 1.25. - -=item * - -L has been upgraded from version 0.61 to 0.64. - -=item * - -L has been upgraded from version 1.12 to 1.13. - -=item * - -L has been upgraded from version 1.17 to 1.19. - -=item * - -L has been upgraded from version 0.9909 to 0.9916. - -=item * - -L has been upgraded from version 1.32 to 1.36. - -=item * - -L has been upgraded from version 0.51 to 0.52. - -=item * - -L has been upgraded from version 0.1202 to 0.1203. - -=item * - -L has been upgraded from version 0.13 to 0.14. - -=item * - -L has been upgraded from version 0.20 to 0.21. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L - -=over 4 - -=item * - -The process of using undocumented globals has been documented, namely, that one -should send email to L -first to get the go-ahead for documenting and using an undocumented function or -global variable. - -=back - -=head3 L - -=over 4 - -=item * - -A number of cleanups have been made to perlcall, including: - -=over 4 - -=item * - -use C and C instead of C where applicable -and update prose to match - -=item * - -add POPu, POPul and POPpbytex to the "complete list of POP macros" -and clarify the documentation for some of the existing entries, and -a note about side-effects - -=item * - -add API documentation for POPu and POPul - -=item * - -use ERRSV more efficiently - -=item * - -approaches to thread-safety storage of SVs. - -=back - -=back - -=head3 L - -=over 4 - -=item * - -The documentation of C has been revised to clarify valid inputs. - -=item * - -Better explain meaning of negative PIDs in C. -L<[perl #127080]|https://rt.perl.org/Ticket/Display.html?id=127080> - -=item * - -General cleanup: there's more consistency now (in POD usage, grammar, code -examples), better practices in code examples (use of C, removal of bareword -filehandles, dropped usage of C<&> when calling subroutines, ...), etc. - -=back - -=head3 L - -=over 4 - -=item * - -A new section has been added, L, which explains how the perl context stack works. - -=back - -=head3 L - -=over 4 - -=item * - -A stronger caution about using locales in threaded applications is -given. Locales are not thread-safe, and you can get wrong results or -even segfaults if you use them there. - -=back - -=head3 L - -=over 4 - -=item * - -We now recommend contacting the module-authors list or PAUSE in seeking -guidance on the naming of modules. - -=back - -=head3 L - -=over 4 - -=item * - -The documentation of C now describes how C<$?> is affected. - -=back - -=head3 L - -=over 4 - -=item * - -This note has been added to perlpolicy: - - While civility is required, kindness is encouraged; if you have any - doubt about whether you are being civil, simply ask yourself, "Am I - being kind?" and aspire to that. - -=back - -=head3 L - -=over 4 - -=item * - -Fix some examples to be L clean. - -=back - -=head3 L - -=over 4 - -=item * - -Clarify that in languages like Japanese and Thai, dictionary lookup -is required to determine word boundaries. - -=back - -=head3 L - -=over 4 - -=item * - -Updated to note that anonymous subroutines can have signatures. - -=back - -=head3 L - -=over 4 - -=item * - -Fixed a broken example where C<=> was used instead of -C<==> in conditional in do/while example. - -=back - -=head3 L - -=over 4 - -=item * - -The usage of C and C has been clarified. - -=back - -=head3 L - -=over 4 - -=item * - -Discourage use of 'In' as a prefix signifying the Unicode Block property. - -=back - -=head3 L - -=over 4 - -=item * - -The documentation of C<$@> was reworded to clarify that it is not just for -syntax errors in C. -L<[perl #124034]|https://rt.perl.org/Ticket/Display.html?id=124034> - -=item * - -The specific true value of C<$!{E...}> is now documented, noting that it is -subject to change and not guaranteed. - -=item * - -Use of C<$OLD_PERL_VERSION> is now discouraged. - -=back - -=head3 L - -=over 4 - -=item * - -The documentation of C has been corrected; they are I -by default, not I. - -=back - -=head1 Diagnostics - -The following additions or changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L. - -=head2 New Diagnostics - -=head3 New Errors - -=over 4 - -=item * - -L<%s must not be a named sequence in transliteration operator|perldiag/"%s must not be a named sequence in transliteration operator"> - -=item * - -L - -=item * - -L - -=item * - -L - -=item * - -L-- HERE in mE%sE -|perldiag/"Empty \%c in regex; marked by <-- HERE in mE%sE"> - -=item * - -L - -=item * - -L - -=item * - -L<<< Sequence (?... not terminated in regex; marked by S<<-- HERE> in mE%sE|perldiag/"Sequence (?... not terminated in regex; marked by <-- HERE in mE%sE" >>> - -=item * - -L<<< Sequence (?PE... not terminated in regex; marked by E-- HERE in mE%sE -|perldiag/"Sequence (?PE... not terminated in regex; marked by <-- HERE in mE%sE" >>> - -=item * - -L... not terminated in regex; marked by E-- HERE in mE%sE -|perldiag/"Sequence (?PE... not terminated in regex; marked by <-- HERE in mE%sE"> - -=back - -=head3 New Warnings - -=over 4 - -=item * - -L-- HERE in mE%sE| -perldiag/Assuming NOT a POSIX class since %s in regex; marked by <-- HERE in mE%sE> - -=item * - -L<%s() is deprecated on :utf8 handles|perldiag/"%s() is deprecated on :utf8 handles"> - -=back - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -Accessing the C part of a glob as C instead of C is no -longer deprecated. It is discouraged to encourage uniformity (so that, for -example, one can grep more easily) but it will not be removed. -L<[perl #127060]|https://rt.perl.org/Ticket/Display.html?id=127060> - -=item * - -The diagnostic C<< Hexadecimal float: internal error >> has been changed to -C<< Hexadecimal float: internal error (%s) >> to include more information. - -=item * - -L - -This error now reports the name of the non-lvalue subroutine you attempted to -use as an lvalue. - -=item * - -When running out of memory during an attempt the increase the stack -size, previously, perl would die using the cryptic message -C<< panic: av_extend_guts() negative count (-9223372036854775681) >>. -This has been fixed to show the prettier message: -L<< Out of memory during stack extend|perldiag/"Out of memory during %s extend" >> - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -C now acts as if the C<-O> option is always passed, allowing command -line options to override saved configuration. This should eliminate confusion -when command line options are ignored for no obvious reason. C<-O> is now -permitted, but ignored. - -=item * - -Bison 3.0 is now supported. - -=item * - -F no longer probes for F by default. Originally -this was the "New Math" library, but the name has been re-used by the -GNOME NetworkManager. -L<[perl #127131]|https://rt.perl.org/Ticket/Display.html?id=127131> - -=item * - -Added F probes for C, C, and C. - -=item * - -C<< PPPort.so/PPPort.dll >> no longer get installed, as they are -not used by C<< PPPort.pm >>, only by its test files. - -=item * - -It is now possible to specify which compilation date to show on -C<< perl -V >> output, by setting the macro C<< PERL_BUILD_DATE >>. - -=item * - -Using the C define in combination with the default hash algorithm -C resulted in a fatal error while compiling -the interpreter, since Perl 5.17.10. This has been fixed. - -=item * - -F should handle spaces in paths a little better. - -=item * - -No longer generate EBCDIC POSIX-BC tables. We don't believe anyone is -using Perl and POSIX-BC at this time, and by not generating these tables -it saves time during development, and makes the resulting tar ball smaller. - -=item * - -The GNU Make makefile for Win32 now supports parallel builds. [perl #126632] - -=item * - -You can now build perl with MSVC++ on Win32 using GNU Make. [perl #126632] - -=item * - -The Win32 miniperl now has a real C which increases build performance -resulting in C being 605x faster in Win32 miniperl. - -=item * - -Configure now takes C<-Dusequadmath> into account when calculating the -C configuration variable. Previously the mis-calculated -C could cause alignment errors on debugging builds. [perl -#127894] - -=back - -=head1 Testing - -=over 4 - -=item * - -A new test (F) has been added to test the list assignment operator -C. - -=item * - -Parallel building has been added to the dmake C makefile. All -Win32 compilers are supported. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item AmigaOS - -=over 4 - -=item * - -The AmigaOS port has been reintegrated into the main tree, based off of -Perl 5.22.1. - -=back - -=item Cygwin - -=over 4 - -=item * - -Tests are more robust against unusual cygdrive prefixes. -L<[perl #126834]|https://rt.perl.org/Ticket/Display.html?id=126834> - -=back - -=item EBCDIC - -=over 4 - -=item UTF-EBCDIC extended - -UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been -extended so that it can represent code points up to 2 ** 64 - 1 on -platforms with 64-bit words. This brings it into parity with UTF-8. -This enhancement requires an incompatible change to the representation -of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the -previous maximum representable code point). This means that a file that -contains one of these code points, written out with previous versions of -perl cannot be read in, without conversion, by a perl containing this -change. We do not believe any such files are in existence, but if you -do have one, submit a ticket at L, -and we will write a conversion script for you. - -=item EBCDIC C and C fixed for UTF-EBCDIC strings - -Comparing two strings that were both encoded in UTF-8 (or more -precisely, UTF-EBCDIC) did not work properly until now. Since C -uses C, this fixes that as well. - -=item EBCDIC C and C fixed for C<\N{}>, and C> ranges - -Perl v5.22 introduced the concept of portable ranges to regular -expression patterns. A portable range matches the same set of -characters no matter what platform is being run on. This concept is now -extended to C. See -CEE|perlop/trESEARCHLISTEREPLACEMENTLISTEcdsr>>. - -There were also some problems with these operations under S>, which are now fixed - -=back - -=item FreeBSD - -=over 4 - -=item * - -Use the C function from FreeBSD if it is available. -L<[perl #126847]|https://rt.perl.org/Ticket/Display.html?id=126847> - -=back - -=item IRIX - -=over 4 - -=item * - -Under some circumstances IRIX stdio C and C set the errno to -C, which made no sense according to either IRIX or POSIX docs. Errno -is now cleared in such cases. -L<[perl #123977]|https://rt.perl.org/Ticket/Display.html?id=123977> - -=item * - -Problems when multiplying long doubles by infinity have been fixed. -L<[perl #126396]|https://rt.perl.org/Ticket/Display.html?id=126396> - -=back - -=item MacOS X - -=over 4 - -=item * - -Until now OS X builds of perl have specified a link target of 10.3 (Panther, -2003) but have not specified a compiler target. From now on, builds of perl on -OS X 10.6 or later (Snow Leopard, 2008) by default capture the current OS X -version and specify that as the explicit build target in both compiler and -linker flags, thus preserving binary compatibility for extensions built later -regardless of changes in OS X, SDK, or compiler and linker versions. To -override the default value used in the build and preserved in the flags, -specify C before configuring and building -perl, where 10.N is the version of OS X you wish to target. In OS X 10.5 or -earlier there is no change to the behavior present when those systems were -current; the link target is still OS X 10.3 and there is no explicit compiler -target. - -=item * - -Builds with both -DDEBUGGING and threading enabled would fail with a -"panic: free from wrong pool" error when built or tested from Terminal -on OS X. This was caused by perl's internal management of the -environment conflicting with an atfork handler using the libc -C function to update the environment. - -Perl now uses C/C to update the environment on OS X. -L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240> - -=back - -=item Solaris - -=over 4 - -=item * - -All Solaris variants now build a shared libperl - -Solaris and variants like OpenIndiana now always build with the shared -Perl library (Configure -Duseshrplib). This was required for the -OpenIndiana builds, but this has also been the setting for Oracle/Sun -Perl builds for several years. - -=back - -=item Tru64 - -=over 4 - -=item * - -Workaround where Tru64 balks when prototypes are listed as -C<< PERL_STATIC_INLINE >>, but where the test is build with -C<< -DPERL_NO_INLINE_FUNCTIONS >>. - -=back - -=item VMS - -=over 4 - -=item * - -On VMS, the math function prototypes in C are now visible under C++. -Now building the POSIX extension with C++ will no longer crash. - -=item * - -VMS has had C/C since v7.0 (released in 1996), -C now always uses C/C. - -=item * - -Perl now implements its own C by scanning for processes in the -specified process group, which may not mean exactly the same thing as a Unix -process group, but allows us to send a signal to a parent (or master) process -and all of its sub-processes. At the perl level, this means we can now send a -negative pid like so: - - kill SIGKILL, -$pid; +=head1 Security -to signal all processes in the same group as C<$pid>. +=head2 B<-Di> switch is now required for PerlIO debugging output -=item * +Previously PerlIO debugging output would be sent to the file specified by the +C environment variable if perl wasn't running setuid and the +B<-T> or B<-t> switches hadn't been parsed yet. -For those C<%ENV> elements based on the CRTL environ array, we've always -preserved case when setting them but did look-ups only after upcasing the -key first, which made lower- or mixed-case entries go missing. This problem -has been corrected by making C<%ENV> elements derived from the environ array -case-sensitive on look-up as well as case-preserving on store. +If perl performed output at a point where it hadn't yet parsed its switches +this could result in perl creating or overwriting the file named by +C even when the B<-T> switch had been supplied. -=item * +Perl now requires the B<-Di> switch to produce PerlIO debugging output. By +default this is written to C, but can optionally be redirected to a +file by setting the C environment variable. -Environment look-ups for C and C previously only -considered logical names, but now consider all sources of C<%ENV> as -determined by C and as documented in L. +If perl is running setuid or the B<-T> switch was supplied C is +ignored and the debugging output is sent to C as for any other B<-D> +switch. -=item * +=head2 Core modules and tools no longer search F<"."> for optional modules -The minimum supported version of VMS is now v7.3-2, released in 2003. As a -side effect of this change, VAX is no longer supported as the terminal -release of OpenVMS VAX was v7.3 in 2001. +The tools and many modules supplied in core no longer search the default +current directory entry in L|perlvar/@INC> for optional modules. For +example, L will remove the final F<"."> from C<@INC> before trying to +load L. -=back +This prevents an attacker injecting an optional module into a process run by +another user where the current directory is writable by the attacker, e.g. the +F directory. -=item Win32 +In most cases this removal should not cause problems, but difficulties were +encountered with L, which treats every module name supplied as optional. +These difficulties have not yet been resolved, so for this release there are no +changes to L. We hope to have a fix for L in Perl 5.24.2. -=over 4 +To protect your own code from this attack, either remove the default F<"."> +entry from C<@INC> at the start of your script, so: -=item * + #!/usr/bin/perl + use strict; + ... -A new build option C has been added to the makefiles. This -option is off by default, meaning the default is to do Windows registry -lookups. This option stops Perl from looking inside the registry for anything. -For what values are looked up in the registry see L. Internally, in -C, the name of this option is C. +becomes: -=item * + #!/usr/bin/perl + BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; + ... -The behavior of Perl using C and -C to lookup certain values, including C<%ENV> -vars starting with C has changed. Previously, the 2 keys were checked -for entries at all times through the perl process's life time even if -they did not -exist. For performance reasons, now, if the root key (i.e. -C or C) does -not exist at process start time, it will not be checked again for C<%ENV> -override entries for the remainder of the perl process's life. This more -closely matches Unix behavior in that the environment is copied or inherited -on startup and changing the variable in the parent process or another process -or editing F<.bashrc> will not change the environmental variable in other -existing, running, processes. +or for modules, remove F<"."> from a localized C<@INC>, so: -=item * + my $can_foo = eval { require Foo; } -One glob fetch was removed for each C<-X> or C call whether done from -Perl code or internally from Perl's C code. The glob being looked up was -C<${^WIN32_SLOPPY_STAT}> which is a special variable. This makes C<-X> and -C slightly faster. +becomes: -=item * + my $can_foo = eval { + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require Foo; + }; -During miniperl's process startup, during the build process, 4 to 8 IO calls -related to the process starting F<.pl> and the F file were -removed from the code opening and executing the first 1 or 2 F<.pl> files. +=head1 Incompatible Changes -=item * +Other than the security changes above there are no changes intentionally +incompatible with Perl 5.24.0. If any exist, they are bugs, and we request +that you submit a report. See L below. -Builds using Microsoft Visual C++ 2003 and earlier no longer produce -an "INTERNAL COMPILER ERROR" message. [perl #126045] +=head1 Modules and Pragmata -=item * +=head2 Updated Modules and Pragmata -Visual C++ 2013 builds will now execute on XP and higher. Previously they would -only execute on Vista and higher. +=over 4 =item * -You can now build perl with GNU Make and GCC. [perl #123440] +L has been upgraded from version 2.04 to 2.04_01. =item * -C now works for files over 4GB in size. -[perl #125347] +L has been upgraded from version 0.42 to 0.42_01. =item * -Parallel building has been added to the dmake C makefile. All -Win32 compilers are supported. +L has been upgraded from version 2.11 to 2.11_01. =item * -Building a 64-bit perl with a 64-bit GCC but a 32-bit gmake would -result in an invalid C<$Config{archname}> for the resulting perl. -[perl #127584] +L has been upgraded from version 1.17 to 1.17_01. =item * -Errors set by Winsock functions are now put directly into C<$^E>, and the -relevant C error codes are now exported from the L and L -modules for testing this against. - -The previous behavior of putting the errors (converted to POSIX-style C -error codes since Perl 5.20.0) into C<$!> was buggy due to the non-equivalence -of like-named Winsock and POSIX error constants, a relationship between which -has unfortunately been established in one way or another since Perl 5.8.0. - -The new behavior provides a much more robust solution for checking Winsock -errors in portable software without accidentally matching POSIX tests that were -intended for other OSes and may have different meanings for Winsock. - -The old behavior is currently retained, warts and all, for backwards -compatibility, but users are encouraged to change any code that tests C<$!> -against C constants for Winsock errors to instead test C<$^E> against -C constants. After a suitable deprecation period, the old behavior may -be removed, leaving C<$!> unchanged after Winsock function calls, to avoid any -possible confusion over which error variable to check. - -=back - -=item ppc64el - -=over 4 - -=item floating point - -The floating point format of ppc64el (Debian naming for little-endian -PowerPC) is now detected correctly. - -=back - -=back - -=head1 Internal Changes - -=over 4 +L has been upgraded from version 5.95 to 5.95_01. =item * -The implementation of perl's context stack system, and its internal API, -have been heavily reworked. Note that no significant changes have been -made to any external APIs, but XS code which relies on such internal -details may need to be fixed. The main changes are: - -=over 4 +L has been upgraded from version 2.80 to 2.80_01. =item * -The C, C etc. macros have been replaced with static -inline functions such as C, C etc. These use -function args rather than implicitly relying on local vars such as -C and C being available. Also their functionality has -changed: in particular, C no longer decrements -C. The ordering of the steps in the C functions -involving C, C etc. has changed. See the new -documentation, L, for -details on how to use them. +L has been upgraded from version 7.10_01 to 7.10_02. =item * -Various macros, which now consistently have a CX_ prefix, have been added: - - CX_CUR(), CX_LEAVE_SCOPE(), CX_POP() - -or renamed: - - CX_POP_SAVEARRAY(), CX_DEBUG(), CX_PUSHSUBST(), CX_POPSUBST() +L has been upgraded from version 0.48 to 0.48_01. =item * -C now saves C and C, so -C and C no longer do - - ENTER; SAVETMPS; ....; LEAVE +L has been upgraded from version 3.63 to 3.63_01. =item * -C now also restores C. +L has been upgraded from version 0.056 to 0.056_001. =item * -In C for every context type, the current savestack frame is -now processed before each context is popped; formerly this was only done -for sub-like context frames. This action has been removed from -C and placed into its own macro, C, which -must be called before C etc. - -C now also does a C on the last popped frame -(formerly it only did the C etc. actions on each frame). +L has been upgraded from version 1.36 to 1.36_01. =item * -The temps stack is now freed on scope exit; previously, temps created -during the last statement of a block wouldn't be freed until the next -C following the block (apart from an existing hack that did -this for recursive subs in scalar context); and in something like -C, the temps created by the last statement in C would -formerly not be freed until the statement following the return from -C. +The IO-Compress modules have been upgraded from version 2.069 to 2.069_001. =item * -Most values that were saved on the savestack on scope entry are now -saved in suitable new fields in the context struct, and saved and -restored directly by C and C, which is much -faster. +L has been upgraded from version 0.92 to 0.92_01. =item * -Various context struct fields have been added, removed or modified. +L has been upgraded from version 2.27300 to 2.27300_01. =item * -The handling of C<@_> in C and C has been -considerably tidied up, including removing the C field from the -context struct, and extracting out some common (but rarely used) code into -a separate function, C. Also, useful subsets of -C which had been unrolled in places like C have been -gathered into the new functions C and -C. +L has been upgraded from version 1.26 to 1.26_01. =item * -C and C now use the same function as the rest -of the C's to process return args. +L has been upgraded from version 0.21 to 0.21_01. =item * -C and C flags have been added, and -C has been split into C, C. +L has been upgraded from version 1.03 to 1.03_01. =item * -Some variables formerly declared by C (but not documented) have -been removed. - -=back +L has been upgraded from version 5.20160506 to 5.20170114_24. =item * -The obscure C variable, effectively a vestige of Perl 1, has -been removed. It was documented as deprecated in Perl 5.20, with a statement -that it would be removed early in the 5.21.x series; that has now finally -happened. -L<[perl #121351]|https://rt.perl.org/Ticket/Display.html?id=121351> +L has been upgraded from version 2.43 to 2.43_01. =item * -An unwarranted assertion in C has been removed. If -a stub subroutine -definition with a prototype has been seen, then any subsequent stub (or -definition) of the same subroutine with an attribute was causing an assertion -failure because of a null pointer. -L<[perl #126845]|https://rt.perl.org/Ticket/Display.html?id=126845> +L has been upgraded from version 1.4417 to 1.4417_001. =item * -C<::> has been replaced by C<__> in C, like it's done for -parameters/return values. This is more consistent, and simplifies writing XS -code wrapping C++ classes into a nested Perl namespace (it requires only -a typedef for C rather than two, one for C and the other -for C). +L has been upgraded from version 1.22 to 1.2201. =item * -The C function is now deprecated. Instead use -C, C, C, and C. -(See L.) +L has been upgraded from version 3.25_02 to 3.25_03. =item * -Perl core code and the threads extension have been annotated so that, -if Perl is configured to use threads, then during compile-time clang (3.6 -or later) will warn about suspicious uses of mutexes. -See L for more -information. +L has been upgraded from version 2.56 to 2.56_01. =item * -The C emulation has been enhanced. This will help older -and/or more exotic platforms or configurations. - +L has been upgraded from version 0.33 to 0.33_01. =item * -Most EBCDIC-specific code in the core has been unified with non-EBCDIC -code, to avoid repetition and make maintenance easier. +L has been upgraded from version 1.28 to 1.28_01. =item * -MSWin32 code for C<$^X> has been moved out of the F directory to -F, where other operating systems set that variable. +L has been upgraded from version 3.36 to 3.36_01. =item * -C<< sv_ref() >> is now part of the API. - -=item * +L has been upgraded from version 0.21 to 0.22, fixing a security hole +in which binary files could be loaded from a path outside of C<@INC>. +L<[perl #128528]|https://rt.perl.org/Public/Bug/Display.html?id=128528> -L had its return type changed from C to C. It -previously has always returned C<0> since Perl 5.000 stable but that was -undocumented. Although C is marked as public API, XS code is not -expected to be impacted since the proper API call would be through public API -C, or quasi-public C, or non-public -C calls, and the return value of C was previously a -meaningless constant that can be rewritten as C<(sv_backoff(sv),0)>. +=back -=item * +=head1 Documentation -The C and C macros have been improved to avoid various issues -with integer truncation and wrapping. In particular, some casts formerly used -within the macros have been removed. This means for example that passing an -unsigned C argument is likely to raise a compiler warning now -(it's always been documented to require a signed value; formerly int, -lately SSize_t). +=head2 Changes to Existing Documentation -=item * +=head3 L -C and C have been removed. +=over 4 =item * -C and C have been removed. +The documentation of C has been updated. =back -=head1 Selected Bug Fixes +=head3 L =over 4 =item * -It now works properly to specify a user-defined property, such as - - qr/\p{mypkg1::IsMyProperty}/i - -with C caseless matching, an explicit package name, and -I not defined at the time of the pattern compilation. - -=item * - -Perl's C, C, C and C fallbacks are now -more compatible with the originals. [perl #127619] - -=item * - -Fixed the issue where a C<< s///r >>) with B<< -DPERL_NO_COW >> attempts -to modify the source SV, resulting in the program dying. [perl #127635] - -=item * - -Fixed an EBCDIC-platform-only case where a pattern could fail to match. This -occurred when matching characters from the set of C1 controls when the -target matched string was in UTF-8. - -=item * - -Narrow the filename check in F and F. Previously, -it assumed that if the filename (without the F<.pmc?> extension) differed -from the package name, if was a misspelled use statement (i.e. C -instead of C). We now check whether there's really a -miscapitalization happening, and not some other issue. - -=item * - -Turn an assertion into a more user friendly failure when parsing -regexes. [perl #127599] - -=item * - -Correctly raise an error when trying to compile patterns with -unterminated character classes while there are trailing backslashes. -[perl #126141]. - -=item * - -Line numbers larger than 2**31-1 but less than 2**32 are no longer -returned by C as negative numbers. [perl #126991] - -=item * - -C<< unless ( I ) >> now properly warns when syntax -warnings are enabled. [perl #127122] - -=item * - -Setting an C glob to an array reference now properly adds -C magic to any existing elements. Previously modifying such -an element would not update the ISA cache, so method calls would call -the wrong function. Perl would also crash if the C glob was -destroyed, since new code added in 5.23.7 would try to release the -C magic from the elements. [perl #127351] - -=item * - -If a here-doc was found while parsing another operator, the parser had -already read end of file, and the here-doc was not terminated, perl -could produce an assertion or a segmentation fault. This now reliably -complains about the unterminated here-doc. [perl #125540] - -=item * - -C would sometimes return the last value returned by the C -handler as well as it's normal value, messing up the stack. [perl -#126621] - -=item * - -Fixed an operator precedence problem when C< castflags & 2> is true. -[perl #127474] - -=item * - -Caching of DESTROY methods could result in a non-pointer or a -non-STASH stored in the C slot of a stash, breaking the B -C method. The DESTROY method is now cached in the MRO metadata -for the stash. [perl #126410] - -=item * - -The AUTOLOAD method is now called when searching for a DESTROY method, -and correctly sets C<$AUTOLOAD> too. [perl #124387] [perl #127494] - -=item * - -Avoid parsing beyond the end of the buffer when processing a C<#line> -directive with no filename. [perl #127334] - -=item * - -Perl now raises a warning when a regular expression pattern looks like -it was supposed to contain a POSIX class, like C, but -there was some slight defect in its specification which causes it to -instead be treated as a regular bracketed character class. An example -would be missing the second colon in the above like this: -C. This compiles to match a sequence of two characters. -The second is C<"]">, and the first is any of: C<"[">, C<":">, C<"a">, -C<"h">, C<"l">, or C<"p">. This is unlikely to be the intended -meaning, and now a warning is raised. No warning is raised unless the -specification is very close to one of the 14 legal POSIX classes. (See -L.) -[perl #8904] - -=item * - -Certain regex patterns involving a complemented POSIX class in an -inverted bracketed character class, and matching something else -optionally would improperly fail to match. An example of one that could -fail is C. This has been fixed. -[perl #127537] - -=item * - -Perl 5.22 added support to the C99 hexadecimal floating point notation, -but sometimes misparses hex floats. This has been fixed. -[perl #127183] - -=item * - -A regression that allowed undeclared barewords in hash keys to work despite -strictures has been fixed. -L<[perl #126981]|https://rt.perl.org/Ticket/Display.html?id=126981> - -=item * - -Calls to the placeholder C<&PL_sv_yes> used internally when an C -or C method isn't found now correctly handle scalar context. -L<[perl #126042]|https://rt.perl.org/Ticket/Display.html?id=126042> - -=item * - -Report more context when we see an array where we expect to see an -operator and avoid an assertion failure. -L<[perl #123737]|https://rt.perl.org/Ticket/Display.html?id=123737> - -=item * - -Modifying an array that was previously a package C<@ISA> no longer -causes assertion failures or crashes. -L<[perl #123788]|https://rt.perl.org/Ticket/Display.html?id=123788> - -=item * - -Retain binary compatibility across plain and DEBUGGING perl builds. -L<[perl #127212]|https://rt.perl.org/Ticket/Display.html?id=127212> - -=item * - -Avoid leaking memory when setting C<$ENV{foo}> on darwin. -L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240> - -=item * - -C no longer crashes on utf8 strings. When C<\G> is a fixed number -of characters from the start of the regex, perl needs to count back that -many characters from the current C position and start matching from -there. However, it was counting back bytes rather than characters, which -could lead to panics on utf8 strings. - -=item * - -In some cases operators that return integers would return negative -integers as large positive integers. -L<[perl #126635]|https://rt.perl.org/Ticket/Display.html?id=126635> - -=item * - -The C operator would assert for DEBUGGING builds instead of -producing the correct error message. The condition asserted on is -detected and reported on correctly without the assertions, so the -assertions were removed. -L<[perl #126480]|https://rt.perl.org/Ticket/Display.html?id=126480> - -=item * - -In some cases, failing to parse a here-doc would attempt to use freed -memory. This was caused by a pointer not being restored correctly. -L<[perl #126443]|https://rt.perl.org/Ticket/Display.html?id=126443> - -=item * - -C<< @x = sort { *a = 0; $a <=> $b } 0 .. 1 >> no longer frees the GP -for *a before restoring its SV slot. -L<[perl #124097]|https://rt.perl.org/Ticket/Display.html?id=124097> - -=item * - -Multiple problems with the new hexadecimal floating point printf -format C<%a> were fixed: -L<[perl #126582]|https://rt.perl.org/Ticket/Display.html?id=126582>, -L<[perl #126586]|https://rt.perl.org/Ticket/Display.html?id=126586>, -L<[perl #126822]|https://rt.perl.org/Ticket/Display.html?id=126822> - -=item * - -Calling C in C no longer leaks. - -=item * - -A regression from Perl v5.20 was fixed in which debugging output of regular -expression compilation was wrong. (The pattern was correctly compiled, but -what got displayed for it was wrong.) - -=item * - -C<\b{sb}> works much better. In Perl v5.22.0, this new construct didn't -seem to give the expected results, yet passed all the tests in the -extensive suite furnished by Unicode. It turns out that it was because -these were short input strings, and the failures had to do with longer -inputs. - -=item * - -Certain syntax errors in -L caused panics -instead of the proper error message. This has now been fixed. [perl -#126481] - -=item * - -Perl 5.20 added a message when a quantifier in a regular -expression was useless, but then caused the parser to skip it; -this caused the surplus quantifier to be silently ignored, instead -of throwing an error. This is now fixed. [perl #126253] - -=item * - -The switch to building non-XS modules last in win32/makefile.mk (introduced -by design as part of the changes to enable parallel building) caused the -build of POSIX to break due to problems with the version module. This -is now fixed. - -=item * - -Improved parsing of hex float constants. - -=item * - -Fixed an issue with C<< pack >> where C<< pack "H" >> (and C<< pack "h" >>) -could read past the source when given a non-utf8 source, and a utf8 target. -[perl #126325] - -=item * - -Fixed several cases where perl would abort due to a segmentation fault, -or a C-level assert. [perl #126615], [perl #126602], [perl #126193]. - -=item * - -There were places in regular expression patterns where comments (C<(?#...)>) -weren't allowed, but should have been. This is now fixed. -L<[perl #116639]|https://rt.perl.org/Ticket/Display.html?id=116639> - -=item * - -Some regressions from Perl 5.20 have been fixed, in which some syntax errors in -L|perlrecharclass/Extended Bracketed Character Classes> constructs -within regular expression patterns could cause a segfault instead of a proper -error message. -L<[perl #126180]|https://rt.perl.org/Ticket/Display.html?id=126180> -L<[perl #126404]|https://rt.perl.org/Ticket/Display.html?id=126404> - -=item * - -Another problem with -L|perlrecharclass/Extended Bracketed Character Classes> -constructs has been fixed wherein things like C<\c]> could cause panics. -L<[perl #126181]|https://rt.perl.org/Ticket/Display.html?id=126181> - -=item * - -Some problems with attempting to extend the perl stack to around 2G or 4G -entries have been fixed. This was particularly an issue on 32-bit perls built -to use 64-bit integers, and was easily noticeable with the list repetition -operator, e.g. - - @a = (1) x $big_number - -Formerly perl may have crashed, depending on the exact value of C<$big_number>; -now it will typically raise an exception. -L<[perl #125937]|https://rt.perl.org/Ticket/Display.html?id=125937> - -=item * - -In a regex conditional expression C<(?(condition)yes-pattern|no-pattern)>, if -the condition is C<(?!)> then perl failed the match outright instead of -matching the no-pattern. This has been fixed. -L<[perl #126222]|https://rt.perl.org/Ticket/Display.html?id=126222> - -=item * - -The special backtracking control verbs C<(*VERB:ARG)> now all allow an optional -argument and set C/C appropriately as well. -L<[perl #126186]|https://rt.perl.org/Ticket/Display.html?id=126186> - -=item * - -Several bugs, including a segmentation fault, have been fixed with the boundary -checking constructs (introduced in Perl 5.22) C<\b{gcb}>, C<\b{sb}>, C<\b{wb}>, -C<\B{gcb}>, C<\B{sb}>, and C<\B{wb}>. All the C<\B{}> ones now match an empty -string; none of the C<\b{}> ones do. -L<[perl #126319]|https://rt.perl.org/Ticket/Display.html?id=126319> - -=item * - -Duplicating a closed file handle for write no longer creates a -filename of the form F. [perl #125115] - -=item * - -Warning fatality is now ignored when rewinding the stack. This -prevents infinite recursion when the now fatal error also causes -rewinding of the stack. [perl #123398] - -=item * - -In perl v5.22.0, the logic changed when parsing a numeric parameter to the -C -option, such that the successfully parsed number was not saved as the option -value if it parsed to the end of the argument. [perl #125381] - -=item * - -The PadlistNAMES macro is an lvalue again. - -=item * - -Zero -DPERL_TRACE_OPS memory for sub-threads. - -C was missing Zero init of PL_op_exec_cnt[]. This -caused sub-threads in threaded -DPERL_TRACE_OPS builds to spew exceedingly -large op-counts at destruct. These counts would print %x as "ABABABAB", -clearly a mem-poison value. - -=item * - -A leak in the XS typemap caused one scalar to be leaked each time a C -or a C was Ced or imported to Perl, since perl 5.000. These -particular typemap entries are thought to be extremely rarely used by XS -modules. [perl #124181] - -=item * - -C and C will now warn if the argument is a negative number -and return undef. Previously they would pass the negative value to the -underlying C function which may have set up a timer with a surprising value. - -=item * - -Perl can again be compiled with any Unicode version. This used to -(mostly) work, but was lost in v5.18 through v5.20. The property -C did not exist prior to Unicode 5.0. L -incorrectly said it did. This has been fixed. - -=item * - -Very large code-points (beyond Unicode) in regular expressions no -longer cause a buffer overflow in some cases when converted to UTF-8. -L<[perl #125826]|https://rt.perl.org/Ticket/Display.html?id=125826> - -=item * - -The integer overflow check for the range operator (...) in list -context now correctly handles the case where the size of the range is -larger than the address space. This could happen on 32-bits with --Duse64bitint. -L<[perl #125781]|https://rt.perl.org/Ticket/Display.html?id=125781> - -=item * - -A crash with C<< %::=(); J->${\"::"} >> has been fixed. -L<[perl #125541]|https://rt.perl.org/Ticket/Display.html?id=125541> - -=item * - -C no longer segfaults, giving a syntax error message instead. -[perl #125805] - -=item * - -Regular expression possessive quantifier v5.20 regression now fixed. -CIC<{>I,IC<}+>C is supposed to behave identically -to C>IC<{>I,IC<})/>. Since v5.20, this didn't -work if I and I were equal. [perl #125825] - -=item * - -C<< BEGIN <> >> no longer segfaults and properly produces an error -message. [perl #125341] - -=item * - -In C an illegal backwards range like C was -not always detected, giving incorrect results. This is now fixed. +The new B<-Di> switch has been documented, and the documentation of +C has been updated. =back -=head1 Known Problems +=head1 Testing =over 4 =item * -Some modules have been broken by the L. -These modules were relying on non-guaranteed implementation details in perl. -Their maintainers have been informed, and should contact perl5-porters for -advice if needed. Below is a subset of these modules: - -=over 4 - -=item L - -=item L - -L and perl v5.22.0 were already incompatible due to a change in the perl, -and the reworking on the perl context stack creates a further incompatibility. -perl5-porters has L. - -=item L - -=item L - -=item L - -=item L +A new test script, F, has been added to test that the new +B<-Di> switch is working correctly. =back -=item * +=head1 Selected Bug Fixes -The module L no longer works on perl v5.24.0, because perl -no longer has a lexical C<$_>! +=over 4 =item * -C has been patched for compatibility for v5.22.0 and later but no -release has been made. The relevant patch (and other changes) can be found in -their source code repository, L. +The change to hashbang redirection introduced in Perl 5.24.0, whereby perl +would redirect to another interpreter (Perl 6) if it found a hashbang path +which contains "perl" followed by "6", has been reverted because it broke in +cases such as C<#!/opt/perl64/bin/perl>. =back =head1 Acknowledgements -Perl 5.24.0 represents approximately 11 months of development since Perl 5.22.0 -and contains approximately 360,000 lines of changes across 1,800 files from 77 +Perl 5.24.1 represents approximately 8 months of development since Perl 5.24.0 +and contains approximately 8,100 lines of changes across 240 files from 18 authors. Excluding auto-generated files, documentation and release tools, there were -approximately 250,000 lines of changes to 1,200 .pm, .t, .c and .h files. +approximately 2,200 lines of changes to 170 .pm, .t, .c and .h files. Perl continues to flourish into its third decade thanks to a vibrant community -of users and developers. The following people are known to have contributed the -improvements that became Perl 5.24.0: - -Aaron Crane, Aaron Priven, Abigail, Achim Gratz, Alexander D'Archangel, Alex -Vandiver, Andreas König, Andy Broad, Andy Dougherty, Aristotle Pagaltzis, -Chase Whitener, Chas. Owens, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn -Ilmari MannsÃ¥ker, Dan Collins, Daniel Dragan, David Golden, David Mitchell, -Dominic Hargreaves, Doug Bell, Dr.Ruud, Ed Avis, Ed J, Father Chrysostomos, -Herbert Breunung, H.Merijn Brand, Hugo van der Sanden, Ivan Pozdeev, James E -Keenan, Jan Dubois, Jarkko Hietaniemi, Jerry D. Hedden, Jim Cromie, John -Peacock, John SJ Anderson, Karen Etheridge, Karl Williamson, kmx, Leon -Timmermans, Ludovic E. R. Tolhurst-Cleaver, Lukas Mai, Martijn Lievaart, -Matthew Horsfall, Mattia Barbon, Max Maischein, Mohammed El-Afifi, Nicholas -Clark, Nicolas R., Niko Tyni, Peter John Acklam, Peter Martini, Peter -Rabbitson, Pip Cet, Rafael Garcia-Suarez, Reini Urban, Renee Baecker, Ricardo -Signes, Sawyer X, Shlomi Fish, Sisyphus, Stanislaw Pusep, Steffen Müller, -Stevan Little, Steve Hay, Sullivan Beck, Thomas Sibley, Todd Rinaldo, Tom -Hukins, Tony Cook, Unicode Consortium, Victor Adam, Vincent Pit, Vladimir -Timofeev, Yves Orton, Zachary Storer, Zefram. +of users and developers. The following people are known to have contributed +the improvements that became Perl 5.24.1: + +Aaron Crane, Alex Vandiver, Aristotle Pagaltzis, Chad Granum, Chris 'BinGOs' +Williams, Craig A. Berry, Father Chrysostomos, James E Keenan, Jarkko +Hietaniemi, Karen Etheridge, Leon Timmermans, Matthew Horsfall, Ricardo Signes, +Sawyer X, Sébastien Aperghis-Tramoni, Stevan Little, Steve Hay, Tony Cook. The list above is almost certainly incomplete as it is automatically generated -from version control history. In particular, it does not include the names of +from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker. Many of the changes included in this version originated in the CPAN modules -included in Perl's core. We're grateful to the entire CPAN community for +included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. For a more complete list of all of Perl's historical contributors, please see @@ -2226,9 +280,9 @@ the F file in the Perl source distribution. =head1 Reporting Bugs If you find what you think is a bug, you might check the articles recently -posted to the comp.lang.perl.misc newsgroup and the perl bug database at -https://rt.perl.org/ . There may also be information at -http://www.perl.org/ , the Perl Home Page. +posted to the comp.lang.perl.misc newsgroup and the Perl bug database at +L . There may also be information at +L , the Perl Home Page. If you believe you have an unreported bug, please run the L program included with your release. Be sure to trim your bug down to a tiny but @@ -2237,8 +291,8 @@ will be sent off to perlbug@perl.org to be analysed by the Perl porting team. If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see -L -for details of how to report the issue. +L for details of how to +report the issue. =head1 SEE ALSO diff --git a/pod/perlhist.pod b/pod/perlhist.pod index ee414fc..1b2e626 100644 --- a/pod/perlhist.pod +++ b/pod/perlhist.pod @@ -33,7 +33,7 @@ Matt S Trout, David Golden, Florian Ragwitz, Tatsuhiko Miyagawa, Chris C Williams, Zefram, Ævar Arnfjörð Bjarmason, Stevan Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook, Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall, -Peter Martini, and Sawyer X. +Peter Martini, Sawyer X, and Chad 'Exodist' Granum. =head2 PUMPKIN? @@ -567,6 +567,12 @@ the strings?). Steve 5.22.1 2015-Dec-13 Steve 5.22.2-RC1 2016-Apr-10 Steve 5.22.2 2016-Apr-29 + Steve 5.22.3-RC1 2016-Jul-17 + Steve 5.22.3-RC2 2016-Jul-25 + Steve 5.22.3-RC3 2016-Aug-11 + Steve 5.22.3-RC4 2016-Oct-12 + Steve 5.22.3-RC5 2017-Jan-02 + Steve 5.22.3 2017-Jan-14 Ricardo 5.23.0 2015-Jun-20 The 5.23 development track Matthew 5.23.1 2015-Jul-20 @@ -585,6 +591,22 @@ the strings?). Ricardo 5.24.0-RC4 2016-May-02 Ricardo 5.24.0-RC5 2016-May-04 Ricardo 5.24.0 2016-May-09 + Steve 5.24.1-RC1 2016-Jul-17 + Steve 5.24.1-RC2 2016-Jul-25 + Steve 5.24.1-RC3 2016-Aug-11 + Steve 5.24.1-RC4 2016-Oct-12 + Steve 5.24.1-RC5 2017-Jan-02 + Steve 5.24.1 2017-Jan-14 + + Ricardo 5.25.0 2016-May-09 The 5.25 development track + Sawyer X 5.25.1 2016-May-20 + Matthew 5.25.2 2016-Jun-20 + Steve 5.25.3 2016-Jul-20 + BinGOs 5.25.4 2016-Aug-20 + Stevan 5.25.5 2016-Sep-20 + Aaron 5.25.6 2016-Oct-20 + Chad 5.25.7 2016-Nov-20 + Sawyer 5.25.8 2016-Dec-20 =head2 SELECTED RELEASE SIZES diff --git a/pod/perlrun.pod b/pod/perlrun.pod index e454bf8..349e91e 100644 --- a/pod/perlrun.pod +++ b/pod/perlrun.pod @@ -388,39 +388,42 @@ the format of the output is explained in L. As an alternative, specify a number instead of list of letters (e.g., B<-D14> is equivalent to B<-Dtls>): - 1 p Tokenizing and parsing (with v, displays parse stack) - 2 s Stack snapshots (with v, displays all stacks) - 4 l Context (loop) stack processing - 8 t Trace execution - 16 o Method and overloading resolution - 32 c String/numeric conversions - 64 P Print profiling info, source file input state - 128 m Memory and SV allocation - 256 f Format processing - 512 r Regular expression parsing and execution - 1024 x Syntax tree dump - 2048 u Tainting checks - 4096 U Unofficial, User hacking (reserved for private, - unreleased use) - 8192 H Hash dump -- usurps values() - 16384 X Scratchpad allocation - 32768 D Cleaning up - 65536 S Op slab allocation - 131072 T Tokenizing - 262144 R Include reference counts of dumped variables (eg when - using -Ds) - 524288 J show s,t,P-debug (don't Jump over) on opcodes within - package DB - 1048576 v Verbose: use in conjunction with other flags - 2097152 C Copy On Write - 4194304 A Consistency checks on internal structures - 8388608 q quiet - currently only suppresses the "EXECUTING" - message - 16777216 M trace smart match resolution - 33554432 B dump suBroutine definitions, including special Blocks - like BEGIN - 67108864 L trace Locale-related info; what gets output is very - subject to change + 1 p Tokenizing and parsing (with v, displays parse + stack) + 2 s Stack snapshots (with v, displays all stacks) + 4 l Context (loop) stack processing + 8 t Trace execution + 16 o Method and overloading resolution + 32 c String/numeric conversions + 64 P Print profiling info, source file input state + 128 m Memory and SV allocation + 256 f Format processing + 512 r Regular expression parsing and execution + 1024 x Syntax tree dump + 2048 u Tainting checks + 4096 U Unofficial, User hacking (reserved for private, + unreleased use) + 8192 H Hash dump -- usurps values() + 16384 X Scratchpad allocation + 32768 D Cleaning up + 65536 S Op slab allocation + 131072 T Tokenizing + 262144 R Include reference counts of dumped variables + (eg when using -Ds) + 524288 J show s,t,P-debug (don't Jump over) on opcodes within + package DB + 1048576 v Verbose: use in conjunction with other flags + 2097152 C Copy On Write + 4194304 A Consistency checks on internal structures + 8388608 q quiet - currently only suppresses the "EXECUTING" + message + 16777216 M trace smart match resolution + 33554432 B dump suBroutine definitions, including special + Blocks like BEGIN + 67108864 L trace Locale-related info; what gets output is very + subject to change + 134217728 i trace PerlIO layer processing. Set PERLIO_DEBUG to + the filename to trace to. All these flags require B<-DDEBUGGING> when you compile the Perl executable (but see C<:opd> in L or L @@ -1152,19 +1155,22 @@ is run in taint mode. =item PERLIO_DEBUG X -If set to the name of a file or device, certain operations of PerlIO -subsystem will be logged to that file, which is opened in append mode. -Typical uses are in Unix: +If set to the name of a file or device when Perl is run with the +B<-Di> command-line switch, the logging of certain operations of +the PerlIO subsystem will be redirected to the specified file rather +than going to stderr, which is the default. The file is opened in append +mode. Typical uses are in Unix: - % env PERLIO_DEBUG=/dev/tty perl script ... + % env PERLIO_DEBUG=/tmp/perlio.log perl -Di script ... and under Win32, the approximately equivalent: > set PERLIO_DEBUG=CON - perl script ... + perl -Di script ... -This functionality is disabled for setuid scripts and for scripts run -with B<-T>. +This functionality is disabled for setuid scripts, for scripts run +with B<-T>, and for scripts run on a Perl built without C<-DDEBUGGING> +support. =item PERLLIB X diff --git a/t/porting/customized.dat b/t/porting/customized.dat index f871a32..defeae1 100644 --- a/t/porting/customized.dat +++ b/t/porting/customized.dat @@ -1,50 +1,105 @@ -CPAN cpan/CPAN/lib/CPAN.pm ce62c43d72f101c011184dbbc59e21c2790826f0 +Archive::Tar cpan/Archive-Tar/bin/ptar 5e9f3c6f565114193d98847ed8569cd0010c229c +Archive::Tar cpan/Archive-Tar/bin/ptardiff 5a9f4c01a0390bf98da7e63f1c0bbf5bc74d12c7 +Archive::Tar cpan/Archive-Tar/bin/ptargrep eb74056c434acf314ac5a122e33bdd2ef99e6edb +Archive::Tar cpan/Archive-Tar/lib/Archive/Tar.pm b7e13134a5bcabe8c33fb0729d2f2f80e924059a +Archive::Tar cpan/Archive-Tar/lib/Archive/Tar/Constant.pm 18af3e90665fcf2ab40c5b02c10ba0ea3ac34d0e +Archive::Tar cpan/Archive-Tar/lib/Archive/Tar/File.pm c0b849aa3d164305d7cb084ba3adf8d505971d6b +CPAN cpan/CPAN/lib/App/Cpan.pm b2a9928c41083c82e884f6dc6d4b7043a2b0e351 +CPAN cpan/CPAN/lib/CPAN.pm 27f0f5c41a81aba89dfc895e7671719716522544 +CPAN cpan/CPAN/scripts/cpan c43050c8c63153a205e4385e118e906d1ecadf06 +Digest cpan/Digest/Digest.pm 43f7f544cb11842b2f55c73e28930da50774e081 +Digest::SHA cpan/Digest-SHA/lib/Digest/SHA.pm 5841fcf70f7290e07befdd16f05093664c618a96 +Digest::SHA cpan/Digest-SHA/shasum f92faa37afc098e2a825e4ecda1097890492d957 +Encode cpan/Encode/bin/enc2xs 7bbd4ca8d81e0189b87d703aa058b95a837b97d3 +Encode cpan/Encode/bin/encguess f1e7a130995c4bad53bb6d3034dae625cfe61e32 +Encode cpan/Encode/bin/piconv 80ea7f9afff580e41c4b29f5ab214ed378274b49 +Encode cpan/Encode/bin/ucmlint 495862125269a60536b78fd0a7910d024c4d21fe +Encode cpan/Encode/bin/unidump 715f47c2fcc661268f3c6cd3de0d27c72b745cd2 +Encode cpan/Encode/Encode.pm e146861ff2e6aaa62defa4887eade68dd7b17c8e Encode cpan/Encode/encoding.pm 51c19efc9bfe8467d6ae12a4654f6e7f980715bf ExtUtils::Constant cpan/ExtUtils-Constant/t/Constant.t a0369c919e216fb02767a637666bb4577ad79b02 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm 8d772fbc6a57637ab24d12a02794073ee71b489c -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm 9be9ac3fee6fd6df702469904e02c8b4c6f2502e -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm bb2443c2314c50f09f7eab4aacc03ade8b9907dd -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 830acdc810e2974d7fd4ec408ea1bfa825c75b69 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm 5c41b40e33464c6635258061dff4ece018b46bd9 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/bin/instmodsh 5bc04a0173b8b787f465271b6186220326ae8eef +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm e3a372e07392179711ea9972087c1105a2780fad +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b72721bd6aa9bf7ec328bda99a8fdb63cac6114d +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm 0e1e4c25eddb999fec6c4dc66593f76db34cfd16 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm bfd2aa00ca4ed251f342e1d1ad704abbaf5a615e +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 5529ae3064365eafd99536621305d52f4ab31b45 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm bc88b275af73b8faac6abd59a9aad3f625925810 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod 062e5d14a803fbbec8d61803086a3d7997e8a473 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod a8a9cab7d67922ed3d6883c864e1fe29aaa6ad89 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm 0c970778ac7b437d9363b314dd0ab85b7d83c8cb ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm 987b7b5567b95a085a69037a7fa99af2b9bdf4df -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm 5d5cd55e8d367477337e06f56c02e94c5f7d4a39 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 23a4b33b974e036d59bf55aa02e025506a408048 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 288df61e9ba7be3505b58b6345091fe1f310a117 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm 8578f2ea4ec9e764a789f6ecf620ea449ddca8c1 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 9f1f6c51fb0337726c99332facc52159c0619fe2 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm a0ec076bedfa0c2e52fc2b735fbc75b4c2706bbf -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 976b10ec76d1fe6f7ee9000b5596e8950434880b -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm bc4b33fa5296ab35bcb1be1c18759b93c4de2598 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm db807cc6e804e34e2b061c2eb96716b79274fd60 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm 83601fa89eb285ae458c6f57bc3d6789a50de684 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 8185a7db6c4d7e0fdc5001aeaa8c2b612a884a5e -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 2fe66ca8a894d6a2ae340b8bf6f8d69c5e1f7fbe -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm e8a4dbba69a1d551bd581ea6a3f2415bacbc0ae5 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm d666ac424618c3e11b8549755c9646d942bd2d57 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm f6581a0e75e45bfc26f343f173d3366c43fb1221 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 1997912b5018970cdeb3dae8fd7e0c24f6e5d567 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm 210a4eda8b081d9986477e3a9762fce6ebea8474 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm 675c0a890c0c74178c845f40d133e603d913b835 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm f73ef46755d59467960e98c0d1df085fb56e22ef -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 6059d9bb7c4f0c154a61f115aa6b24ba08622b81 -ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm 6347934cbe40da977790cea6c81987816b2fe26b +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm 412e95c37fa10f007f3137e9e142ac30f3427d9f +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm 8559ef191b4371d0c381472464856a8a73825b2a +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 09d579ed9daea95c3bf47de2e0b8fe3aa0ff6447 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm f720c13748293b792f7073aa96e7daecb590b183 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 243649a399d293ae7ad0f26b7eab2668aa864ce8 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b63c90129303b2c17d084fb828aa2c02a2ad85b8 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm cabd1c97eaa427067811d92807e34c17940c7350 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm 6a185d897a600c34615a6073f4de0ac2f54fef3e +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm fcf2f8e3461deb32e4b3f37a00002477bc8e976e +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm 1f5eb772eedfce56434161e2ff080e0cb03ee260 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm de777d7809c0d73e5d4622a29921731c7e5dff48 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 01e8f08a82b5304009574e3ac0892b4066ff7639 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 5340052b58557a6764f5ac9f8b807fefec404a06 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 3c3b93f431b0a51b9592b3d69624dbf5409f6f74 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm 40397f4cd2d49700b80b4ef490da98add24c5b37 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 147e97fbabb74841f0733dbd5d1b9f3fa51f87c1 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm 3f13ed7045ff3443bcb4dd6c95c98b9bd705820f +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm 10b2a0651d14ec8b1367e986288533a40bac8380 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm 48e8a2fe1763ba0228a12a8d363af8d033817ba9 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 6fefe99045b64459905d4721f3a494d8d50f7ab9 +ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm 172778ad21c065a89cd270668eb9f99a7364b41c ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/cd.t 0a71fbd646a7be8358b07b6f64f838243cc0aef4 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/echo.t 37aec8f794c52e037540757eb5b2556f79419ff7 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/NoXS.pm 371cdff1b2375017907cfbc9c8f4a31f5ad10582 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/prereq.t 53bda2c549fd13a6b6c13a070ca6bc79883081c0 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/vstrings.t 90035a2bdbf45f15b9c3196d072d7cba7e662871 +File::Fetch cpan/File-Fetch/lib/File/Fetch.pm bd0b64a1d8ee2ffac39e017f9fa9f78f95514b4d File::Path cpan/File-Path/lib/File/Path.pm fd8ce4420a0c113d3f47dd3223859743655c1da8 File::Path cpan/File-Path/t/Path_win32.t 94b9276557ce7f80b91f6fd9bfa7a0cd9bf9683e +HTTP::Tiny cpan/HTTP-Tiny/lib/HTTP/Tiny.pm 3c899ab6938b588f6a2823a6aa59edc81fc2a387 +IO-Compress cpan/IO-Compress/bin/zipdetails 381ba2a6ae5bd21c8d2e994316e3e13f2f0a4f41 +IO-Compress cpan/IO-Compress/lib/Compress/Zlib.pm 58ddedd36889463706d4060589d0c5e6dc497b86 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm 871432b8a9ab1ec0535c17a3f2b8cd49ad657e38 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm 8f17ecfcd34ff4bec15cc505133dccddd63023ea +IO-Compress cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm fe231e107be84089a16d4890baa306ba1b033fb1 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Base.pm 908f2264231c5f3b9a946f01c76b9498414a8100 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Base/Common.pm 7773ccaf2d4202dff720f31315f5cec92e021803 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Bzip2.pm fc5a19657c3a4ba5c4fff5cfb0236f7fb7130bd7 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Deflate.pm d41b030df81327d595357353e44ef0bd19569c41 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Gzip.pm 723dd26824de6a777645a5d5f010f033ad07301e +IO-Compress cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm a4779d16ba73ae8917ceb3886449d4d132c87175 +IO-Compress cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm 4cd31ab73417c3c17574770c2bbd58238aaf214e +IO-Compress cpan/IO-Compress/lib/IO/Compress/Zip.pm 84fe2c1c8f4f5b7d3adbe84994b2b4e7f21252cc +IO-Compress cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm 253cedf65b9ece96cca1f5c0797aa08cbb26d009 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm 68e6adf8e5f806a1620b510810343a3816d70e40 +IO-Compress cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm 078a4ed7258530d11a13abafa84791f7c3c26518 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm 49d0acc3b95eefcfe3842f4a4b10bb85d676bfe5 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm 29347c2d945b2ddbb67cf640d89aa23f34edce48 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm f6d7ae62136ef37bf27a47bf072105d601dd8a9b +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm 8c3de66922bcdd5b70a14737860d1ffe97883fed +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm d53e94d5da3462bb979c4f46c5c7ec62775775c2 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Base.pm 0e512c2c6c1863760f4ea795a823d43018903391 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm 7fda33207940bdabb0a2c43d4db7a09ad6686e33 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm eb220d4b455b509a1e3864e476baf4b2cd0bbc60 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm 4ed964c2df4116a43c637eab339a051af6f5ac45 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm 9d8231e49631c2a2860ba4c6b724872409d3b034 +IO-Compress cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm 78a9b534f1c400073c27b433c21afbd440922b26 +IPC::Cmd cpan/IPC-Cmd/lib/IPC/Cmd.pm d76a3537902c2a3097c07e41242e2c01fa8f3288 IPC::SysV cpan/IPC-SysV/lib/IPC/Msg.pm 88865a2c7a06351cf10e08addd077bbdea02fb60 IPC::SysV cpan/IPC-SysV/lib/IPC/Semaphore.pm 04f0d11b7d0babf8e41ccc917cccecc4a3ff9050 IPC::SysV cpan/IPC-SysV/lib/IPC/SharedMem.pm 85dea09a5bb625fc1fdda433909633fda05ea831 IPC::SysV cpan/IPC-SysV/lib/IPC/SysV.pm 9a0d1c3dcd67321ef1322f29102a1bc7eb91c61c IPC::SysV cpan/IPC-SysV/t/ipcsysv.t ee2c95e846ea201afe13c9ec53b09cef62c8ac68 +JSON::PP cpan/JSON-PP/bin/json_pp 22e1b3760ec2b2cfd7ff0d2165f6e88907b94c70 +JSON::PP cpan/JSON-PP/lib/JSON/PP.pm 817730a21b9be855d844e4d26023758960039e99 +Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6 Math::BigRat cpan/Math-BigRat/lib/Math/BigRat.pm 6eabc68e04f67694f6fe523e64eb013fc337ca5b -Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm fe0bc906fb74b69cfd3fb289316ba669d770d465 +Memoize cpan/Memoize/Memoize.pm 902092ff91cdec9c7b4bd06202eb179e1ce26ca2 +Parse::CPAN::Meta cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm 2de9f411463eda2bd5f57163c12edab9a00dc598 +Parse::CPAN::Meta cpan/Parse-CPAN-Meta/t/02_api.t a692c9a7e52b08a14a954d6c405a22c0dab1cd43 +Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm ba3072a6af793b410b02594ed8fe109ac16a1d43 Scalar-List-Utils cpan/Scalar-List-Utils/lib/List/Util.pm 3b501b7332480b34929bc4df5d48581df3307267 Scalar-List-Utils cpan/Scalar-List-Utils/lib/List/Util/XS.pm ebd169113d3df79d31ad5535dbd7a538a8c14fd2 Scalar-List-Utils cpan/Scalar-List-Utils/lib/Scalar/Util.pm def601405bac7a4d6690b8c4207e0f05d65eb4ca @@ -53,5 +108,74 @@ Scalar-List-Utils cpan/Scalar-List-Utils/ListUtil.xs 6128584ecb0ae69bb21b16b22da Scalar-List-Utils cpan/Scalar-List-Utils/t/product.t 99bf424804f055b99ff2a18b7dcf25bb8b6d2463 Socket cpan/Socket/Socket.pm 98e38176d745c38282907f391c077298f5a3d0ba Socket cpan/Socket/Socket.xs edd4fed212785f11c5c2095a75941dad27d586d9 +Sys::Syslog cpan/Sys-Syslog/Syslog.pm 181d7541a6aa2a0a4d15f5beec32d16c17c76caf +Test::Harness cpan/Test-Harness/bin/prove 9b2866928cb1125de2c68f9773b25723e02c54c0 +Test::Harness cpan/Test-Harness/lib/App/Prove.pm a312bbbc97860d5051f06056eb30b985b15ee57c +Test::Harness cpan/Test-Harness/lib/App/Prove/State.pm f4f7d11878eae1fd81d9c3d82097ddfd43b679a1 +Test::Harness cpan/Test-Harness/lib/App/Prove/State/Result.pm 374f5be770e2709c744ddf77927b73ab0f644219 +Test::Harness cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm d3a2ef3916946e0880ffd00356b3ed0feb589029 +Test::Harness cpan/Test-Harness/lib/TAP/Base.pm 38c1bbc33e1e28919dd905ee7f416c2f1cd2014b +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Base.pm 92783e20c15f982a25025c1fd7dc512071aa2671 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Color.pm f4f02b5a4f8f11c0e9fa95d06e9bc8f14a172555 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Console.pm 36fec1e9ca70e359cf1cf110cbdf86040686e635 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm 579df1507c22c5a6c8116943ba7b084dd557a2a3 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm 98f620cadecbe7529b62addf35e16be72b066bcf +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/File.pm 531f646edd5d5768a02728be5c3c1786df17a328 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm cb8b1dd0039381c41b11ba186ed25969fd33b654 +Test::Harness cpan/Test-Harness/lib/TAP/Formatter/Session.pm ce57cb909e8e9b1a8263939da1b4eac6ac5df6e5 +Test::Harness cpan/Test-Harness/lib/TAP/Harness.pm dbbeef74569163d00c8befccf9f2670bafa2dc2f +Test::Harness cpan/Test-Harness/lib/TAP/Harness/Env.pm 7743d40504d23867fe5f6b3967f7c907c530074f +Test::Harness cpan/Test-Harness/lib/TAP/Object.pm 19b27d7e30f6e69c3ffaec939418978ba7b0bc7c +Test::Harness cpan/Test-Harness/lib/TAP/Parser.pm a97c90c41959194ad828511a2b5f6ad068fd2f23 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm bf32f2c834f5242af1db2b5f02419451e87c3b68 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Grammar.pm 2626f555bcf238e4c6a5a0e07eb016f38520d705 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Iterator.pm 6b2729f8883718683b0a2d7cd75d734501360e7b +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm c4ebe427ef24bfbcfcf74459cb74249bf84ec92a +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm 43c08c6ba2a2e599f503cfec086f8ac9b2b8a8f1 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm f28ccf211ebdb527b558a83d6969d96ba13414af +Test::Harness cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm 561ba7be34786134f70b67e73e604de1c934f9bb +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm 7417eede2c1554b94dfbbbce5a90dc6e4d8bbbe6 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result.pm be74c62222a90404d2d6586f77a4f66bafee2879 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm 89a3c49f5b03501813b5a6133ca2ca3fa25f8648 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm e49dde84304dc1a034fd1a5c38f18bed99c1b4d4 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm cf334e85a8e77fe6f830744f70e4c9c1a24c36a5 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm b1587f903cc7937190789b1de8bdf20d6e30ff28 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm dff1422b7cc8ea0c24aedef020fc2266144eb1ea +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm 0959ff5602d340f92be31f01ee2f890028784a8d +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm 8491bba7a07568374cafd8fc40cb08d9b4458e9b +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm 7dc7b96d882dce5e20696305705f4f0e7462d8bc +Test::Harness cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm 1f64e8390990ad99eea3d0fb202487ba973e9a2d +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm 471ea7d1db535364dd86ab106771c652742c0c05 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm 3d7ee9db8277b50fcebcf239898a8023791b8654 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm 1c04e88f45719f92961821d9ed65e80800986893 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/Source.pm c820d95e2a4797893eb717c07b72742e6e0a1542 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm b25f8e7d1a9f2215175618a989df39d78a878df5 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm 5f542b39c98ebe3ee6d906e38b8944abbac5188b +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm 6aa5762461cb06f3db57d13de0fc771d5563c871 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm edc91794e1fbefbbf8e919658fe7a5bbd7c84916 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm 809d6d6779c2aed829a9a087ecb219fbcc7fbfb5 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm d01e1e2a87733ab45f387e34803f821ed184e5cc +Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm 76771092dd2b87a2adb7ff20b7ae77cbae7d0563 +Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm bf1fbfff9720330886651f183959a5db56daeea0 +Test::Harness cpan/Test-Harness/lib/Test/Harness.pm da2d76ba673372da129060c9d0adb8cf0d91f9f7 autodie cpan/autodie/t/mkdir.t 9e70d2282a3cc7d76a78bf8144fccba20fb37dac +bignum cpan/bignum/lib/bigint.pm 56330354995409dab5073ea92d749f8727e265db +bignum cpan/bignum/lib/bignum.pm e999973f78e6be12282c11bb6328246b31a9576b +bignum cpan/bignum/lib/bigrat.pm 7fccc9df30e43dbbae6e5ea91b26c8046545c9a9 +bignum cpan/bignum/lib/Math/BigFloat/Trace.pm a6b4b995e18f4083252e6dc72e9bef69671893dd +bignum cpan/bignum/lib/Math/BigInt/Trace.pm d9596963673760cae3eeeb752c1eeeec50bb2290 +libnet cpan/libnet/lib/Net/Cmd.pm a44a10c939a4c35f923c4638054178c32f1d283a +libnet cpan/libnet/lib/Net/Config.pm 9bd49bf4de0dc438bceee0ef4baf8ba7a6633327 +libnet cpan/libnet/lib/Net/Domain.pm 1bbed50f70fd1ff3e1cdf087b19a9349cddfaced +libnet cpan/libnet/lib/Net/FTP.pm 40dba553c8d44e1530daec2d07a6e50910401f2e +libnet cpan/libnet/lib/Net/FTP/A.pm c570b10730b168990034dcf9cb00e305a100f336 +libnet cpan/libnet/lib/Net/FTP/dataconn.pm ebb554781e74b37dbd57883cff3b668f436dcfe4 +libnet cpan/libnet/lib/Net/FTP/E.pm 1ec473a8601f7c8d1584c833202f90744b471f41 +libnet cpan/libnet/lib/Net/FTP/I.pm b1d50346092915ca177af988917dbae54b1bd000 +libnet cpan/libnet/lib/Net/FTP/L.pm ac1599c775faee0474710e4f75051c8949f13df2 +libnet cpan/libnet/lib/Net/Netrc.pm 009cfc08f8a5bf247257acb64a21e1b6ad8b2c9c +libnet cpan/libnet/lib/Net/NNTP.pm 6325fc05fd9ef81dc8d461a77b2a3f56ad1ae114 +libnet cpan/libnet/lib/Net/POP3.pm 2d8065646df80061dae5a9e3465a36a6557165fd +libnet cpan/libnet/lib/Net/SMTP.pm f3ed7a177b49ee0ba65ac1c414de797cdbbe6886 +libnet cpan/libnet/lib/Net/Time.pm b3df8bbaa3bc253fbf77e8386c59a1b2aae13627 version cpan/version/lib/version.pm ff75e2076be10bd4c05133cd979fda0b38ca8653 diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat index 4f1379b..162de81 100644 --- a/t/porting/known_pod_issues.dat +++ b/t/porting/known_pod_issues.dat @@ -152,6 +152,7 @@ List::Gather listen(2) local::lib lockf(3) +Log::Agent Log::Message Log::Message::Config Log::Message::Handlers diff --git a/t/run/switchDx.t b/t/run/switchDx.t new file mode 100644 index 0000000..acb2995 --- /dev/null +++ b/t/run/switchDx.t @@ -0,0 +1,50 @@ +#!./perl -w +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + require './test.pl'; + skip_all_if_miniperl(); +} + +use Config; + +my $perlio_log = "perlio$$.txt"; + +skip_all "DEBUGGING build required" + unless $::Config{ccflags} =~ /DEBUGGING/ + or $^O eq 'VMS' && $::Config{usedebugging_perl} eq 'Y'; + +plan tests => 8; + +END { + unlink $perlio_log; +} +{ + unlink $perlio_log; + local $ENV{PERLIO_DEBUG} = $perlio_log; + fresh_perl_is("print qq(hello\n)", "hello\n", + { stderr => 1 }, + "No perlio debug file without -Di..."); + ok(!-e $perlio_log, "...no perlio.txt found"); + fresh_perl_is("print qq(hello\n)", "\nEXECUTING...\n\nhello\n", + { stderr => 1, switches => [ "-Di" ] }, + "Perlio debug file with both -Di and PERLIO_DEBUG..."); + ok(-e $perlio_log, "... perlio debugging file found with -Di and PERLIO_DEBUG"); + + unlink $perlio_log; + fresh_perl_like("print qq(hello\n)", qr/define raw/, + { stderr => 1, switches => [ "-TDi" ] }, + "Perlio debug output to stderr with -TDi (with PERLIO_DEBUG)..."); + ok(!-e $perlio_log, "...no perlio debugging file found"); +} + +{ + local $ENV{PERLIO_DEBUG}; + fresh_perl_like("print qq(hello)", qr/define raw/, + { stderr => 1, switches => [ '-Di' ] }, + "-Di defaults to stderr"); + fresh_perl_like("print qq(hello)", qr/define raw/, + { stderr => 1, switches => [ '-TDi' ] }, + "Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG)"); +} + diff --git a/toke.c b/toke.c index c95f6d2..b493401 100644 --- a/toke.c +++ b/toke.c @@ -5075,8 +5075,6 @@ Perl_yylex(pTHX) d = instr(s,"perl -"); if (!d) { d = instr(s,"perl"); - if (d && d[4] == '6') - d = NULL; #if defined(DOSISH) /* avoid getting into infinite loops when shebang * line contains "Perl" rather than "perl" */ diff --git a/utils/c2ph.PL b/utils/c2ph.PL index 466223c..ea87a6f 100644 --- a/utils/c2ph.PL +++ b/utils/c2ph.PL @@ -280,6 +280,7 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less. $RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $'; +BEGIN { pop @INC if $INC[-1] eq '.' } use File::Temp; ###################################################################### diff --git a/utils/h2ph.PL b/utils/h2ph.PL index d082f22..2523c0a 100644 --- a/utils/h2ph.PL +++ b/utils/h2ph.PL @@ -36,6 +36,8 @@ $Config{startperl} print OUT <<'!NO!SUBS!'; +BEGIN { pop @INC if $INC[-1] eq '.' } + use strict; use Config; diff --git a/utils/h2xs.PL b/utils/h2xs.PL index 4cb0943..8fda87b 100644 --- a/utils/h2xs.PL +++ b/utils/h2xs.PL @@ -35,6 +35,8 @@ $Config{startperl} print OUT <<'!NO!SUBS!'; +BEGIN { pop @INC if $INC[-1] eq '.' } + use warnings; =head1 NAME diff --git a/utils/libnetcfg.PL b/utils/libnetcfg.PL index 59a2de8..26d2f99 100644 --- a/utils/libnetcfg.PL +++ b/utils/libnetcfg.PL @@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8. # $Id: Configure,v 1.8 1997/03/04 09:22:32 gbarr Exp $ +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; use IO::File; use Getopt::Std; diff --git a/utils/perlbug.PL b/utils/perlbug.PL index 885785a..ae8c343 100644 --- a/utils/perlbug.PL +++ b/utils/perlbug.PL @@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!'; my @patches = Config::local_patches(); my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches; +BEGIN { pop @INC if $INC[-1] eq '.' } use warnings; use strict; use Config; diff --git a/utils/perldoc.PL b/utils/perldoc.PL index e201de9..cd60bd4 100644 --- a/utils/perldoc.PL +++ b/utils/perldoc.PL @@ -44,7 +44,10 @@ $Config{startperl} # This "$file" file was generated by "$0" require 5; -BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} } +BEGIN { + \$^W = 1 if \$ENV{'PERLDOCDEBUG'}; + pop \@INC if \$INC[-1] eq '.'; +} use Pod::Perldoc; exit( Pod::Perldoc->run() ); diff --git a/utils/perlivp.PL b/utils/perlivp.PL index c2f0a11..e522913 100644 --- a/utils/perlivp.PL +++ b/utils/perlivp.PL @@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n"; print OUT <<'!NO!SUBS!'; +BEGIN { pop @INC if $INC[-1] eq '.' } + sub usage { warn "@_\n" if @_; print << " EOUSAGE"; diff --git a/utils/splain.PL b/utils/splain.PL index 9c70b61..bbcdad6 100644 --- a/utils/splain.PL +++ b/utils/splain.PL @@ -38,6 +38,12 @@ $Config{startperl} if \$running_under_some_shell; !GROK!THIS! +print OUT <<'!NO!SUBS!'; + +BEGIN { pop @INC if $INC[-1] eq '.' } + +!NO!SUBS! + while () { print OUT unless /^package diagnostics/; } diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 620eec9..da4e541 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5240delta.pod +PERLDELTA_CURRENT = [.pod]perl5241delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/GNUmakefile b/win32/GNUmakefile index 05d811e..356ccb3 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -67,7 +67,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.24.0 +#INST_VER := \5.24.1 # # Comment this out if you DON'T want your perl installation to have @@ -1544,7 +1544,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\perl5240delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1640,7 +1640,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 \ - perl5240delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.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 9594c4d..56c3033 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -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.24.0 +#INST_VER = \5.24.1 # # Comment this out if you DON'T want your perl installation to have @@ -1215,7 +1215,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\perl5240delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1313,7 +1313,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 \ - perl5240delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.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.mk b/win32/makefile.mk index 8b9a29d..6cf6231 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -44,7 +44,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.24.0 +#INST_VER *= \5.24.1 # # Comment this out if you DON'T want your perl installation to have @@ -1511,7 +1511,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\perl5240delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5241delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1608,7 +1608,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 \ - perl5240delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5241delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.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 d143a52..8292265 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -44,6 +44,7 @@ POD = perl.pod \ perl5221delta.pod \ perl5222delta.pod \ perl5240delta.pod \ + perl5241delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -182,6 +183,7 @@ MAN = perl.man \ perl5221delta.man \ perl5222delta.man \ perl5240delta.man \ + perl5241delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -320,6 +322,7 @@ HTML = perl.html \ perl5221delta.html \ perl5222delta.html \ perl5240delta.html \ + perl5241delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -458,6 +461,7 @@ TEX = perl.tex \ perl5221delta.tex \ perl5222delta.tex \ perl5240delta.tex \ + perl5241delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ -- 2.7.4