From cb919f322ea266c96977d558ff53556a2c42b2e9 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 28 Jun 2017 10:45:11 +0900 Subject: [PATCH] Imported Upstream version 5.23.8 Change-Id: Iba0a3f479c15ac6b622ee72397bc218745d62043 Signed-off-by: DongHun Kwak --- AUTHORS | 2 + Configure | 67 + Cross/config.sh-arm-linux | 47 +- Cross/config.sh-arm-linux-n770 | 40 +- INSTALL | 34 +- MANIFEST | 65 +- META.json | 3 +- META.yml | 3 +- Makefile.SH | 8 +- NetWare/Makefile | 4 +- NetWare/config.wc | 7 + NetWare/config_H.wc | 10 +- Porting/Maintainers.pl | 58 +- Porting/checkAUTHORS.pl | 1 + Porting/cmpVERSION.pl | 11 +- Porting/config.sh | 49 +- Porting/config_H | 18 +- Porting/epigraphs.pod | 19 + Porting/perldelta_template.pod | 2 +- Porting/release_managers_guide.pod | 8 +- Porting/release_schedule.pod | 18 +- Porting/todo.pod | 4 +- README.android | 65 +- README.cygwin | 3 +- README.haiku | 4 +- README.macosx | 8 +- README.os2 | 2 +- README.vms | 4 +- README.win32 | 16 +- autodoc.pl | 2 +- charclass_invlists.h | 144 +- config_h.SH | 42 + configure.com | 17 +- cop.h | 447 ++-- cpan/.gitignore | 2 - cpan/Encode/Encode.pm | 4 +- cpan/Encode/Encode.xs | 8 +- cpan/Encode/Makefile.PL | 2 +- cpan/Encode/Unicode/Unicode.pm | 6 +- cpan/Encode/Unicode/Unicode.xs | 4 +- cpan/Encode/lib/Encode/Alias.pm | 4 +- cpan/Encode/lib/Encode/MIME/Header.pm | 25 +- cpan/Encode/t/encoding-locale.t | 25 + cpan/Encode/t/mime-header.t | 41 +- 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 | 21 +- 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 | 19 +- 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 | 13 +- 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 +- .../lib/ExtUtils/MakeMaker/FAQ.pod | 2 +- .../lib/ExtUtils/MakeMaker/Tutorial.pod | 2 +- .../lib/ExtUtils/MakeMaker/version.pm | 2 +- .../lib/ExtUtils/MakeMaker/version/regex.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/ExtUtils-MakeMaker/t/cd.t | 2 + cpan/ExtUtils-MakeMaker/t/echo.t | 4 + cpan/IPC-SysV/SysV.xs | 12 +- cpan/IPC-SysV/lib/IPC/Msg.pm | 6 +- cpan/IPC-SysV/lib/IPC/Semaphore.pm | 10 +- cpan/IPC-SysV/lib/IPC/SharedMem.pm | 6 +- cpan/IPC-SysV/lib/IPC/SysV.pm | 10 +- cpan/IPC-SysV/t/ipcsysv.t | 4 +- cpan/podlators/.gitignore | 26 +- cpan/podlators/Makefile.PL | 51 +- cpan/podlators/lib/Pod/Man.pm | 22 +- cpan/podlators/lib/Pod/ParseLink.pm | 2 +- cpan/podlators/lib/Pod/Text.pm | 2 +- cpan/podlators/lib/Pod/Text/Color.pm | 2 +- cpan/podlators/lib/Pod/Text/Overstrike.pm | 2 +- cpan/podlators/lib/Pod/Text/Termcap.pm | 2 +- cpan/podlators/{bin/pod2man => scripts/pod2man.PL} | 61 +- .../{bin/pod2text => scripts/pod2text.PL} | 60 +- cpan/podlators/t/general/filehandle.t | 3 +- cpan/podlators/t/general/pod-parser.t | 2 +- cpan/podlators/t/lib/Test/Podlators.pm | 12 +- cpan/podlators/t/lib/Test/RRA.pm | 77 +- cpan/podlators/t/lib/Test/RRA/Config.pm | 133 +- cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm | 295 +++ cpan/podlators/t/man/devise-date.t | 5 + cpan/podlators/t/man/devise-title.t | 5 + cpan/podlators/t/man/no-encode.t | 69 + cpan/podlators/t/style/module-version.t | 246 +- dist/.gitignore | 2 + dist/ExtUtils-CBuilder/Changes | 8 +- dist/ExtUtils-CBuilder/Makefile.PL | 2 +- dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm | 2 +- .../lib/ExtUtils/CBuilder/Base.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Unix.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/VMS.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Windows.pm | 4 +- .../lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/aix.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/android.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/cygwin.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/darwin.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/dec_osf.pm | 2 +- .../lib/ExtUtils/CBuilder/Platform/os2.pm | 2 +- dist/Module-CoreList/Changes | 2 +- dist/Module-CoreList/lib/Module/CoreList.pm | 106 +- .../lib/Module/CoreList/TieHashDelta.pm | 2 +- dist/Module-CoreList/lib/Module/CoreList/Utils.pm | 9 +- dist/PathTools/Cwd.pm | 2 +- dist/PathTools/lib/File/Spec.pm | 2 +- dist/PathTools/lib/File/Spec/AmigaOS.pm | 2 +- dist/PathTools/lib/File/Spec/Cygwin.pm | 2 +- 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 | 10 +- dist/PathTools/lib/File/Spec/Win32.pm | 2 +- dist/PathTools/t/Spec.t | 6 +- dist/Storable/Storable.pm | 2 +- dist/Storable/Storable.xs | 1 + dist/Time-HiRes/Changes | 977 +++++++ {cpan => dist}/Time-HiRes/HiRes.pm | 22 +- {cpan => dist}/Time-HiRes/HiRes.xs | 135 + {cpan => dist}/Time-HiRes/Makefile.PL | 71 +- {cpan => dist}/Time-HiRes/fallback/const-c.inc | 0 {cpan => dist}/Time-HiRes/fallback/const-xs.inc | 0 {cpan => dist}/Time-HiRes/hints/aix.pl | 0 {cpan => dist}/Time-HiRes/hints/dec_osf.pl | 0 {cpan => dist}/Time-HiRes/hints/dynixptx.pl | 0 {cpan => dist}/Time-HiRes/hints/irix.pl | 0 {cpan => dist}/Time-HiRes/hints/linux.pl | 0 {cpan => dist}/Time-HiRes/hints/sco.pl | 0 {cpan => dist}/Time-HiRes/hints/solaris.pl | 0 {cpan => dist}/Time-HiRes/hints/svr4.pl | 0 {cpan => dist}/Time-HiRes/t/Watchdog.pm | 0 {cpan => dist}/Time-HiRes/t/alarm.t | 0 {cpan => dist}/Time-HiRes/t/clock.t | 0 {cpan => dist}/Time-HiRes/t/gettimeofday.t | 0 {cpan => dist}/Time-HiRes/t/itimer.t | 0 {cpan => dist}/Time-HiRes/t/nanosleep.t | 0 {cpan => dist}/Time-HiRes/t/sleep.t | 0 {cpan => dist}/Time-HiRes/t/stat.t | 2 - {cpan => dist}/Time-HiRes/t/time.t | 0 {cpan => dist}/Time-HiRes/t/tv_interval.t | 0 {cpan => dist}/Time-HiRes/t/ualarm.t | 0 {cpan => dist}/Time-HiRes/t/usleep.t | 0 {cpan => dist}/Time-HiRes/typemap | 0 doio.c | 12 +- doop.c | 4 +- dquote.c | 134 +- dquote_inline.h | 135 +- dump.c | 7 +- embed.fnc | 109 +- embed.h | 54 +- embedvar.h | 1 + ext/B/t/sv_stash.t | 21 + ext/DynaLoader/DynaLoader_pm.PL | 10 +- ext/ODBM_File/ODBM_File.pm | 2 +- ext/ODBM_File/ODBM_File.xs | 41 +- ext/POSIX/Makefile.PL | 12 + ext/POSIX/POSIX.xs | 178 +- ext/POSIX/lib/POSIX.pm | 15 +- ext/POSIX/lib/POSIX.pod | 200 +- ext/POSIX/t/export.t | 10 + ext/POSIX/t/is.t | 140 - ext/POSIX/t/posix.t | 36 +- ext/POSIX/t/sigaction.t | 35 +- ext/POSIX/typemap | 15 + ext/PerlIO-encoding/encoding.pm | 2 +- ext/PerlIO-encoding/encoding.xs | 4 +- ext/XS-APItest/APItest.pm | 2 +- ext/XS-APItest/APItest.xs | 53 +- ext/XS-APItest/t/call.t | 8 +- ext/XS-APItest/t/clone-with-stack.t | 51 +- ext/XS-APItest/t/multicall.t | 8 +- ext/XS-APItest/t/win32.t | 9 + gv.c | 3 +- handy.h | 46 +- hints/catamount.sh | 4 +- hv.h | 12 +- inline.h | 355 +++ installperl | 9 + intrpvar.h | 4 +- lib/B/Op_private.pm | 6 +- lib/ExtUtils/t/Embed.t | 4 +- lib/unicore/mktables | 13 +- locale.c | 9 +- make_ext.pl | 45 +- makedepend.SH | 4 +- mg.c | 30 +- mkppport.lst | 2 +- mro_core.c | 14 +- numeric.c | 8 +- op.c | 36 +- op.h | 2 +- opcode.h | 6 +- os2/os2.c | 5 +- pad.h | 8 +- patchlevel.h | 4 +- perl.c | 40 +- perl.h | 12 +- perlio.c | 2 +- perly.act | 589 +++-- perly.c | 10 + perly.h | 6 +- perly.tab | 1474 ++++++----- perly.y | 12 +- plan9/config.plan9 | 10 +- plan9/config_sh.sample | 45 +- pod/.gitignore | 2 +- pod/perl.pod | 1 + pod/perl5237delta.pod | 438 ++++ pod/perlcall.pod | 4 +- pod/perldelta.pod | 411 +-- pod/perldiag.pod | 93 +- pod/perlfunc.pod | 11 +- pod/perlguts.pod | 301 +++ pod/perlhacktips.pod | 2 +- pod/perlhist.pod | 1 + pod/perlipc.pod | 2 +- pod/perlmodlib.PL | 12 +- pod/perlop.pod | 18 +- pod/perlrecharclass.pod | 3 + pod/perlretut.pod | 2 +- pod/perlvms.pod | 8 +- pp.c | 53 +- pp.h | 2 +- pp_ctl.c | 1414 +++++----- pp_hot.c | 779 ++++-- pp_pack.c | 2 +- pp_sort.c | 66 +- pp_sys.c | 43 +- proto.h | 156 +- regcharclass.h | 2 +- regcomp.c | 2770 ++++++++++++++------ regcomp.h | 25 +- regen/mk_invlists.pl | 264 +- regen/op_private | 5 +- regen_perly.pl | 53 +- regexec.c | 513 ++-- scope.c | 63 +- scope.h | 24 +- sv.c | 255 +- sv.h | 34 + symbian/config.sh | 7 + t/io/argv.t | 40 +- t/io/fs.t | 4 +- t/lib/warnings/op | 11 + t/lib/warnings/regcomp | 23 +- t/mro/basic.t | 35 +- t/op/args.t | 4 +- t/op/caller.t | 7 +- t/op/do.t | 25 + t/op/eval.t | 6 +- t/op/for.t | 76 +- t/op/gmagic.t | 7 + t/op/goto.t | 42 +- t/op/grep.t | 12 +- t/op/heredoc.t | 10 +- t/op/hexfp.t | 22 +- t/op/method.t | 32 +- t/op/sprintf2.t | 49 +- t/op/sub.t | 81 +- t/op/sub_lval.t | 29 +- t/op/svleak.t | 22 +- t/op/switch.t | 44 +- t/perf/benchmarks | 247 +- t/porting/customized.dat | 40 +- t/porting/diag.t | 3 + t/porting/dual-life.t | 14 +- t/porting/known_pod_issues.dat | 4 +- t/porting/libperl.t | 21 +- t/porting/podcheck.t | 2 + t/re/re_tests | 8 + t/re/reg_mesg.t | 82 +- t/re/regex_sets.t | 11 + t/run/fresh_perl.t | 7 +- t/test.pl | 9 +- toke.c | 138 +- uconfig.h | 46 +- uconfig.sh | 7 + uconfig64.sh | 7 + universal.c | 2 +- utf8.c | 4 +- utf8.h | 45 +- util.c | 7 +- utils/Makefile.PL | 6 +- utils/pod2man.PL | 53 - utils/pod2text.PL | 53 - vms/descrip_mms.template | 2 +- vms/vms.c | 18 +- win32/GNUmakefile | 1063 +++++--- win32/Makefile | 11 +- win32/config.ce | 7 + win32/config.gc | 7 + win32/config.vc | 7 + win32/config_h.PL | 14 +- win32/makefile.mk | 96 +- win32/pod.mak | 4 + win32/win32.c | 8 + 317 files changed, 12542 insertions(+), 6066 deletions(-) create mode 100644 cpan/Encode/t/encoding-locale.t rename cpan/podlators/{bin/pod2man => scripts/pod2man.PL} (87%) rename cpan/podlators/{bin/pod2text => scripts/pod2text.PL} (84%) create mode 100644 cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm create mode 100644 cpan/podlators/t/man/no-encode.t create mode 100644 dist/Time-HiRes/Changes rename {cpan => dist}/Time-HiRes/HiRes.pm (96%) rename {cpan => dist}/Time-HiRes/HiRes.xs (90%) rename {cpan => dist}/Time-HiRes/Makefile.PL (90%) rename {cpan => dist}/Time-HiRes/fallback/const-c.inc (100%) rename {cpan => dist}/Time-HiRes/fallback/const-xs.inc (100%) rename {cpan => dist}/Time-HiRes/hints/aix.pl (100%) rename {cpan => dist}/Time-HiRes/hints/dec_osf.pl (100%) rename {cpan => dist}/Time-HiRes/hints/dynixptx.pl (100%) rename {cpan => dist}/Time-HiRes/hints/irix.pl (100%) rename {cpan => dist}/Time-HiRes/hints/linux.pl (100%) rename {cpan => dist}/Time-HiRes/hints/sco.pl (100%) rename {cpan => dist}/Time-HiRes/hints/solaris.pl (100%) rename {cpan => dist}/Time-HiRes/hints/svr4.pl (100%) rename {cpan => dist}/Time-HiRes/t/Watchdog.pm (100%) rename {cpan => dist}/Time-HiRes/t/alarm.t (100%) rename {cpan => dist}/Time-HiRes/t/clock.t (100%) rename {cpan => dist}/Time-HiRes/t/gettimeofday.t (100%) rename {cpan => dist}/Time-HiRes/t/itimer.t (100%) rename {cpan => dist}/Time-HiRes/t/nanosleep.t (100%) rename {cpan => dist}/Time-HiRes/t/sleep.t (100%) rename {cpan => dist}/Time-HiRes/t/stat.t (97%) rename {cpan => dist}/Time-HiRes/t/time.t (100%) rename {cpan => dist}/Time-HiRes/t/tv_interval.t (100%) rename {cpan => dist}/Time-HiRes/t/ualarm.t (100%) rename {cpan => dist}/Time-HiRes/t/usleep.t (100%) rename {cpan => dist}/Time-HiRes/typemap (100%) create mode 100644 ext/B/t/sv_stash.t delete mode 100644 ext/POSIX/t/is.t create mode 100644 pod/perl5237delta.pod delete mode 100644 utils/pod2man.PL delete mode 100644 utils/pod2text.PL diff --git a/AUTHORS b/AUTHORS index 5391f63..3cc2ef1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -891,6 +891,7 @@ Nick Duffek Nick Gianniotis Nick Ing-Simmons Nick Johnston +Nick Logan Nick Williams Nicolas Kaiser Nicolas R. @@ -989,6 +990,7 @@ Pino Toscano Piotr Fusik Piotr Klaban Piotr Roszatycki +Pip Cet Pradeep Hodigere Prymmer/Kahn Quentin Fennessy diff --git a/Configure b/Configure index d5a7de3..3d65fd2 100755 --- a/Configure +++ b/Configure @@ -785,6 +785,13 @@ d_shmctl='' d_shmdt='' d_shmget='' d_sigaction='' +d_siginfo_si_errno='' +d_siginfo_si_pid='' +d_siginfo_si_uid='' +d_siginfo_si_addr='' +d_siginfo_si_status='' +d_siginfo_si_band='' +d_siginfo_si_value='' d_signbit='' d_sigprocmask='' d_sigsetjmp='' @@ -10758,6 +10765,25 @@ set $varname; eval $setvar; $rm_try' +: Define hasfield_t macro for Configure internal use +hasfield_t='varname=$1; struct=$2; type=$3; field=$4; shift; shift; shift; shift; +while $test $# -ge 2; do + case "$1" in + $define) echo "#include <$2>";; + esac ; + shift 2; +done > try.c; +echo "int main () { $struct foo; $type bar = foo.$field; }" >> try.c; +set try; +if eval $compile; then + val="$define"; +else + val="$undef"; +fi; +set $varname; +eval $setvar; +$rm_try' + : see if we should include time.h, sys/time.h, or both echo " " if test "X$timeincl" = X; then @@ -22697,6 +22723,40 @@ case "$uidsign" in ;; esac +: see what siginfo fields we have +case "$d_sigaction" in +"$define") + echo "Checking if your siginfo_t has si_errno field...">&4 + set d_siginfo_si_errno siginfo_t int si_errno $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_pid field...">&4 + set d_siginfo_si_pid siginfo_t $pidtype si_pid $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_uid field...">&4 + set d_siginfo_si_uid siginfo_t $uidtype si_uid $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_addr field...">&4 + set d_siginfo_si_addr siginfo_t "void *" si_addr $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_status field...">&4 + set d_siginfo_si_status siginfo_t int si_status $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_band field...">&4 + set d_siginfo_si_band siginfo_t long si_band $d_sigaction signal.h + eval $hasfield_t; + + echo "Checking if your siginfo_t has si_value field...">&4 + set d_siginfo_si_value siginfo_t "union sigval" si_value $d_sigaction signal.h + eval $hasfield_t; + + ;; +esac + : Determine if we can use sysctl with KERN_PROC_PATHNAME to find executing program echo " " echo "Determining whether we can use sysctl with KERN_PROC_PATHNAME to find executing program..." >&4 @@ -24523,6 +24583,13 @@ d_shmctl='$d_shmctl' d_shmdt='$d_shmdt' d_shmget='$d_shmget' d_sigaction='$d_sigaction' +d_siginfo_si_errno='$d_siginfo_si_errno' +d_siginfo_si_pid='$d_siginfo_si_pid' +d_siginfo_si_uid='$d_siginfo_si_uid' +d_siginfo_si_addr='$d_siginfo_si_addr' +d_siginfo_si_status='$d_siginfo_si_status' +d_siginfo_si_band='$d_siginfo_si_band' +d_siginfo_si_value='$d_siginfo_si_value' d_signbit='$d_signbit' d_sigprocmask='$d_sigprocmask' d_sigsetjmp='$d_sigsetjmp' diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux index 045ba71..776d705 100644 --- a/Cross/config.sh-arm-linux +++ b/Cross/config.sh-arm-linux @@ -32,12 +32,12 @@ alignbytes='4' ansi2knr='' aphostname='/bin/hostname' api_revision='5' -api_subversion='7' +api_subversion='8' api_version='23' -api_versionstring='5.23.7' +api_versionstring='5.23.8' ar='ar' -archlib='/usr/lib/perl5/5.23.7/armv4l-linux' -archlibexp='/usr/lib/perl5/5.23.7/armv4l-linux' +archlib='/usr/lib/perl5/5.23.8/armv4l-linux' +archlibexp='/usr/lib/perl5/5.23.8/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.23.7/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.23.8/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' @@ -500,6 +500,13 @@ d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' +d_siginfo_si_addr='undef' +d_siginfo_si_band='undef' +d_siginfo_si_errno='undef' +d_siginfo_si_pid='undef' +d_siginfo_si_status='undef' +d_siginfo_si_uid='undef' +d_siginfo_si_value='undef' d_signbit='define' d_sigprocmask='define' d_sigsetjmp='define' @@ -797,7 +804,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.23.7/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.23.8/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -805,13 +812,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.23.7' +installprivlib='./install_me_here/usr/lib/perl5/5.23.8' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.7/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.7' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.8' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -945,8 +952,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.23.7' -privlibexp='/usr/lib/perl5/5.23.7' +privlib='/usr/lib/perl5/5.23.8' +privlibexp='/usr/lib/perl5/5.23.8' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1011,17 +1018,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.23.7/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.23.7/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.23.7' +sitelib='/usr/lib/perl5/site_perl/5.23.8' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.23.7' +sitelibexp='/usr/lib/perl5/site_perl/5.23.8' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1060,7 +1067,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='7' +subversion='8' sysman='/usr/share/man/man1' tail='' tar='' @@ -1152,8 +1159,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.23.7' -version_patchlevel_string='version 23 subversion 7' +version='5.23.8' +version_patchlevel_string='version 23 subversion 8' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1167,9 +1174,9 @@ config_args='' config_argc=0 PERL_REVISION=5 PERL_VERSION=23 -PERL_SUBVERSION=7 +PERL_SUBVERSION=8 PERL_API_REVISION=5 PERL_API_VERSION=23 -PERL_API_SUBVERSION=7 +PERL_API_SUBVERSION=8 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770 index 007231a..01c3935 100644 --- a/Cross/config.sh-arm-linux-n770 +++ b/Cross/config.sh-arm-linux-n770 @@ -32,12 +32,12 @@ alignbytes='4' ansi2knr='' aphostname='/bin/hostname' api_revision='5' -api_subversion='7' +api_subversion='8' api_version='23' -api_versionstring='5.23.7' +api_versionstring='5.23.8' ar='ar' -archlib='/usr/lib/perl5/5.23.7/armv4l-linux' -archlibexp='/usr/lib/perl5/5.23.7/armv4l-linux' +archlib='/usr/lib/perl5/5.23.8/armv4l-linux' +archlibexp='/usr/lib/perl5/5.23.8/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.23.7/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.23.8/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.23.7/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.23.8/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.23.7' +installprivlib='./install_me_here/usr/lib/perl5/5.23.8' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.7/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.7' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.8' 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.23.7' -privlibexp='/usr/lib/perl5/5.23.7' +privlib='/usr/lib/perl5/5.23.8' +privlibexp='/usr/lib/perl5/5.23.8' 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.23.7/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.23.7/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.23.8/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.23.7' +sitelib='/usr/lib/perl5/site_perl/5.23.8' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.23.7' +sitelibexp='/usr/lib/perl5/site_perl/5.23.8' 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='7' +subversion='8' sysman='/usr/share/man/man1' tail='' tar='' @@ -1035,8 +1035,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.23.7' -version_patchlevel_string='version 23 subversion 7' +version='5.23.8' +version_patchlevel_string='version 23 subversion 8' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1050,9 +1050,9 @@ config_args='' config_argc=0 PERL_REVISION=5 PERL_VERSION=23 -PERL_SUBVERSION=7 +PERL_SUBVERSION=8 PERL_API_REVISION=5 PERL_API_VERSION=23 -PERL_API_SUBVERSION=7 +PERL_API_SUBVERSION=8 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/INSTALL b/INSTALL index 6293636..85e6545 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.23.7. +By default, Configure will use the following directories for 5.23.8. $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 @@ -2073,8 +2073,8 @@ If your system is quite busy and doesn't respond quickly enough, these tests might fail. If possible, try running the tests again with the system under a lighter load. These timing-sensitive and load-sensitive tests include F, -F, F, -F, F, +F, F, +F, F, F, F, F, F, and F. @@ -2442,7 +2442,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html =head1 Coexistence with earlier versions of perl 5 -Perl 5.23.7 is not binary compatible with earlier versions of Perl. +Perl 5.23.8 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 @@ -2517,9 +2517,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.23.7 + sh Configure -Dprefix=/opt/perl5.23.8 -and adding /opt/perl5.23.7/bin to the shell PATH variable. Such users +and adding /opt/perl5.23.8/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. @@ -2532,13 +2532,13 @@ seriously consider using a separate directory, since development subversions may not have all the compatibility wrinkles ironed out yet. -=head2 Upgrading from 5.23.6 or earlier +=head2 Upgrading from 5.23.7 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.23.7. If you find you do need to rebuild an extension with -5.23.7, you may safely do so without disturbing the older +used with 5.23.8. If you find you do need to rebuild an extension with +5.23.8, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl 5"> above.) @@ -2571,15 +2571,15 @@ Firstly, the bare minimum to run this script print("$f\n"); } -in Linux with perl-5.23.7 is as follows (under $Config{prefix}): +in Linux with perl-5.23.8 is as follows (under $Config{prefix}): ./bin/perl - ./lib/perl5/5.23.7/strict.pm - ./lib/perl5/5.23.7/warnings.pm - ./lib/perl5/5.23.7/i686-linux/File/Glob.pm - ./lib/perl5/5.23.7/feature.pm - ./lib/perl5/5.23.7/XSLoader.pm - ./lib/perl5/5.23.7/i686-linux/auto/File/Glob/Glob.so + ./lib/perl5/5.23.8/strict.pm + ./lib/perl5/5.23.8/warnings.pm + ./lib/perl5/5.23.8/i686-linux/File/Glob.pm + ./lib/perl5/5.23.8/feature.pm + ./lib/perl5/5.23.8/XSLoader.pm + ./lib/perl5/5.23.8/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 633a8bd..1c3f55f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -889,6 +889,7 @@ cpan/Encode/t/enc_module.enc test data for t/enc_module.t cpan/Encode/t/enc_module.t test script cpan/Encode/t/Encoder.t test script cpan/Encode/t/Encode.t test script +cpan/Encode/t/encoding-locale.t test script cpan/Encode/t/encoding.t test script cpan/Encode/t/enc_utf8.t test script cpan/Encode/t/fallback.t test script @@ -1860,8 +1861,6 @@ cpan/Pod-Escapes/lib/Pod/Escapes.pm Pod::Escapes cpan/Pod-Escapes/t/01_about_verbose.t test Pod::Escapes cpan/Pod-Escapes/t/10_main.t test Pod::Escapes cpan/Pod-Escapes/t/15_name2charnum.t test Pod::Escapes -cpan/podlators/bin/pod2man Translator to turn pod into manpage -cpan/podlators/bin/pod2text Translator to turn pod into text cpan/podlators/lib/Pod/Man.pm Convert POD data to *roff cpan/podlators/lib/Pod/ParseLink.pm Perl an L<> formatting code in POD text cpan/podlators/lib/Pod/Text/Color.pm Convert POD data to color ASCII text @@ -1869,6 +1868,8 @@ cpan/podlators/lib/Pod/Text/Overstrike.pm Convert POD data to formatted overstri cpan/podlators/lib/Pod/Text.pm Pod-Parser - convert POD data to formatted ASCII text cpan/podlators/lib/Pod/Text/Termcap.pm Convert POD data to ASCII text with format escapes cpan/podlators/Makefile.PL podlators Makefile.PL +cpan/podlators/scripts/pod2man.PL Translator to turn pod into manpage +cpan/podlators/scripts/pod2text.PL Translator to turn pod into text cpan/podlators/t/data/basic.cap podlators test podlators test cpan/podlators/t/data/basic.clr podlators test cpan/podlators/t/data/basic.man podlators test @@ -1890,12 +1891,14 @@ cpan/podlators/t/general/filehandle.t podlators test cpan/podlators/t/general/pod-parser.t podlators test cpan/podlators/t/lib/Test/Podlators.pm podlators test cpan/podlators/t/lib/Test/RRA/Config.pm podlators test +cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm podlators test cpan/podlators/t/lib/Test/RRA.pm podlators test cpan/podlators/t/man/basic.t podlators test cpan/podlators/t/man/devise-date.t podlators test cpan/podlators/t/man/devise-title.t podlators test cpan/podlators/t/man/empty.t podlators test cpan/podlators/t/man/heading.t podlators test +cpan/podlators/t/man/no-encode.t podlators test cpan/podlators/t/man/options.t podlators test cpan/podlators/t/man/utf8-io.t podlators test cpan/podlators/t/parselink/basic.t podlators test @@ -2652,32 +2655,6 @@ cpan/Tie-RefHash/t/rebless.t Test for Tie::RefHash with rebless cpan/Tie-RefHash/t/refhash.t Test for Tie::RefHash and Tie::RefHash::Nestable cpan/Tie-RefHash/t/storable.t Test for Tie::RefHash with storable cpan/Tie-RefHash/t/threaded.t Test for Tie::RefHash with threads -cpan/Time-HiRes/fallback/const-c.inc Time::HiRes extension -cpan/Time-HiRes/fallback/const-xs.inc Time::HiRes extension -cpan/Time-HiRes/hints/aix.pl Hint for Time::HiRes for named architecture -cpan/Time-HiRes/hints/dec_osf.pl Hint for Time::HiRes for named architecture -cpan/Time-HiRes/hints/dynixptx.pl Hint for Time::HiRes for named architecture -cpan/Time-HiRes/hints/irix.pl Hint for Time::HiRes for named architecture -cpan/Time-HiRes/hints/linux.pl Hints for Time::HiRes for named architecture -cpan/Time-HiRes/hints/sco.pl Hints for Time::HiRes for named architecture -cpan/Time-HiRes/hints/solaris.pl Hints for Time::HiRes for named architecture -cpan/Time-HiRes/hints/svr4.pl Hints for Time::HiRes for named architecture -cpan/Time-HiRes/HiRes.pm Time::HiRes extension -cpan/Time-HiRes/HiRes.xs Time::HiRes extension -cpan/Time-HiRes/Makefile.PL Time::HiRes extension -cpan/Time-HiRes/t/alarm.t Test for Time::HiRes -cpan/Time-HiRes/t/clock.t Test for Time::HiRes -cpan/Time-HiRes/t/gettimeofday.t Test for Time::HiRes -cpan/Time-HiRes/t/itimer.t Test for Time::HiRes -cpan/Time-HiRes/t/nanosleep.t Test for Time::HiRes -cpan/Time-HiRes/t/sleep.t Test for Time::HiRes -cpan/Time-HiRes/t/stat.t Test for Time::HiRes -cpan/Time-HiRes/t/time.t Test for Time::HiRes -cpan/Time-HiRes/t/tv_interval.t Test for Time::HiRes -cpan/Time-HiRes/t/ualarm.t Test for Time::HiRes -cpan/Time-HiRes/t/usleep.t Test for Time::HiRes -cpan/Time-HiRes/t/Watchdog.pm Test for Time::HiRes -cpan/Time-HiRes/typemap Time::HiRes extension cpan/Time-Local/lib/Time/Local.pm Reverse translation of localtime, gmtime cpan/Time-Local/t/Local.t See if Time::Local works cpan/Time-Piece/Piece.pm Time::Piece extension @@ -3550,6 +3527,33 @@ dist/Tie-File/t/33_defer_vs.t Like 30_defer.t, but with varying-length records dist/Tie-File/t/40_abs_cache.t Unit tests for Tie::File::Cache dist/Tie-File/t/41_heap.t Unit tests for Tie::File::Heap dist/Tie-File/t/42_offset.t Unit tests for the offset method +dist/Time-HiRes/Changes Time::HiRes extension +dist/Time-HiRes/fallback/const-c.inc Time::HiRes extension +dist/Time-HiRes/fallback/const-xs.inc Time::HiRes extension +dist/Time-HiRes/hints/aix.pl Hint for Time::HiRes for named architecture +dist/Time-HiRes/hints/dec_osf.pl Hint for Time::HiRes for named architecture +dist/Time-HiRes/hints/dynixptx.pl Hint for Time::HiRes for named architecture +dist/Time-HiRes/hints/irix.pl Hint for Time::HiRes for named architecture +dist/Time-HiRes/hints/linux.pl Hints for Time::HiRes for named architecture +dist/Time-HiRes/hints/sco.pl Hints for Time::HiRes for named architecture +dist/Time-HiRes/hints/solaris.pl Hints for Time::HiRes for named architecture +dist/Time-HiRes/hints/svr4.pl Hints for Time::HiRes for named architecture +dist/Time-HiRes/HiRes.pm Time::HiRes extension +dist/Time-HiRes/HiRes.xs Time::HiRes extension +dist/Time-HiRes/Makefile.PL Time::HiRes extension +dist/Time-HiRes/t/alarm.t Test for Time::HiRes +dist/Time-HiRes/t/clock.t Test for Time::HiRes +dist/Time-HiRes/t/gettimeofday.t Test for Time::HiRes +dist/Time-HiRes/t/itimer.t Test for Time::HiRes +dist/Time-HiRes/t/nanosleep.t Test for Time::HiRes +dist/Time-HiRes/t/sleep.t Test for Time::HiRes +dist/Time-HiRes/t/stat.t Test for Time::HiRes +dist/Time-HiRes/t/time.t Test for Time::HiRes +dist/Time-HiRes/t/tv_interval.t Test for Time::HiRes +dist/Time-HiRes/t/ualarm.t Test for Time::HiRes +dist/Time-HiRes/t/usleep.t Test for Time::HiRes +dist/Time-HiRes/t/Watchdog.pm Test for Time::HiRes +dist/Time-HiRes/typemap Time::HiRes extension dist/XSLoader/Makefile.PL Dynamic Loader makefile writer dist/XSLoader/t/XSLoader.t See if XSLoader works dist/XSLoader/XSLoader_pm.PL Simple XS Loader perl module @@ -3630,6 +3634,7 @@ ext/B/t/optree_varinit.t my,our,local var init optimization ext/B/t/o.t See if O works ext/B/t/pragma.t See if user pragmas work. ext/B/t/showlex.t See if B::ShowLex works +ext/B/t/sv_stash.t See if SvSTASH() works ext/B/t/terse.t See if B::Terse works ext/B/t/walkoptree.t See if B::walkoptree (and friends) work ext/B/t/xref.t See if B::Xref works @@ -3846,7 +3851,6 @@ ext/POSIX/Makefile.PL POSIX extension makefile writer ext/POSIX/POSIX.xs POSIX extension external subroutines ext/POSIX/t/export.t Test @EXPORT and @EXPORT_OK ext/POSIX/t/iscrash See if POSIX isxxx() crashes with threads on Win32 -ext/POSIX/t/is.t See if POSIX isxxx() work ext/POSIX/t/math.t Basic math tests for POSIX ext/POSIX/t/posix.t See if POSIX works ext/POSIX/t/sigaction.t See if POSIX::sigaction works @@ -4645,6 +4649,7 @@ pod/perl5233delta.pod Perl changes in version 5.23.3 pod/perl5234delta.pod Perl changes in version 5.23.4 pod/perl5235delta.pod Perl changes in version 5.23.5 pod/perl5236delta.pod Perl changes in version 5.23.6 +pod/perl5237delta.pod Perl changes in version 5.23.7 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 @@ -5626,8 +5631,6 @@ utils/perlivp.PL installation verification procedure utils/piconv.PL iconv(1), reinvented in perl utils/pl2pm.PL A pl to pm translator utils/pod2html.PL Translator to turn pod into HTML -utils/pod2man.PL Convert POD data to formatted *roff input -utils/pod2text.PL Convert POD data to formatted ASCII text utils/prove.PL The prove harness utility utils/ptardiff.PL The ptardiff utility utils/ptargrep.PL The ptargrep utility diff --git a/META.json b/META.json index 8c0caa5..f5110fb 100644 --- a/META.json +++ b/META.json @@ -50,6 +50,7 @@ "dist/threads", "dist/threads-shared", "dist/Tie-File", + "dist/Time-HiRes", "dist/XSLoader", "lib/perl5db", "win32" @@ -123,6 +124,6 @@ "url" : "http://perl5.git.perl.org/" } }, - "version" : "5.023007", + "version" : "5.023008", "x_serialization_backend" : "JSON::PP version 2.27300" } diff --git a/META.yml b/META.yml index 1b509f1..c186546 100644 --- a/META.yml +++ b/META.yml @@ -48,6 +48,7 @@ no_index: - dist/threads - dist/threads-shared - dist/Tie-File + - dist/Time-HiRes - dist/XSLoader - lib/perl5db - win32 @@ -110,5 +111,5 @@ resources: homepage: http://www.perl.org/ license: http://dev.perl.org/licenses/ repository: http://perl5.git.perl.org/ -version: '5.023007' +version: '5.023008' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/Makefile.SH b/Makefile.SH index ed95386..2278f9f 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -504,7 +504,7 @@ mini_obj = $(minindt_obj) $(MINIDTRACE_O) ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) obj = $(ndt_obj) $(DTRACE_O) -perltoc_pod_prereqs = extra.pods pod/perl5237delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5238delta.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 @@ -1064,9 +1064,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/perl5237delta.pod: pod/perldelta.pod - $(RMS) pod/perl5237delta.pod - $(LNS) perldelta.pod pod/perl5237delta.pod +pod/perl5238delta.pod: pod/perldelta.pod + $(RMS) pod/perl5238delta.pod + $(LNS) perldelta.pod pod/perl5238delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/NetWare/Makefile b/NetWare/Makefile index 55b029b..d434dca 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.23.7 for NetWare" +MODULE_DESC = "Perl 5.23.8 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.23.7 +INST_VER = \5.23.8 # # Comment this out if you DON'T want your perl installation to have diff --git a/NetWare/config.wc b/NetWare/config.wc index d414e98..cc34a80 100644 --- a/NetWare/config.wc +++ b/NetWare/config.wc @@ -490,6 +490,13 @@ d_shmctl='undef' d_shmdt='undef' d_shmget='undef' d_sigaction='undef' +d_siginfo_si_addr='undef' +d_siginfo_si_band='undef' +d_siginfo_si_errno='undef' +d_siginfo_si_pid='undef' +d_siginfo_si_status='undef' +d_siginfo_si_uid='undef' +d_siginfo_si_value='undef' d_signbit='undef' d_sigprocmask='undef' d_sigsetjmp='undef' diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc index 930bf1c..76edaf3 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.23.7\\lib\\NetWare-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.23.8\\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.23.7\\bin\\NetWare-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.23.7\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.23.8\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.23.8\\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.23.7\\lib\\NetWare-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.23.8\\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.23.7\\lib" /**/ +#define SITELIB "c:\\perl\\site\\5.23.8\\lib" /**/ /*#define SITELIB_EXP "" /**/ #define SITELIB_STEM "" /**/ diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index e50fdf3..a3dfd69 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -387,12 +387,10 @@ use File::Glob qw(:case); }, 'Encode' => { - 'DISTRIBUTION' => 'DANKOGAI/Encode-2.78.tar.gz', + 'DISTRIBUTION' => 'DANKOGAI/Encode-2.80.tar.gz', 'FILES' => q[cpan/Encode], CUSTOMIZED => [ - qw( Encode.xs - Unicode/Unicode.xs - encoding.pm + qw( encoding.pm ), ], }, @@ -487,6 +485,38 @@ use File::Glob qw(:case); qq[lib/ExtUtils/MM_VMS.pm], # Not yet submitted qq[t/lib/MakeMaker/Test/NoXS.pm], + # Backported commits from upstream + qw(lib/ExtUtils/Command/MM.pm + lib/ExtUtils/Liblist.pm + lib/ExtUtils/Liblist/Kid.pm + lib/ExtUtils/MM.pm + lib/ExtUtils/MM_AIX.pm + lib/ExtUtils/MM_Any.pm + lib/ExtUtils/MM_BeOS.pm + lib/ExtUtils/MM_Cygwin.pm + lib/ExtUtils/MM_DOS.pm + lib/ExtUtils/MM_Darwin.pm + lib/ExtUtils/MM_MacOS.pm + lib/ExtUtils/MM_NW5.pm + lib/ExtUtils/MM_OS2.pm + lib/ExtUtils/MM_QNX.pm + lib/ExtUtils/MM_UWIN.pm + lib/ExtUtils/MM_Unix.pm + lib/ExtUtils/MM_VOS.pm + lib/ExtUtils/MM_Win32.pm + lib/ExtUtils/MM_Win95.pm + lib/ExtUtils/MY.pm + lib/ExtUtils/MakeMaker/Config.pm + lib/ExtUtils/MakeMaker/FAQ.pod + lib/ExtUtils/MakeMaker/Tutorial.pod + lib/ExtUtils/MakeMaker/version.pm + lib/ExtUtils/MakeMaker/version/regex.pm + lib/ExtUtils/Mkbootstrap.pm + lib/ExtUtils/Mksymlists.pm + lib/ExtUtils/testlib.pm + t/cd.t + t/echo.t + ), ], }, @@ -802,7 +832,7 @@ use File::Glob qw(:case); }, 'Module::CoreList' => { - 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20151220.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20160120.tar.gz', 'FILES' => q[dist/Module-CoreList], }, @@ -938,25 +968,13 @@ use File::Glob qw(:case); }, 'podlators' => { - 'DISTRIBUTION' => 'RRA/podlators-4.04.tar.gz', + 'DISTRIBUTION' => 'RRA/podlators-4.06.tar.gz', 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], - # The perl distribution has pod2man.PL and pod2text.PL, which are - # run to create pod2man and pod2text, while the CPAN distribution - # just has the post-generated pod2man and pod2text files. - # The following entries attempt to codify that odd fact. - 'CUSTOMIZED' => [ - qw( scripts/pod2man.PL - scripts/pod2text.PL - ), - ], 'MAP' => { '' => 'cpan/podlators/', - 'scripts/pod2man' => 'cpan/podlators/scripts/pod2man.PL', - 'scripts/pod2text' => 'cpan/podlators/scripts/pod2text.PL', - # this file lives outside the cpan/ directory - 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod', + 'pod/perlpodstyle' => 'pod/perlpodstyle.pod', }, }, @@ -1191,7 +1209,7 @@ use File::Glob qw(:case); 'Time::HiRes' => { 'DISTRIBUTION' => 'RJBS/Time-HiRes-1.9728.tar.gz', - 'FILES' => q[cpan/Time-HiRes], + 'FILES' => q[dist/Time-HiRes], }, 'Time::Local' => { diff --git a/Porting/checkAUTHORS.pl b/Porting/checkAUTHORS.pl index c856590..13791ca 100755 --- a/Porting/checkAUTHORS.pl +++ b/Porting/checkAUTHORS.pl @@ -617,6 +617,7 @@ edwardp\100excitehome.net epeschko\100den-mdev1 + esp5\100pge.com egf7\100columbia.edu efifer\100sanwaint.com eggert\100twinsun.com eggert\100sea.sm.unisys.com +etj\100cpan.org mohawk2\100users.noreply.github.com fugazi\100zyx.net larrysh\100cpan.org + lshatzer\100islanddata.com diff --git a/Porting/cmpVERSION.pl b/Porting/cmpVERSION.pl index c4ad9d2..2a3bf81 100755 --- a/Porting/cmpVERSION.pl +++ b/Porting/cmpVERSION.pl @@ -88,6 +88,9 @@ my %skip; 'cpan/Math-BigInt/t/Math/BigInt/Scalar.pm', # just a test module 'cpan/Math-BigInt/t/Math/BigInt/Subclass.pm', # just a test module 'cpan/Math-BigRat/t/Math/BigRat/Test.pm', # just a test module + 'cpan/podlators/t/lib/Test/Podlators.pm', # just a test module + 'cpan/podlators/t/lib/Test/RRA.pm', # just a test module + 'cpan/podlators/t/lib/Test/RRA/Config.pm', # just a test module 'dist/Attribute-Handlers/demo/MyClass.pm', # it's just demonstration code 'dist/Exporter/lib/Exporter/Heavy.pm', 'lib/Carp/Heavy.pm', @@ -182,7 +185,9 @@ foreach my $pm_file (sort keys %module_diffs) { print "ok $count - SKIP Can't parse \$VERSION in $pm_file\n" if $tap; } elsif (!defined $pm_version || $pm_version eq 'undef') { - print "not ok $count - in $pm_file version was $orig_pm_version, now unparsable\n" if $tap; + my $nok = "not ok $count - in $pm_file version was $orig_pm_version, now unparsable\n"; + print $nok if $tap; + print STDERR "# $nok\n"; } elsif ($pm_version ne $orig_pm_version) { # good print "ok $count - $pm_file\n" if $tap; } else { @@ -194,7 +199,9 @@ foreach my $pm_file (sort keys %module_diffs) { and grep $pm_version eq $_, @{$skip_versions{$pm_file}}) { print "ok $count - SKIP $pm_file version $pm_version\n"; } else { - print "not ok $count - $pm_file version $pm_version\n"; + my $nok = "not ok $count - $pm_file version $pm_version\n"; + print $nok; + print STDERR "# $nok"; } } else { push @diff, @{$module_diffs{$pm_file}}; diff --git a/Porting/config.sh b/Porting/config.sh index dc1d8ea..a8638b7 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -39,12 +39,12 @@ alignbytes='4' ansi2knr='' aphostname='/bin/hostname' api_revision='5' -api_subversion='7' +api_subversion='8' api_version='23' -api_versionstring='5.23.7' +api_versionstring='5.23.8' ar='ar' -archlib='/pro/lib/perl5/5.23.7/i686-linux-64int' -archlibexp='/pro/lib/perl5/5.23.7/i686-linux-64int' +archlib='/pro/lib/perl5/5.23.8/i686-linux-64int' +archlibexp='/pro/lib/perl5/5.23.8/i686-linux-64int' archname64='64int' archname='i686-linux-64int' archobjs='' @@ -511,6 +511,13 @@ d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' +d_siginfo_si_addr='undef' +d_siginfo_si_band='undef' +d_siginfo_si_errno='undef' +d_siginfo_si_pid='undef' +d_siginfo_si_status='undef' +d_siginfo_si_uid='undef' +d_siginfo_si_value='undef' d_signbit='define' d_sigprocmask='define' d_sigsetjmp='define' @@ -814,7 +821,7 @@ incpath='' incpth='/usr/lib/gcc/i586-suse-linux/4.8/include /usr/local/include /usr/lib/gcc/i586-suse-linux/4.8/include-fixed /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/include /usr/include' inews='' initialinstalllocation='/pro/bin' -installarchlib='/pro/lib/perl5/5.23.7/i686-linux-64int' +installarchlib='/pro/lib/perl5/5.23.8/i686-linux-64int' installbin='/pro/bin' installhtml1dir='' installhtml3dir='' @@ -822,13 +829,13 @@ installman1dir='/pro/local/man/man1' installman3dir='/pro/local/man/man3' installprefix='/pro' installprefixexp='/pro' -installprivlib='/pro/lib/perl5/5.23.7' +installprivlib='/pro/lib/perl5/5.23.8' installscript='/pro/bin' -installsitearch='/pro/lib/perl5/site_perl/5.23.7/i686-linux-64int' +installsitearch='/pro/lib/perl5/site_perl/5.23.8/i686-linux-64int' installsitebin='/pro/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/pro/lib/perl5/site_perl/5.23.7' +installsitelib='/pro/lib/perl5/site_perl/5.23.8' installsiteman1dir='/pro/local/man/man1' installsiteman3dir='/pro/local/man/man3' installsitescript='/pro/bin' @@ -954,7 +961,7 @@ perl_patchlevel='' perl_static_inline='static __inline__' perladmin='hmbrand@cpan.org' perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc' -perlpath='/pro/bin/perl5.23.7' +perlpath='/pro/bin/perl5.23.8' pg='pg' phostname='hostname' pidtype='pid_t' @@ -963,8 +970,8 @@ pmake='' pr='' prefix='/pro' prefixexp='/pro' -privlib='/pro/lib/perl5/5.23.7' -privlibexp='/pro/lib/perl5/5.23.7' +privlib='/pro/lib/perl5/5.23.8' +privlibexp='/pro/lib/perl5/5.23.8' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1030,17 +1037,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' sig_size='69' signal_t='void' -sitearch='/pro/lib/perl5/site_perl/5.23.7/i686-linux-64int' -sitearchexp='/pro/lib/perl5/site_perl/5.23.7/i686-linux-64int' +sitearch='/pro/lib/perl5/site_perl/5.23.8/i686-linux-64int' +sitearchexp='/pro/lib/perl5/site_perl/5.23.8/i686-linux-64int' sitebin='/pro/bin' sitebinexp='/pro/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/pro/lib/perl5/site_perl/5.23.7' +sitelib='/pro/lib/perl5/site_perl/5.23.8' sitelib_stem='/pro/lib/perl5/site_perl' -sitelibexp='/pro/lib/perl5/site_perl/5.23.7' +sitelibexp='/pro/lib/perl5/site_perl/5.23.8' siteman1dir='/pro/local/man/man1' siteman1direxp='/pro/local/man/man1' siteman3dir='/pro/local/man/man3' @@ -1066,7 +1073,7 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/pro/bin/perl5.23.7' +startperl='#!/pro/bin/perl5.23.8' startsh='#!/bin/sh' static_ext=' ' stdchar='char' @@ -1079,7 +1086,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='7' +subversion='8' sysman='/usr/share/man/man1' sysroot='' tail='' @@ -1178,8 +1185,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.23.7' -version_patchlevel_string='version 23 subversion 7' +version='5.23.8' +version_patchlevel_string='version 23 subversion 8' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1189,10 +1196,10 @@ zcat='' zip='zip' PERL_REVISION=5 PERL_VERSION=23 -PERL_SUBVERSION=7 +PERL_SUBVERSION=8 PERL_API_REVISION=5 PERL_API_VERSION=23 -PERL_API_SUBVERSION=7 +PERL_API_SUBVERSION=8 PERL_PATCHLEVEL='' PERL_CONFIG_SH=true : Variables propagated from previous config.sh file. diff --git a/Porting/config_H b/Porting/config_H index e7c3a8a..3609445 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.23.7/i686-linux-64int-ld" /**/ -#define ARCHLIB_EXP "/pro/lib/perl5/5.23.7/i686-linux-64int-ld" /**/ +#define ARCHLIB "/pro/lib/perl5/5.23.8/i686-linux-64int-ld" /**/ +#define ARCHLIB_EXP "/pro/lib/perl5/5.23.8/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.23.7" /**/ -#define PRIVLIB_EXP "/pro/lib/perl5/5.23.7" /**/ +#define PRIVLIB "/pro/lib/perl5/5.23.8" /**/ +#define PRIVLIB_EXP "/pro/lib/perl5/5.23.8" /**/ /* 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.23.7/i686-linux-64int-ld" /**/ -#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.23.7/i686-linux-64int-ld" /**/ +#define SITEARCH "/pro/lib/perl5/site_perl/5.23.8/i686-linux-64int-ld" /**/ +#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.23.8/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.23.7" /**/ -#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.23.7" /**/ +#define SITELIB "/pro/lib/perl5/site_perl/5.23.8" /**/ +#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.23.8" /**/ #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.23.7" /**/ +#define STARTPERL "#!/pro/bin/perl5.23.8" /**/ /* 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 ef10c8b..5f88b50 100644 --- a/Porting/epigraphs.pod +++ b/Porting/epigraphs.pod @@ -17,6 +17,25 @@ Consult your favorite dictionary for details. =head1 EPIGRAPHS +=head2 v5.23.7 + +L + +A year here and he still dreamed of cyberspace, hope fading +nightly. All the speed he took, all the turns he'd taken and +the corners he cut in Night City, and he'd still see the matrix +in his dreams, bright lattices of logic unfolding across that +colourless void...The Sprawl was a long, strange way home now +over the Pacific, and he was no Console Man, no cyberspace +cowboy. Just another hustler, trying to make it through. But +the dreams came on in the Japanese night like livewire voodoo, +and he'd cry for it, cry in his sleep, and wake alone in the +dark, curled in his capsule in some coffin hotel, hands clawed +into the bedslab, temper foam bunched between his fingers, +trying to reach the console that wasn't there. + + -- William Gibson, Neuromancer + =head2 v5.23.6 - 5.23 Episode VII A long time ago in microseconds, in a galaxy not very far away... diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod index 2e76ae5..d7c4dc8 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.23.7..HEAD + perl Porting/acknowledgements.pl v5.23.8..HEAD =head1 Reporting Bugs diff --git a/Porting/release_managers_guide.pod b/Porting/release_managers_guide.pod index 0c0f5b8..e46d84b 100644 --- a/Porting/release_managers_guide.pod +++ b/Porting/release_managers_guide.pod @@ -141,12 +141,6 @@ Andreas' email address at: https://pause.perl.org/pause/query?ACTION=pause_04imprint -=head3 search.cpan.org pumpkin status - -Make sure that search.cpan.org knows that you're allowed to upload -perl distros. Contact Graham Barr to make sure that you're on the right -list. - =head3 rt.perl.org update access Make sure you have permission to close tickets on L @@ -355,7 +349,7 @@ Ensure dual-life CPAN modules are stable, which comes down to: =head3 monitor smoke tests for failures Similarly, monitor the smoking of core tests, and try to fix. See -L and L +L and L for a summary. See also L which has the raw reports. diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod index bc07636..a416421 100644 --- a/Porting/release_schedule.pod +++ b/Porting/release_schedule.pod @@ -15,7 +15,7 @@ deemed necessary by the Pumpking. Code freezes (which happen in the 5.23.X series) - 2016-01-20 5.23.7 Contentious changes freeze + 2016-01-20 5.23.7 ✓ Contentious changes freeze 2016-02-20 5.23.8 User-visible changes freeze 2016-03-20 5.23.9 Full code freeze 2016-05-20 5.24.0 Stable release! @@ -58,13 +58,27 @@ you should reset the version numbers to the next blead series. 2015-10-20 5.23.4 ✓ Steve Hay 2015-11-20 5.23.5 ✓ Abigail 2015-12-20 5.23.6 ✓ David Golden - 2016-01-20 5.23.7 Stevan Little + 2016-01-20 5.23.7 ✓ Stevan Little 2016-02-20 5.23.8 Sawyer X 2016-03-20 5.23.9 Abigail (RC0 for 5.24.0 will be released once we think that all the blockers have been addressed. This typically means some time in April or May.) +=head2 Perl 5.25 + + 2016-05-20 5.25.0 Ricardo Signes + 2016-06-20 5.25.1 Matthew Horsfall + 2016-07-20 5.25.2 Steve Hay + 2016-08-20 5.25.3 BinGOs + 2016-09-20 5.25.4 Stevan Little + 2016-10-20 5.25.5 ? + 2016-11-20 5.25.6 ? + 2016-12-20 5.25.7 ? + +(RC0 for 5.24.0 will be released once we think that all the blockers have been +addressed. This typically means some time in April or May.) + =head1 VICTIMS The following porters have all consented to do at least diff --git a/Porting/todo.pod b/Porting/todo.pod index a8e1093..f19e41a 100644 --- a/Porting/todo.pod +++ b/Porting/todo.pod @@ -467,7 +467,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall. On these systems, it might be the default compilation mode, and there is currently no guarantee that passing no use64bitall option to the Configure process will build a 32bit perl. Implementing -Duse32bit* -options would be nice for perl 5.23.7. +options would be nice for perl 5.23.8. =head2 Profile Perl - am I hot or not? @@ -1169,7 +1169,7 @@ L =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.23.7" +of 5.23.8" =head2 make ithreads more robust diff --git a/README.android b/README.android index b774d9f..defcd95 100644 --- a/README.android +++ b/README.android @@ -45,10 +45,10 @@ As of 2014, most Android devices run on ARM, so that is generally a safe bet. With those two in hand, you should add -$ANDROID_NDK/toolchains/$TARGETARCH-4.8/prebuilt/`uname | tr '[A-Z]' '[a-z]'`-x86_64/bin + $ANDROID_NDK/toolchains/$TARGETARCH-4.8/prebuilt/`uname | tr '[A-Z]' '[a-z]'`-x86_64/bin -to your PATH, where $ANDROID_NDK is the location where you unpacked the -NDK, and $TARGETARCH is your target's architecture. +to your C, where C<$ANDROID_NDK> is the location where you unpacked the +NDK, and C<$TARGETARCH> is your target's architecture. =head2 Set up a standalone toolchain @@ -69,6 +69,7 @@ of establishing an ssh connection to an Android device without having to install anything on the device itself, as long as the device is either on the same local network as the host, or it is connected to the host through USB. + Perl can be cross-compiled using either adb or a normal ssh connection; in general, if you can connect your device to the host using a USB port, or if you don't feel like installing an sshd app on your device, @@ -81,14 +82,14 @@ use adb. To use adb, download the Android SDK from L. The "SDK Tools Only" version should suffice -- if you downloaded the ADT -Bundle, you can find the sdk under $ADT_BUNDLE/sdk/. +Bundle, you can find the sdk under F<$ADT_BUNDLE/sdk/>. -Add $ANDROID_SDK/platform-tools to your PATH, which should give you access -to adb. You'll now have to find your device's name using 'adb devices', -and later pass that to Configure through '-Dtargethost=$DEVICE'. +Add F<$ANDROID_SDK/platform-tools> to your C, which should give you access +to adb. You'll now have to find your device's name using C, +and later pass that to Configure through C<-Dtargethost=$DEVICE>. However, before calling Configure, you need to check if using adb is a -viable choice in the first place. Because Android doesn't have a /tmp, +viable choice in the first place. Because Android doesn't have a F, nor does it allow executables in the sdcard, we need to find somewhere in the device for Configure to put some files in, as well as for the tests to run in. If your device is rooted, then you're good. Try running these: @@ -97,7 +98,7 @@ to run in. If your device is rooted, then you're good. Try running these: $ adb -s $DEVICE shell "echo sh -c '\"mkdir $TARGETDIR\"' | su --" Which will create the directory we need, and you can move on to the next -step. /mnt/asec is mounted as a tmpfs in Android, but it's only +step. F is mounted as a tmpfs in Android, but it's only accessible to root. If your device is not rooted, you may still be in luck. Try running this: @@ -107,7 +108,7 @@ If your device is not rooted, you may still be in luck. Try running this: If the command works, you can move to the next step, but beware: B, F may not get automatically garbage collected once you shut off the phone>. If neither of those work, then you can't use adb to cross-compile to your @@ -123,10 +124,12 @@ public key. Note that several apps spew crap to stderr every time you connect, which can throw off Configure. You may need to monkeypatch -the part of Configure that creates 'run-ssh' to have it discard stderr. +the part of Configure that creates C to have it discard stderr. Since you're using ssh, you'll have to pass some extra arguments to -Configure: -Dtargetrun=ssh -Dtargethost=$TARGETHOST -Dtargetuser=$TARGETUSER -Dtargetport=$TARGETPORT +Configure: + + -Dtargetrun=ssh -Dtargethost=$TARGETHOST -Dtargetuser=$TARGETUSER -Dtargetport=$TARGETPORT =head2 Configure and beyond @@ -134,29 +137,29 @@ With all of the previous done, you're now ready to call Configure. If using adb, a "basic" Configure line will look like this: -$ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=adb \ - -Dcc=$TARGETARCH-gcc \ - -Dsysroot=$SYSROOT \ - -Dtargetdir=$TARGETDIR \ - -Dtargethost=$DEVICE + $ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=adb \ + -Dcc=$TARGETARCH-gcc \ + -Dsysroot=$SYSROOT \ + -Dtargetdir=$TARGETDIR \ + -Dtargethost=$DEVICE If using ssh, it's not too different -- we just change targetrun to ssh, and pass in targetuser and targetport. It ends up looking like this: -$ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=ssh \ - -Dcc=$TARGETARCH-gcc \ - -Dsysroot=$SYSROOT \ - -Dtargetdir=$TARGETDIR \ - -Dtargethost="$TARGETHOST" \ - -Dtargetuser=$TARGETUSER \ - -Dtargetport=$TARGETPORT + $ ./Configure -des -Dusedevel -Dusecrosscompile -Dtargetrun=ssh \ + -Dcc=$TARGETARCH-gcc \ + -Dsysroot=$SYSROOT \ + -Dtargetdir=$TARGETDIR \ + -Dtargethost="$TARGETHOST" \ + -Dtargetuser=$TARGETUSER \ + -Dtargetport=$TARGETPORT -Now you're ready to run make and make test! +Now you're ready to run C and C! -As a final word of warning, if you're using adb, make test may appear to +As a final word of warning, if you're using adb, C may appear to hang; this is because it doesn't output anything until it finishes running all tests. You can check its progress by logging into the -device, moving to $TARGETDIR, and looking at the file output.stdout. +device, moving to F<$TARGETDIR>, and looking at the file F. =head3 Notes @@ -164,13 +167,13 @@ device, moving to $TARGETDIR, and looking at the file output.stdout. =item * -If you are targetting x86 Android, you will have to change $TARGETARCH-gcc -to i686-linux-android-gcc. +If you are targetting x86 Android, you will have to change C<$TARGETARCH-gcc> +to C. =item * On some older low-end devices -- think early 2.2 era -- some tests, -particularly t/re/uniprops, may crash the phone, causing it to turn +particularly F, may crash the phone, causing it to turn itself off once, and then back on again. =back @@ -187,7 +190,7 @@ version without some important utilities, like ar or nm. Once you have the toolchain set up properly, the only remaining hurdle is actually locating where in the device it was installed in. For example, CCTools installs its toolchain in -/data/data/com.pdaxrom.cctools/root/cctools. With the path in hand, +F. With the path in hand, compiling perl is little more than: export SYSROOT= diff --git a/README.cygwin b/README.cygwin index 388dc1a..9d1164b 100644 --- a/README.cygwin +++ b/README.cygwin @@ -562,9 +562,10 @@ be kept as clean as possible. pod/perltoc.pod Porting/Glossary pod/perlgit.pod Porting/checkAUTHORS.pl dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes + dist/Time-HiRes/Changes ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes - ext/Time-HiRes/Changes ext/Win32API-File/Changes + ext/Win32API-File/Changes lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes lib/ExtUtils/NOTES lib/ExtUtils/PATCHING lib/ExtUtils/README lib/Net/Ping/Changes lib/Test/Harness/Changes diff --git a/README.haiku b/README.haiku index 238cc6c..e192142 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.23.7/BePC-haiku/CORE/libperl.so . + cd /boot/common/lib; ln -s perl5/5.23.8/BePC-haiku/CORE/libperl.so . -Replace C<5.23.7> with your respective version of Perl. +Replace C<5.23.8> with your respective version of Perl. =head1 KNOWN PROBLEMS diff --git a/README.macosx b/README.macosx index 11d027e..4d4412a 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.23.7.tar.gz - tar -xzf perl-5.23.7.tar.gz - cd perl-5.23.7 + curl -O http://www.cpan.org/src/perl-5.23.8.tar.gz + tar -xzf perl-5.23.8.tar.gz + cd perl-5.23.8 ./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.23.7 as of this writing) builds without changes +The latest Perl release (5.23.8 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 05cc088..d42db96 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.23.7/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.23.8/ 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 c52d80c..1d6cf2c 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^.23^.7.tar + vmstar -xvf perl-5^.23^.8.tar Then set default to the top-level source directory like so: - set default [.perl-5^.23^.7] + set default [.perl-5^.23^.8] and proceed with configuration as described in the next section. diff --git a/README.win32 b/README.win32 index a455f3e..46efd62 100644 --- a/README.win32 +++ b/README.win32 @@ -97,14 +97,14 @@ See L below for general hints about this. You need a "make" program to build the sources. If you are using Visual C++ or the Windows SDK tools, you can use nmake supplied with Visual C++ -or Windows SDK. You may also use, for Visual C++ or Windows SDK, dmake instead -of nmake. dmake is open source software, but is not included with Visual C++ or -Windows SDK. Builds using gcc need dmake or gmake. nmake is not supported for -gcc builds. gmake only supports gcc builds, not any other compiler. -Parallel building is only supported with dmake with any compiler. It is -recommended to use dmake 4.13 or newer for parallel building. Older dmakes, -in parallel mode, have very high CPU usage and pound the disk/filing system -with duplicate I/O calls in an aggressive polling loop. +or Windows SDK. You may also use, for Visual C++ or Windows SDK, dmake or gmake +instead of nmake. dmake is open source software, but is not included with +Visual C++ or Windows SDK. Builds using gcc need dmake or gmake. nmake is not +supported for gcc builds. Parallel building is only supported with dmake and +gmake, not nmake. When using dmake it is recommended to use dmake 4.13 or newer +for parallel building. Older dmakes, in parallel mode, have very high CPU usage +and pound the disk/filing system with duplicate I/O calls in an aggressive +polling loop. A port of dmake for Windows is available from: diff --git a/autodoc.pl b/autodoc.pl index ff548fc..9d41dda 100644 --- a/autodoc.pl +++ b/autodoc.pl @@ -263,7 +263,7 @@ removed without notice.\n\n$docs" if $flags =~ /x/; sub sort_helper { # Do a case-insensitive dictionary sort, with only alphabetics # significant, falling back to using everything for determinancy - return (uc($a =~ s/[[^:alpha]]//r) cmp uc($b =~ s/[[^:alpha]]//r)) + return (uc($a =~ s/[[:^alpha:]]//r) cmp uc($b =~ s/[[:^alpha:]]//r)) || uc($a) cmp uc($b) || $a cmp $b; } diff --git a/charclass_invlists.h b/charclass_invlists.h index a57f55f..a362530 100644 --- a/charclass_invlists.h +++ b/charclass_invlists.h @@ -87736,21 +87736,21 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */ #if defined(PERL_IN_REGEXEC_C) static const bool GCB_table[14][14] = { -/* XX CR CN EX L LF LV LVT PP RI SM T V edge */ -/* XX */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -/* CR */ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, -/* CN */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* EX */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -/* L */ 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, -/* LF */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* LV */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, -/* LVT */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, -/* PP */ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, -/* RI */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, -/* SM */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -/* T */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, -/* V */ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, -/* edge */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 +/* XX CR CN EX L LF LV LVT PP RI SM T V edge*/ +/* XX*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1}, +/* CR*/ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}, +/* CN*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, +/* EX*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1}, +/* L*/ { 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1}, +/* LF*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, +/* LV*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1}, +/* LVT*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1}, +/* PP*/ { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, +/* RI*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1}, +/* SM*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1}, +/* T*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1}, +/* V*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1}, +/*edge*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0} }; #define LB_NOBREAK 0 @@ -87766,43 +87766,79 @@ static const bool GCB_table[14][14] = { static const U8 LB_table[36][36] = { /* 'ed' stands for 'edge' */ -/* AL BA BB B2 SY CR CP CL CM CB EX GL H2 H3 HL HY ID IS IN JL JT JV LF BK NL NS NU OP PO PR QU RI SP WJ ZW ed */ -/* AL */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, -/* BA */ 14, 0, 14, 14, 2, 0, 2, 2, 0, 1, 2, 14, 14, 14, 14, 0, 14, 2, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, 0, 14, 0, 0, 0, 1, -/* BB */ 0, 0, 0, 0, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -/* B2 */ 1, 0, 1, 2, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, -/* SY */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 12, 1, 17, 17, 0, 1, 0, 0, 0, 1, -/* CR */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* CP */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 0, 1, 17, 17, 0, 1, 0, 0, 0, 1, -/* CL */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1, 17, 17, 0, 1, 0, 0, 0, 1, -/* CM */ 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 1, -/* CB */ 1, 1, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, -/* EX */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, -/* GL */ 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -/* H2 */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* H3 */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* HL */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, -/* HY */ 14, 0, 14, 14, 2, 0, 2, 2, 0, 1, 2, 14, 14, 14, 14, 0, 14, 2, 14, 14, 14, 14, 0, 0, 0, 0, 13, 14, 14, 14, 0, 14, 0, 0, 0, 1, -/* ID */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* IS */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 12, 1, 17, 17, 0, 1, 0, 0, 0, 1, -/* IN */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, -/* JL */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* JT */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* JV */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, -/* LF */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* BK */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* NL */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -/* NS */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, -/* NU */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, -/* OP */ 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 1, -/* PO */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 10, 1, 1, 0, 1, 0, 0, 0, 1, -/* PR */ 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 1, 0, 1, 0, 0, 0, 1, -/* QU */ 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, -/* RI */ 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, -/* SP */ 7, 7, 7, 7, 8, 0, 8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 0, 1, -/* WJ */ 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -/* ZW */ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, -/* ed */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +/* AL BA BB B2 SY CR CP CL CM CB EX GL H2 H3 HL HY ID IS IN JL JT JV LF BK NL NS NU OP PO PR QU RI SP WJ ZW ed */ +/* AL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* BA */ { 14, 0, 14, 14, 2, 0, 2, 2, 0, 1, 2, 14, 14, 14, 14, 0, 14, 2, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, 0, 14, 0, 0, 0, 1 }, +/* BB */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, +/* B2 */ { 1, 0, 1, 2, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* SY */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 12, 1, 17, 17, 0, 1, 0, 0, 0, 1 }, +/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* CP */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 0, 1, 17, 17, 0, 1, 0, 0, 0, 1 }, +/* CL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1, 17, 17, 0, 1, 0, 0, 0, 1 }, +/* CM */ { 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 1 }, +/* CB */ { 1, 1, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* EX */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* GL */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, +/* H2 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* H3 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* HL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* HY */ { 14, 0, 14, 14, 2, 0, 2, 2, 0, 1, 2, 14, 14, 14, 14, 0, 14, 2, 14, 14, 14, 14, 0, 0, 0, 0, 13, 14, 14, 14, 0, 14, 0, 0, 0, 1 }, +/* ID */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* IS */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 12, 1, 17, 17, 0, 1, 0, 0, 0, 1 }, +/* IN */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* JL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* JT */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* JV */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, +/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* NS */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* NU */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }, +/* OP */ { 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 1 }, +/* PO */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 10, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* PR */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 1, 1, 0, 1, 0, 0, 0, 1 }, +/* QU */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1 }, +/* RI */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 }, +/* SP */ { 7, 7, 7, 7, 8, 0, 8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 0, 1 }, +/* WJ */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, +/* ZW */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1 }, +/* ed */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +#define WB_NOBREAK 0 +#define WB_BREAKABLE 1 +#define WB_hs_then_hs 2 +#define WB_Ex_or_FO_then_foo 3 +#define WB_DQ_then_HL 4 +#define WB_HL_then_DQ 6 +#define WB_LE_or_HL_then_MB_or_ML_or_SQ 8 +#define WB_MB_or_ML_or_SQ_then_LE_or_HL 10 +#define WB_MB_or_MN_or_SQ_then_NU 12 +#define WB_NU_then_MB_or_MN_or_SQ 14 + +static const U8 WB_table[19][19] = { + +/* 'Ex' stands for 'Extend'; 'hs' for 'Perl_Tailored_HSpace'; 'ed' for 'edge' */ +/* XX LE CR DQ Ex EX FO HL KA LF ML MN MB NL NU hs RI SQ ed */ +/* XX */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* LE */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 9, 1 }, +/* CR */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 }, +/* DQ */ { 1, 1, 1, 1, 0, 1, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* Ex */ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1 }, +/* EX */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 }, +/* FO */ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1 }, +/* HL */ { 1, 0, 1, 7, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 8, 1 }, +/* KA */ { 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* LF */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 }, +/* ML */ { 1, 11, 1, 1, 0, 1, 0, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, +/* MN */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 13, 1, 1, 1, 1 }, +/* MB */ { 1, 11, 1, 1, 0, 1, 0, 11, 1, 1, 1, 1, 1, 1, 13, 1, 1, 1, 1 }, +/* NL */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 }, +/* NU */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 15, 15, 1, 0, 1, 1, 15, 1 }, +/* hs */ { 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1 }, +/* RI */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, +/* SQ */ { 1, 11, 1, 1, 0, 1, 0, 11, 1, 1, 1, 1, 1, 1, 13, 1, 1, 1, 1 }, +/* ed */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 } }; #endif /* defined(PERL_IN_REGEXEC_C) */ @@ -87851,8 +87887,8 @@ static const U8 LB_table[36][36] = { * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt - * b99d791e3e9edab7a3e2016943081585b069aa9c18447b3cdf3137b97f453f7c lib/unicore/mktables + * 7baa3c79b0ac81279720b4871737ab448d7ddd1bfad31b981437ce49c1292535 lib/unicore/mktables * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl - * aecdc74d0b96fe90050ec60ac2a083e99cfd937b06d29c2aed072090cf4c1900 regen/mk_invlists.pl + * 5774f77d07a81945b6a679ecce07ad90cdb334f3fb402ff63bdbecd2ec67da05 regen/mk_invlists.pl * ex: set ro: */ diff --git a/config_h.SH b/config_h.SH index e083524..9dd2c09 100755 --- a/config_h.SH +++ b/config_h.SH @@ -2327,6 +2327,48 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sigaction HAS_SIGACTION /**/ +/* HAS_SIGINFO_SI_ERRNO: + * This symbol, if defined, indicates that siginfo_t has the + * si_errno member + */ +#$d_siginfo_si_errno HAS_SIGINFO_SI_ERRNO /**/ + +/* HAS_SIGINFO_SI_PID: + * This symbol, if defined, indicates that siginfo_t has the + * si_pid member + */ +#$d_siginfo_si_pid HAS_SIGINFO_SI_PID /**/ + +/* HAS_SIGINFO_SI_UID: + * This symbol, if defined, indicates that siginfo_t has the + * si_uid member + */ +#$d_siginfo_si_uid HAS_SIGINFO_SI_UID /**/ + +/* HAS_SIGINFO_SI_ADDR: + * This symbol, if defined, indicates that siginfo_t has the + * si_addr member + */ +#$d_siginfo_si_addr HAS_SIGINFO_SI_ADDR /**/ + +/* HAS_SIGINFO_SI_STATUS: + * This symbol, if defined, indicates that siginfo_t has the + * si_status member + */ +#$d_siginfo_si_status HAS_SIGINFO_SI_STATUS /**/ + +/* HAS_SIGINFO_SI_BAND: + * This symbol, if defined, indicates that siginfo_t has the + * si_band member + */ +#$d_siginfo_si_band HAS_SIGINFO_SI_BAND /**/ + +/* HAS_SIGINFO_SI_VALUE: + * This symbol, if defined, indicates that siginfo_t has the + * si_value member + */ +#$d_siginfo_si_value HAS_SIGINFO_SI_VALUE /**/ + /* HAS_SIGSETJMP: * This variable indicates to the C program that the sigsetjmp() * routine is available to save the calling process's registers diff --git a/configure.com b/configure.com index 2d674c5..ed85828 100644 --- a/configure.com +++ b/configure.com @@ -5340,6 +5340,13 @@ $ d_clearenv="undef" $ d_usleep="define" $ d_setitimer="define" $ d_sigaction="define" +$ d_siginfo_si_addr="define" +$ d_siginfo_si_band="define" +$ d_siginfo_si_errno="define" +$ d_siginfo_si_pid="define" +$ d_siginfo_si_status="define" +$ d_siginfo_si_uid="define" +$ d_siginfo_si_value="define" $ d_sigprocmask="define" $ d_truncate="define" $ d_wait4="define" @@ -6294,6 +6301,13 @@ $ WC "d_shmctl='" + d_shmctl + "'" $ WC "d_shmdt='" + d_shmdt + "'" $ WC "d_shmget='" + d_shmget + "'" $ WC "d_sigaction='" + d_sigaction + "'" +$ WC "d_siginfo_si_addr='" + d_siginfo_si_addr + "'" +$ WC "d_siginfo_si_band='" + d_siginfo_si_band + "'" +$ WC "d_siginfo_si_errno='" + d_siginfo_si_errno + "'" +$ WC "d_siginfo_si_pid='" + d_siginfo_si_pid + "'" +$ WC "d_siginfo_si_status='" + d_siginfo_si_status + "'" +$ WC "d_siginfo_si_uid='" + d_siginfo_si_uid + "'" +$ WC "d_siginfo_si_value='" + d_siginfo_si_value + "'" $ WC "d_signbit='" + d_signbit + "'" $ WC "d_sigprocmask='" + d_sigprocmask + "'" $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" @@ -7372,10 +7386,12 @@ $ WRITE CONFIG "$ encguess == """ + perl_setup_perl + " ''vms_prefix':[utils]e $ WRITE CONFIG "$ h2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com""" $ WRITE CONFIG "$ h2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com""" $ WRITE CONFIG "$ instmodsh == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com""" +$ WRITE CONFIG "$ json_pp == """ + perl_setup_perl + " ''vms_prefix':[utils]json_pp.com""" $ WRITE CONFIG "$ libnetcfg == """ + perl_setup_perl + " ''vms_prefix':[utils]libnetcfg.com""" $ WRITE CONFIG "$ perlbug == """ + perl_setup_perl + " ''vms_prefix':[utils]perlbug.com""" $ WRITE CONFIG "$ perldoc == """ + perl_setup_perl + " ''vms_prefix':[utils]perldoc.com """"-t""""""" $ WRITE CONFIG "$ perlivp == """ + perl_setup_perl + " ''vms_prefix':[utils]perlivp.com""" +$ WRITE CONFIG "$ perlthanks == """ + perl_setup_perl + " ''vms_prefix':[utils]perlthanks.com""" $ WRITE CONFIG "$ piconv == """ + perl_setup_perl + " ''vms_prefix':[utils]piconv.com""" $ WRITE CONFIG "$ pl2pm == """ + perl_setup_perl + " ''vms_prefix':[utils]pl2pm.com""" $ WRITE CONFIG "$ pod2html == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2html.com""" @@ -7385,7 +7401,6 @@ $ WRITE CONFIG "$ pod2usage == """ + perl_setup_perl + " ''vms_prefix':[utils]p $ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " ''vms_prefix':[utils]podchecker.com""" $ WRITE CONFIG "$ podselect == """ + perl_setup_perl + " ''vms_prefix':[utils]podselect.com""" $ WRITE CONFIG "$ prove == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com""" -$ WRITE CONFIG "$ psed == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com""" $ WRITE CONFIG "$ pstruct == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com""" $ WRITE CONFIG "$ ptar == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com""" $ WRITE CONFIG "$ ptardiff == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com""" diff --git a/cop.h b/cop.h index b15ddf4..dfb4a00 100644 --- a/cop.h +++ b/cop.h @@ -175,8 +175,8 @@ associated with the key. /* =for apidoc Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|const char *key|U32 flags -Like L, but takes a literal string instead of a -string/length pair, and no precomputed hash. +Like L, but takes a C-terminated literal string instead +of a string/length pair, and no precomputed hash. =cut */ @@ -281,8 +281,8 @@ be stored with referential integrity, but will be coerced to strings. /* =for apidoc Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|const char *key|SV *value|U32 flags -Like L, but takes a literal string instead of a -string/length pair, and no precomputed hash. +Like L, but takes a C-terminated literal string instead +of a string/length pair, and no precomputed hash. =cut */ @@ -338,8 +338,8 @@ hash of the key string, or zero if it has not been precomputed. /* =for apidoc Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|const char *key|U32 flags -Like L, but takes a literal string instead of a -string/length pair, and no precomputed hash. +Like L, but takes a C-terminated literal string instead +of a string/length pair, and no precomputed hash. =cut */ @@ -478,8 +478,8 @@ associated with the key. /* =for apidoc Am|SV *|cop_hints_fetch_pvs|const COP *cop|const char *key|U32 flags -Like L, but takes a literal string instead of a -string/length pair, and no precomputed hash. +Like L, but takes a C-terminated literal string +instead of a string/length pair, and no precomputed hash. =cut */ @@ -551,12 +551,11 @@ be zero. struct block_sub { OP * retop; /* op to execute on exit from sub */ /* Above here is the same for sub, format and eval. */ + PAD *prevcomppad; /* the caller's PL_comppad */ CV * cv; /* Above here is the same for sub and format. */ - AV * savearray; - AV * argarray; I32 olddepth; - PAD *oldcomppad; + AV *savearray; }; @@ -564,35 +563,40 @@ struct block_sub { struct block_format { OP * retop; /* op to execute on exit from sub */ /* Above here is the same for sub, format and eval. */ + PAD *prevcomppad; /* the caller's PL_comppad */ CV * cv; /* Above here is the same for sub and format. */ GV * gv; GV * dfoutgv; }; +/* return a pointer to the current context */ + +#define CX_CUR() (&cxstack[cxstack_ix]) + +/* free all savestack items back to the watermark of the specified context */ + +#define CX_LEAVE_SCOPE(cx) LEAVE_SCOPE(cx->blk_oldsaveix) + +#ifdef DEBUGGING +/* on debugging builds, poison cx afterwards so we know no code + * uses it - because after doing cxstack_ix--, any ties, exceptions etc + * may overwrite the current stack frame */ +# define CX_POP(cx) \ + assert(CX_CUR() == cx); \ + cxstack_ix--; \ + cx = NULL; +#else +# define CX_POP(cx) cxstack_ix--; +#endif + + /* base for the next two macros. Don't use directly. - * Note that the refcnt of the cv is incremented twice; The CX one is - * decremented by LEAVESUB, the other by LEAVE. */ - -#define PUSHSUB_BASE(cx) \ - ENTRY_PROBE(CvNAMED(cv) \ - ? HEK_KEY(CvNAME_HEK(cv)) \ - : GvENAME(CvGV(cv)), \ - CopFILE((const COP *)CvSTART(cv)), \ - CopLINE((const COP *)CvSTART(cv)), \ - CopSTASHPV((const COP *)CvSTART(cv))); \ - \ - cx->blk_sub.cv = cv; \ - cx->blk_sub.olddepth = CvDEPTH(cv); \ - cx->cx_type |= (hasargs) ? CXp_HASARGS : 0; \ - cx->blk_sub.retop = NULL; \ - if (!CvDEPTH(cv)) { \ - SvREFCNT_inc_simple_void_NN(cv); \ - SvREFCNT_inc_simple_void_NN(cv); \ - SAVEFREESV(cv); \ - } - -#define PUSHSUB_GET_LVALUE_MASK(func) \ + * The context frame holds a reference to the CV so that it can't be + * freed while we're executing it */ + + +#define CX_PUSHSUB_GET_LVALUE_MASK(func) \ /* If the context is indeterminate, then only the lvalue */ \ /* flags that the caller also has are applicable. */ \ ( \ @@ -602,34 +606,13 @@ struct block_format { ? 0 : (U8)func(aTHX) \ ) -#define PUSHSUB(cx) \ - { \ - U8 phlags = PUSHSUB_GET_LVALUE_MASK(Perl_was_lvalue_sub); \ - PUSHSUB_BASE(cx) \ - cx->blk_u16 = PL_op->op_private & \ - (phlags|OPpDEREF); \ - } - -/* variant for use by OP_DBSTATE, where op_private holds hint bits */ -#define PUSHSUB_DB(cx) \ - PUSHSUB_BASE(cx) \ - cx->blk_u16 = 0; - - -#define PUSHFORMAT(cx, retop) \ - cx->blk_format.cv = cv; \ - cx->blk_format.gv = gv; \ - cx->blk_format.retop = (retop); \ - cx->blk_format.dfoutgv = PL_defoutgv; \ - cx->blk_u16 = 0; \ - if (!CvDEPTH(cv)) SvREFCNT_inc_simple_void_NN(cv); \ - CvDEPTH(cv)++; \ - SvREFCNT_inc_void(cx->blk_format.dfoutgv) - -#define POP_SAVEARRAY() \ +/* Restore old @_ */ +#define CX_POP_SAVEARRAY(cx) \ STMT_START { \ - SvREFCNT_dec(GvAV(PL_defgv)); \ + AV *av = GvAV(PL_defgv); \ GvAV(PL_defgv) = cx->blk_sub.savearray; \ + cx->blk_sub.savearray = NULL; \ + SvREFCNT_dec(av); \ } STMT_END /* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't @@ -641,58 +624,6 @@ struct block_format { AvFILLp(ary) = -1; \ } STMT_END -#define POPSUB(cx,sv) \ - STMT_START { \ - const I32 olddepth = cx->blk_sub.olddepth; \ - if (!(cx->blk_u16 & CxPOPSUB_DONE)) { \ - cx->blk_u16 |= CxPOPSUB_DONE; \ - RETURN_PROBE(CvNAMED(cx->blk_sub.cv) \ - ? HEK_KEY(CvNAME_HEK(cx->blk_sub.cv)) \ - : GvENAME(CvGV(cx->blk_sub.cv)), \ - CopFILE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \ - CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \ - CopSTASHPV((COP*)CvSTART((const CV*)cx->blk_sub.cv))); \ - \ - if (CxHASARGS(cx)) { \ - POP_SAVEARRAY(); \ - /* abandon @_ if it got reified */ \ - if (AvREAL(cx->blk_sub.argarray)) { \ - const SSize_t fill = AvFILLp(cx->blk_sub.argarray); \ - SvREFCNT_dec_NN(cx->blk_sub.argarray); \ - cx->blk_sub.argarray = newAV(); \ - av_extend(cx->blk_sub.argarray, fill); \ - AvREIFY_only(cx->blk_sub.argarray); \ - CX_CURPAD_SV(cx->blk_sub, 0) = MUTABLE_SV(cx->blk_sub.argarray); \ - } \ - else { \ - CLEAR_ARGARRAY(cx->blk_sub.argarray); \ - } \ - } \ - } \ - sv = MUTABLE_SV(cx->blk_sub.cv); \ - LEAVE_SCOPE(PL_scopestack[cx->blk_oldscopesp-1]); \ - if (sv && (CvDEPTH((const CV*)sv) = olddepth)) \ - sv = NULL; \ - } STMT_END - -#define LEAVESUB(sv) \ - STMT_START { \ - SvREFCNT_dec(sv); \ - } STMT_END - -#define POPFORMAT(cx) \ - STMT_START { \ - if (!(cx->blk_u16 & CxPOPSUB_DONE)) { \ - CV * const cv = cx->blk_format.cv; \ - GV * const dfuot = cx->blk_format.dfoutgv; \ - cx->blk_u16 |= CxPOPSUB_DONE; \ - setdefout(dfuot); \ - LEAVE_SCOPE(PL_scopestack[cx->blk_oldscopesp-1]); \ - if (!--CvDEPTH(cv)) \ - SvREFCNT_dec_NN(cx->blk_format.cv); \ - SvREFCNT_dec_NN(dfuot); \ - } \ - } STMT_END /* eval context */ struct block_eval { @@ -712,122 +643,85 @@ struct block_eval { #define CxOLD_IN_EVAL(cx) (((cx)->blk_u16) & 0x7F) #define CxOLD_OP_TYPE(cx) (((cx)->blk_u16) >> 7) -#define PUSHEVAL(cx,n) \ - STMT_START { \ - assert(!(PL_in_eval & ~0x7F)); \ - assert(!(PL_op->op_type & ~0x1FF)); \ - cx->blk_u16 = (PL_in_eval & 0x7F) | ((U16)PL_op->op_type << 7); \ - cx->blk_eval.old_namesv = (n ? newSVpv(n,0) : NULL); \ - cx->blk_eval.old_eval_root = PL_eval_root; \ - cx->blk_eval.cur_text = PL_parser ? PL_parser->linestr : NULL; \ - cx->blk_eval.cv = NULL; /* set by doeval(), as applicable */ \ - cx->blk_eval.retop = NULL; \ - cx->blk_eval.cur_top_env = PL_top_env; \ - } STMT_END - -#define POPEVAL(cx) \ - STMT_START { \ - PL_in_eval = CxOLD_IN_EVAL(cx); \ - optype = CxOLD_OP_TYPE(cx); \ - PL_eval_root = cx->blk_eval.old_eval_root; \ - if (cx->blk_eval.cur_text && SvSCREAM(cx->blk_eval.cur_text)) \ - SvREFCNT_dec_NN(cx->blk_eval.cur_text); \ - if (cx->blk_eval.old_namesv) \ - sv_2mortal(cx->blk_eval.old_namesv); \ - } STMT_END - /* loop context */ struct block_loop { - I32 resetsp; LOOP * my_op; /* My op, that contains redo, next and last ops. */ union { /* different ways of locating the iteration variable */ - SV **svp; - GV *gv; - PAD *oldcomppad; /* only used in ITHREADS */ + SV **svp; /* for lexicals: address of pad slot */ + GV *gv; /* for package vars */ } itervar_u; + SV *itersave; /* the original iteration var */ union { - struct { /* valid if type is LOOP_FOR or LOOP_PLAIN (but {NULL,0})*/ - AV * ary; /* use the stack if this is NULL */ - IV ix; + struct { /* CXt_LOOP_ARY, C */ + AV *ary; /* array being iterated over */ + IV ix; /* index relative to base of array */ } ary; - struct { /* valid if type is LOOP_LAZYIV */ + struct { /* CXt_LOOP_LIST, C */ + I32 basesp; /* first element of list on stack */ + IV ix; /* index relative to basesp */ + } stack; + struct { /* CXt_LOOP_LAZYIV, C */ IV cur; IV end; } lazyiv; - struct { /* valid if type if LOOP_LAZYSV */ + struct { /* CXt_LOOP_LAZYSV C */ SV * cur; SV * end; /* maxiumum value (or minimum in reverse) */ } lazysv; } state_u; -}; - #ifdef USE_ITHREADS -# define CxITERVAR_PADSV(c) \ - &CX_CURPAD_SV( (c)->blk_loop.itervar_u, (c)->blk_loop.my_op->op_targ) -#else -# define CxITERVAR_PADSV(c) ((c)->blk_loop.itervar_u.svp) + PAD *oldcomppad; /* needed to map itervar_u.svp during thread clone */ #endif +}; -#define CxITERVAR(c) \ - ((c)->blk_loop.itervar_u.oldcomppad \ - ? (CxPADLOOP(c) \ - ? CxITERVAR_PADSV(c) \ - : isGV((c)->blk_loop.itervar_u.gv) \ - ? &GvSV((c)->blk_loop.itervar_u.gv) \ - : (SV **)&(c)->blk_loop.itervar_u.gv) \ - : (SV**)NULL) +#define CxITERVAR(c) \ + (CxPADLOOP(c) \ + ? (c)->blk_loop.itervar_u.svp \ + : ((c)->cx_type & CXp_FOR_GV) \ + ? &GvSV((c)->blk_loop.itervar_u.gv) \ + : (SV **)&(c)->blk_loop.itervar_u.gv) #define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop)) #define CxLABEL_len(c,len) (0 + CopLABEL_len((c)->blk_oldcop, len)) #define CxLABEL_len_flags(c,len,flags) (0 + CopLABEL_len_flags((c)->blk_oldcop, len, flags)) #define CxHASARGS(c) (((c)->cx_type & CXp_HASARGS) == CXp_HASARGS) + +/* CxLVAL(): the lval flags of the call site: the relevant flag bits from + * the op_private field of the calling pp_entersub (or its caller's caller + * if the caller's lvalue context isn't known): + * OPpLVAL_INTRO: sub used in lvalue context, e.g. f() = 1; + * OPpENTERSUB_INARGS (in conjunction with OPpLVAL_INTRO): the + * function is being used as a sub arg or as a referent, e.g. + * g(...,f(),...) or $r = \f() + * OPpDEREF: 2-bit mask indicating e.g. f()->[0]. + * Note the contrast with CvLVALUE(), which is a property of the sub + * rather than the call site. + */ #define CxLVAL(c) (0 + ((c)->blk_u16 & 0xff)) -/* POPSUB has already been performed on this context frame */ -#define CxPOPSUB_DONE 0x100 - - -#define PUSHLOOP_PLAIN(cx, s) \ - cx->blk_loop.resetsp = s - PL_stack_base; \ - cx->blk_loop.my_op = cLOOP; \ - cx->blk_loop.state_u.ary.ary = NULL; \ - cx->blk_loop.state_u.ary.ix = 0; \ - cx->blk_loop.itervar_u.svp = NULL; - -#define PUSHLOOP_FOR(cx, ivar, s) \ - cx->blk_loop.resetsp = s - PL_stack_base; \ - cx->blk_loop.my_op = cLOOP; \ - cx->blk_loop.state_u.ary.ary = NULL; \ - cx->blk_loop.state_u.ary.ix = 0; \ - cx->blk_loop.itervar_u.svp = (SV**)(ivar); - -#define POPLOOP(cx) \ - if (CxTYPE(cx) == CXt_LOOP_LAZYSV) { \ - SvREFCNT_dec_NN(cx->blk_loop.state_u.lazysv.cur); \ - SvREFCNT_dec_NN(cx->blk_loop.state_u.lazysv.end); \ - } \ - if (CxTYPE(cx) == CXt_LOOP_FOR) \ - SvREFCNT_dec(cx->blk_loop.state_u.ary.ary); + + /* given/when context */ struct block_givwhen { OP *leave_op; + SV *defsv_save; /* the original $_ */ }; -#define PUSHGIVEN(cx) \ - cx->blk_givwhen.leave_op = cLOGOP->op_other; -#define PUSHWHEN PUSHGIVEN /* context common to subroutines, evals and loops */ struct block { U8 blku_type; /* what kind of context this is */ U8 blku_gimme; /* is this block running in list context? */ U16 blku_u16; /* used by block_sub and block_eval (so far) */ - I32 blku_oldsp; /* stack pointer to copy stuff down to */ - COP * blku_oldcop; /* old curcop pointer */ + I32 blku_oldsaveix; /* saved PL_savestack_ix */ + /* all the fields above must be aligned with same-sized fields as sbu */ + I32 blku_oldsp; /* current sp floor: where nextstate pops to */ I32 blku_oldmarksp; /* mark stack index */ - I32 blku_oldscopesp; /* scope stack index */ + COP * blku_oldcop; /* old curcop pointer */ PMOP * blku_oldpm; /* values of pattern match vars */ + SSize_t blku_old_tmpsfloor; /* saved PL_tmps_floor */ + I32 blku_oldscopesp; /* scope stack index */ union { struct block_sub blku_sub; @@ -844,59 +738,35 @@ struct block { #define blk_oldpm cx_u.cx_blk.blku_oldpm #define blk_gimme cx_u.cx_blk.blku_gimme #define blk_u16 cx_u.cx_blk.blku_u16 +#define blk_oldsaveix cx_u.cx_blk.blku_oldsaveix +#define blk_old_tmpsfloor cx_u.cx_blk.blku_old_tmpsfloor #define blk_sub cx_u.cx_blk.blk_u.blku_sub #define blk_format cx_u.cx_blk.blk_u.blku_format #define blk_eval cx_u.cx_blk.blk_u.blku_eval #define blk_loop cx_u.cx_blk.blk_u.blku_loop #define blk_givwhen cx_u.cx_blk.blk_u.blku_givwhen -#define DEBUG_CX(action) \ +#define CX_DEBUG(cx, action) \ DEBUG_l( \ - Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) at %s:%d\n", \ + Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) (save %ld,%ld) at %s:%d\n",\ (long)cxstack_ix, \ action, \ - PL_block_type[CxTYPE(&cxstack[cxstack_ix])], \ + PL_block_type[CxTYPE(cx)], \ (long)PL_scopestack_ix, \ - (long)(cxstack[cxstack_ix].blk_oldscopesp), \ + (long)(cx->blk_oldscopesp), \ + (long)PL_savestack_ix, \ + (long)(cx->blk_oldsaveix), \ __FILE__, __LINE__)); -/* Enter a block. */ -#define PUSHBLOCK(cx,t,sp) CXINC, cx = &cxstack[cxstack_ix], \ - cx->cx_type = t, \ - cx->blk_oldsp = sp - PL_stack_base, \ - cx->blk_oldcop = PL_curcop, \ - cx->blk_oldmarksp = PL_markstack_ptr - PL_markstack, \ - cx->blk_oldscopesp = PL_scopestack_ix, \ - cx->blk_oldpm = PL_curpm, \ - cx->blk_gimme = (U8)gimme; \ - DEBUG_CX("PUSH"); - -/* Exit a block (RETURN and LAST). */ -#define POPBLOCK(cx,pm) \ - DEBUG_CX("POP"); \ - cx = &cxstack[cxstack_ix--], \ - newsp = PL_stack_base + cx->blk_oldsp, \ - PL_curcop = cx->blk_oldcop, \ - PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \ - PL_scopestack_ix = cx->blk_oldscopesp, \ - pm = cx->blk_oldpm, \ - gimme = cx->blk_gimme; - -/* Continue a block elsewhere (NEXT and REDO). */ -#define TOPBLOCK(cx) \ - DEBUG_CX("TOP"); \ - cx = &cxstack[cxstack_ix], \ - PL_stack_sp = PL_stack_base + cx->blk_oldsp, \ - PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \ - PL_scopestack_ix = cx->blk_oldscopesp, \ - PL_curpm = cx->blk_oldpm; + /* substitution context */ struct subst { - U8 sbu_type; /* what kind of context this is */ + U8 sbu_type; /* same as blku_type */ U8 sbu_rflags; - U16 sbu_rxtainted; /* matches struct block */ - I32 sbu_oldsave; + U16 sbu_rxtainted; + I32 sbu_oldsaveix; /* same as blku_oldsaveix */ + /* all the fields above must be aligned with same-sized fields as blk_u */ SSize_t sbu_iters; SSize_t sbu_maxiters; char * sbu_orig; @@ -911,7 +781,6 @@ struct subst { #define sb_iters cx_u.cx_subst.sbu_iters #define sb_maxiters cx_u.cx_subst.sbu_maxiters #define sb_rflags cx_u.cx_subst.sbu_rflags -#define sb_oldsave cx_u.cx_subst.sbu_oldsave #define sb_rxtainted cx_u.cx_subst.sbu_rxtainted #define sb_orig cx_u.cx_subst.sbu_orig #define sb_dstr cx_u.cx_subst.sbu_dstr @@ -923,11 +792,11 @@ struct subst { #define sb_rx cx_u.cx_subst.sbu_rx #ifdef PERL_CORE -# define PUSHSUBST(cx) CXINC, cx = &cxstack[cxstack_ix], \ +# define CX_PUSHSUBST(cx) CXINC, cx = CX_CUR(), \ + cx->blk_oldsaveix = oldsave, \ cx->sb_iters = iters, \ cx->sb_maxiters = maxiters, \ cx->sb_rflags = r_flags, \ - cx->sb_oldsave = oldsave, \ cx->sb_rxtainted = rxtainted, \ cx->sb_orig = orig, \ cx->sb_dstr = dstr, \ @@ -942,10 +811,16 @@ struct subst { (void)ReREFCNT_inc(rx); \ SvREFCNT_inc_void_NN(targ) -# define POPSUBST(cx) cx = &cxstack[cxstack_ix--]; \ +# define CX_POPSUBST(cx) \ + STMT_START { \ + REGEXP *re; \ + assert(CxTYPE(cx) == CXt_SUBST); \ rxres_free(&cx->sb_rxres); \ - ReREFCNT_dec(cx->sb_rx); \ - SvREFCNT_dec_NN(cx->sb_targ) + re = cx->sb_rx; \ + cx->sb_rx = NULL; \ + ReREFCNT_dec(re); \ + SvREFCNT_dec_NN(cx->sb_targ); \ + } STMT_END #endif #define CxONCE(cx) ((cx)->cx_type & CXp_ONCE) @@ -961,7 +836,7 @@ struct context { /* If you re-order these, there is also an array of uppercase names in perl.h and a static array of context names in pp_ctl.c */ #define CXTYPEMASK 0xf -#define CXt_NULL 0 +#define CXt_NULL 0 /* currently only used for sort BLOCK */ #define CXt_WHEN 1 #define CXt_BLOCK 2 /* When micro-optimising :-) keep GIVEN next to the LOOPs, as these 5 share a @@ -969,25 +844,24 @@ struct context { The first 4 don't have a 'case' in at least one switch statement in pp_ctl.c */ #define CXt_GIVEN 3 -/* This is first so that CXt_LOOP_FOR|CXt_LOOP_LAZYIV is CXt_LOOP_LAZYIV */ -#define CXt_LOOP_FOR 4 -#define CXt_LOOP_PLAIN 5 -#define CXt_LOOP_LAZYSV 6 -#define CXt_LOOP_LAZYIV 7 -#define CXt_SUB 8 -#define CXt_FORMAT 9 -#define CXt_EVAL 10 -#define CXt_SUBST 11 -/* SUBST doesn't feature in all switch statements. */ -/* private flags for CXt_SUB and CXt_NULL - However, this is checked in many places which do not check the type, so - this bit needs to be kept clear for most everything else. For reasons I - haven't investigated, it can coexist with CXp_FOR_DEF */ -#define CXp_MULTICALL 0x10 /* part of a multicall (so don't - tear down context on exit). */ +/* be careful of the ordering of these five. Macros like CxTYPE_is_LOOP, + * CxFOREACH compare ranges */ +#define CXt_LOOP_ARY 4 /* for (@ary) {} */ +#define CXt_LOOP_LAZYSV 5 /* for ('a'..'z') {} */ +#define CXt_LOOP_LAZYIV 6 /* for (1..9) {} */ +#define CXt_LOOP_LIST 7 /* for (1,2,3) {} */ +#define CXt_LOOP_PLAIN 8 /* {} */ + +#define CXt_SUB 9 +#define CXt_FORMAT 10 +#define CXt_EVAL 11 +#define CXt_SUBST 12 +/* SUBST doesn't feature in all switch statements. */ /* private flags for CXt_SUB and CXt_FORMAT */ +#define CXp_MULTICALL 0x10 /* part of a multicall (so don't tear down + context on exit). (not CXt_FORMAT) */ #define CXp_HASARGS 0x20 #define CXp_SUB_RE 0x40 /* code called within regex, i.e. (?{}) */ #define CXp_SUB_RE_FAKE 0x80 /* fake sub CX for (?{}) in current scope */ @@ -997,24 +871,29 @@ struct context { #define CXp_TRYBLOCK 0x40 /* eval{}, not eval'' or similar */ /* private flags for CXt_LOOP */ + +/* this is only set in conjunction with CXp_FOR_GV */ #define CXp_FOR_DEF 0x10 /* foreach using $_ */ +/* these 3 are mutually exclusive */ #define CXp_FOR_LVREF 0x20 /* foreach using \$var */ -#define CxPADLOOP(c) ((c)->blk_loop.my_op->op_targ) +#define CXp_FOR_GV 0x40 /* foreach using package var */ +#define CXp_FOR_PAD 0x80 /* foreach using lexical var */ + +#define CxPADLOOP(c) ((c)->cx_type & CXp_FOR_PAD) /* private flags for CXt_SUBST */ #define CXp_ONCE 0x10 /* What was sbu_once in struct subst */ #define CxTYPE(c) ((c)->cx_type & CXTYPEMASK) -#define CxTYPE_is_LOOP(c) (((c)->cx_type & 0xC) == 0x4) -#define CxMULTICALL(c) (((c)->cx_type & CXp_MULTICALL) \ - == CXp_MULTICALL) +#define CxTYPE_is_LOOP(c) ( CxTYPE(cx) >= CXt_LOOP_ARY \ + && CxTYPE(cx) <= CXt_LOOP_PLAIN) +#define CxMULTICALL(c) ((c)->cx_type & CXp_MULTICALL) #define CxREALEVAL(c) (((c)->cx_type & (CXTYPEMASK|CXp_REAL)) \ == (CXt_EVAL|CXp_REAL)) #define CxTRYBLOCK(c) (((c)->cx_type & (CXTYPEMASK|CXp_TRYBLOCK)) \ == (CXt_EVAL|CXp_TRYBLOCK)) -#define CxFOREACH(c) (CxTYPE_is_LOOP(c) && CxTYPE(c) != CXt_LOOP_PLAIN) -#define CxFOREACHDEF(c) ((CxTYPE_is_LOOP(c) && CxTYPE(c) != CXt_LOOP_PLAIN) \ - && ((c)->cx_type & CXp_FOR_DEF)) +#define CxFOREACH(c) ( CxTYPE(cx) >= CXt_LOOP_ARY \ + && CxTYPE(cx) <= CXt_LOOP_LIST) #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc())) @@ -1179,6 +1058,9 @@ typedef struct stackinfo PERL_SI; #define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #define IN_PERL_RUNTIME (PL_curcop != &PL_compiling) + + + /* =head1 Multicall Functions @@ -1200,12 +1082,8 @@ See L. */ #define dMULTICALL \ - SV **newsp; /* set by POPBLOCK */ \ - PERL_CONTEXT *cx; \ - CV *multicall_cv; \ - OP *multicall_cop; \ - bool multicall_oldcatch; \ - U8 hasargs = 0 /* used by PUSHSUB */ + OP *multicall_cop; \ + bool multicall_oldcatch #define PUSH_MULTICALL(the_cv) \ PUSH_MULTICALL_FLAGS(the_cv, 0) @@ -1215,25 +1093,22 @@ See L. #define PUSH_MULTICALL_FLAGS(the_cv, flags) \ STMT_START { \ + PERL_CONTEXT *cx; \ CV * const _nOnclAshIngNamE_ = the_cv; \ CV * const cv = _nOnclAshIngNamE_; \ PADLIST * const padlist = CvPADLIST(cv); \ - ENTER; \ multicall_oldcatch = CATCH_GET; \ - SAVETMPS; SAVEVPTR(PL_op); \ CATCH_SET(TRUE); \ PUSHSTACKi(PERLSI_MULTICALL); \ - PUSHBLOCK(cx, (CXt_SUB|CXp_MULTICALL|flags), PL_stack_sp); \ - PUSHSUB(cx); \ + cx = cx_pushblock((CXt_SUB|CXp_MULTICALL|flags), (U8)gimme, \ + PL_stack_sp, PL_savestack_ix); \ + cx_pushsub(cx, cv, NULL, 0); \ + SAVEOP(); \ if (!(flags & CXp_SUB_RE_FAKE)) \ CvDEPTH(cv)++; \ - if (CvDEPTH(cv) >= 2) { \ - PERL_STACK_OVERFLOW_CHECK(); \ + if (CvDEPTH(cv) >= 2) \ Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \ - } \ - SAVECOMPPAD(); \ PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \ - multicall_cv = cv; \ multicall_cop = CvSTART(cv); \ } STMT_END @@ -1245,14 +1120,16 @@ See L. #define POP_MULTICALL \ STMT_START { \ - cx = &cxstack[cxstack_ix]; \ - if (! ((CvDEPTH(multicall_cv) = cx->blk_sub.olddepth)) ) { \ - LEAVESUB(multicall_cv); \ - } \ - POPBLOCK(cx,PL_curpm); \ + PERL_CONTEXT *cx; \ + cx = CX_CUR(); \ + CX_LEAVE_SCOPE(cx); \ + cx_popsub_common(cx); \ + gimme = cx->blk_gimme; \ + PERL_UNUSED_VAR(gimme); /* for API */ \ + cx_popblock(cx); \ + CX_POP(cx); \ POPSTACK; \ CATCH_SET(multicall_oldcatch); \ - LEAVE; \ SPAGAIN; \ } STMT_END @@ -1264,22 +1141,16 @@ See L. CV * const _nOnclAshIngNamE_ = the_cv; \ CV * const cv = _nOnclAshIngNamE_; \ PADLIST * const padlist = CvPADLIST(cv); \ - cx = &cxstack[cxstack_ix]; \ - assert(cx->cx_type & CXp_MULTICALL); \ - if (! ((CvDEPTH(multicall_cv) = cx->blk_sub.olddepth)) ) { \ - LEAVESUB(multicall_cv); \ - } \ + PERL_CONTEXT *cx = CX_CUR(); \ + assert(CxMULTICALL(cx)); \ + cx_popsub_common(cx); \ cx->cx_type = (CXt_SUB|CXp_MULTICALL|flags); \ - PUSHSUB(cx); \ + cx_pushsub(cx, cv, NULL, 0); \ if (!(flags & CXp_SUB_RE_FAKE)) \ CvDEPTH(cv)++; \ - if (CvDEPTH(cv) >= 2) { \ - PERL_STACK_OVERFLOW_CHECK(); \ + if (CvDEPTH(cv) >= 2) \ Perl_pad_push(aTHX_ padlist, CvDEPTH(cv)); \ - } \ - SAVECOMPPAD(); \ PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \ - multicall_cv = cv; \ multicall_cop = CvSTART(cv); \ } STMT_END /* diff --git a/cpan/.gitignore b/cpan/.gitignore index 0cf6e5c..378f55e 100644 --- a/cpan/.gitignore +++ b/cpan/.gitignore @@ -6,7 +6,5 @@ pm_to_blib Makefile Makefile.PL ppport.h -Time-HiRes/*.inc -Time-HiRes/xdefine Win32API-File/cFile_pc_to_blib AutoLoader/t/auto-* diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm index 6a125d4..3dade96 100644 --- a/cpan/Encode/Encode.pm +++ b/cpan/Encode/Encode.pm @@ -1,10 +1,10 @@ # -# $Id: Encode.pm,v 2.78 2015/09/24 02:18:32 dankogai Exp $ +# $Id: Encode.pm,v 2.80 2016/01/25 14:54:01 dankogai Exp $ # package Encode; use strict; use warnings; -our $VERSION = sprintf "%d.%02d", q$Revision: 2.78 $ =~ /(\d+)/g; +our $VERSION = sprintf "%d.%02d", q$Revision: 2.80 $ =~ /(\d+)/g; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; use XSLoader (); XSLoader::load( __PACKAGE__, $VERSION ); diff --git a/cpan/Encode/Encode.xs b/cpan/Encode/Encode.xs index 81b5dea..cd7f7d1 100644 --- a/cpan/Encode/Encode.xs +++ b/cpan/Encode/Encode.xs @@ -1,5 +1,5 @@ /* - $Id: Encode.xs,v 2.34 2015/09/15 13:53:27 dankogai Exp dankogai $ + $Id: Encode.xs,v 2.35 2016/01/22 06:33:07 dankogai Exp $ */ #define PERL_NO_GET_CONTEXT @@ -20,7 +20,7 @@ encode_method(). 1 is recommended. 2 restores NI-S original */ #define ENCODE_XS_USEFP 1 -#define UNIMPLEMENTED(x,y) y x (SV *sv, char *encoding) { \ +#define UNIMPLEMENTED(x,y) static y x (SV *sv, char *encoding) { \ Perl_croak_nocontext("panic_unimplemented"); \ PERL_UNUSED_VAR(sv); \ PERL_UNUSED_VAR(encoding); \ @@ -42,7 +42,7 @@ UNIMPLEMENTED(_encoded_bytes_to_utf8, I32) UTF8_ALLOW_NON_CONTINUATION | \ UTF8_ALLOW_LONG)) -void +static void Encode_XSEncoding(pTHX_ encode_t * enc) { dSP; @@ -66,7 +66,7 @@ Encode_XSEncoding(pTHX_ encode_t * enc) SvREFCNT_dec(sv); } -void +static void call_failure(SV * routine, U8 * done, U8 * dest, U8 * orig) { /* Exists for breakpointing */ diff --git a/cpan/Encode/Makefile.PL b/cpan/Encode/Makefile.PL index 8f73677..e0372ca 100644 --- a/cpan/Encode/Makefile.PL +++ b/cpan/Encode/Makefile.PL @@ -1,5 +1,5 @@ # -# $Id: Makefile.PL,v 2.16 2015/09/24 02:19:21 dankogai Exp dankogai $ +# $Id: Makefile.PL,v 2.16 2015/09/24 02:19:21 dankogai Exp $ # use 5.007003; use strict; diff --git a/cpan/Encode/Unicode/Unicode.pm b/cpan/Encode/Unicode/Unicode.pm index 316768e..7dec3e3 100644 --- a/cpan/Encode/Unicode/Unicode.pm +++ b/cpan/Encode/Unicode/Unicode.pm @@ -4,7 +4,7 @@ use strict; use warnings; no warnings 'redefine'; -our $VERSION = do { my @r = ( q$Revision: 2.14 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; +our $VERSION = do { my @r = ( q$Revision: 2.15 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; use XSLoader; XSLoader::load( __PACKAGE__, $VERSION ); @@ -178,7 +178,9 @@ When BE or LE is omitted during decode(), it checks if BOM is at the beginning of the string; if one is found, the endianness is set to what the BOM says. -=item Default Byte Order +=item * + +Default Byte Order When no BOM is found, Encode 2.76 and blow croaked. Since Encode 2.77, it falls back to BE accordingly to RFC2781 and the Unicode diff --git a/cpan/Encode/Unicode/Unicode.xs b/cpan/Encode/Unicode/Unicode.xs index 42f215c..3bad2ad 100644 --- a/cpan/Encode/Unicode/Unicode.xs +++ b/cpan/Encode/Unicode/Unicode.xs @@ -1,5 +1,5 @@ /* - $Id: Unicode.xs,v 2.13 2015/09/15 13:53:27 dankogai Exp dankogai $ + $Id: Unicode.xs,v 2.14 2016/01/22 06:33:07 dankogai Exp $ */ #define PERL_NO_GET_CONTEXT @@ -89,7 +89,7 @@ enc_unpack(pTHX_ U8 **sp, U8 *e, STRLEN size, U8 endian) return v; } -void +static void enc_pack(pTHX_ SV *result, STRLEN size, U8 endian, UV value) { U8 *d = (U8 *) SvPV_nolen(result); diff --git a/cpan/Encode/lib/Encode/Alias.pm b/cpan/Encode/lib/Encode/Alias.pm index c0945be..04ad496 100644 --- a/cpan/Encode/lib/Encode/Alias.pm +++ b/cpan/Encode/lib/Encode/Alias.pm @@ -2,7 +2,7 @@ package Encode::Alias; use strict; use warnings; no warnings 'redefine'; -our $VERSION = do { my @r = ( q$Revision: 2.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; +our $VERSION = do { my @r = ( q$Revision: 2.20 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; use Exporter 'import'; @@ -139,7 +139,7 @@ sub init_aliases { define_alias( qr/^UCS-?2-?LE$/i => '"UCS-2LE"' ); define_alias( qr/^UCS-?2-?(BE)?$/i => '"UCS-2BE"', - qr/^UCS-?4-?(BE|LE)?$/i => 'uc("UTF-32$1")', + qr/^UCS-?4-?(BE|LE|)?$/i => 'uc("UTF-32$1")', qr/^iso-10646-1$/i => '"UCS-2BE"' ); define_alias( diff --git a/cpan/Encode/lib/Encode/MIME/Header.pm b/cpan/Encode/lib/Encode/MIME/Header.pm index 91dd03c..ba6adba 100644 --- a/cpan/Encode/lib/Encode/MIME/Header.pm +++ b/cpan/Encode/lib/Encode/MIME/Header.pm @@ -3,7 +3,7 @@ use strict; use warnings; no warnings 'redefine'; -our $VERSION = do { my @r = ( q$Revision: 2.17 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; +our $VERSION = do { my @r = ( q$Revision: 2.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; use Encode qw(find_encoding encode_utf8 decode_utf8); use MIME::Base64; use Carp; @@ -39,10 +39,9 @@ sub perlio_ok { 0 } sub decode($$;$) { use utf8; my ( $obj, $str, $chk ) = @_; - # zap spaces between encoded words $str =~ s/\?=\s+=\?/\?==\?/gos; - + # multi-line header to single line $str =~ s/(?:\r\n|[\r\n])[ \t]//gos; @@ -108,20 +107,20 @@ my $re_encoded_word = qr{ my $re_especials = qr{$re_encoded_word|$especials}xo; +# cf: +# https://rt.cpan.org/Ticket/Display.html?id=88717 +# https://www.ietf.org/rfc/rfc0822.txt +my $re_linear_white_space = qr{(?:[ \t]|\r\n?)}; + sub encode($$;$) { my ( $obj, $str, $chk ) = @_; my @line = (); for my $line ( split /\r\n|[\r\n]/o, $str ) { my ( @word, @subline ); - for my $word ( split /($re_especials)/o, $line ) { - if ( $word =~ /[^\x00-\x7f]/o - or $word =~ /^$re_encoded_word$/o ) - { - push @word, $obj->_encode($word); - } - else { - push @word, $word; - } + if ($line =~ /\A([\w\-]+:\s+)(.*)\z/o) { + push @word, $1, $obj->_encode($2); # "X-Header-Name: ..." + } else { + push @word, $obj->_encode($line); # anything else } my $subline = ''; for my $word (@word) { @@ -136,7 +135,7 @@ sub encode($$;$) { $subline .= $word; } length($subline) and push @subline, $subline; - push @line, join( "\n " => @subline ); + push @line, join( "\n " => grep !/^$/, @subline ); } $_[1] = '' if $chk; return (substr($str, 0, 0) . join( "\n", @line )); diff --git a/cpan/Encode/t/encoding-locale.t b/cpan/Encode/t/encoding-locale.t new file mode 100644 index 0000000..1153b8e --- /dev/null +++ b/cpan/Encode/t/encoding-locale.t @@ -0,0 +1,25 @@ +# +# This test aims to detect (using CPAN Testers) platforms where the locale +# encoding detection doesn't work. +# + +use strict; +use warnings; + +use Test::More tests => 3; + +use encoding (); +use Encode qw; + +my $locale_encoding = encoding::_get_locale_encoding; + +SKIP: { + is(ref $locale_encoding, '', '_get_locale_encoding returns a scalar value') + or skip 'no locale encoding found', 1; + + my $enc = find_encoding($locale_encoding); + ok(defined $enc, 'encoding returned is supported') + or diag("Encoding: ", explain($locale_encoding)); + isa_ok($enc, 'Encode::Encoding'); + note($locale_encoding, ' => ', $enc->name); +} diff --git a/cpan/Encode/t/mime-header.t b/cpan/Encode/t/mime-header.t index 83a4448..b031aa4 100644 --- a/cpan/Encode/t/mime-header.t +++ b/cpan/Encode/t/mime-header.t @@ -1,5 +1,5 @@ # -# $Id: mime-header.t,v 2.6 2013/08/14 02:29:54 dankogai Exp $ +# $Id: mime-header.t,v 2.8 2016/01/25 14:54:13 dankogai Exp dankogai $ # This script is written in utf8 # BEGIN { @@ -73,28 +73,28 @@ Subject: 漢字、カタカナ、ひらがなを含む、非常に長いタイ EOS my $bheader =<<'EOS'; -From:=?UTF-8?B?IOWwj+mjvCDlvL4g?= -To: dankogai@dan.co.jp (=?UTF-8?B?5bCP6aO8?==Kogai,=?UTF-8?B?IOW8vg==?== - Dan) -Subject: - =?UTF-8?B?IOa8ouWtl+OAgeOCq+OCv+OCq+ODiuOAgeOBsuOCieOBjOOBquOCkuWQq+OCgA==?= +From: =?UTF-8?B?5bCP6aO8IOW8viA8ZGFua29nYWlAZGFuLmNvLmpwPg==?= +To: =?UTF-8?B?ZGFua29nYWlAZGFuLmNvLmpwICjlsI/po7w9S29nYWksIOW8vj1EYW4p?= +Subject: + =?UTF-8?B?5ryi5a2X44CB44Kr44K/44Kr44OK44CB44Gy44KJ44GM44Gq44KS5ZCr44KA?= =?UTF-8?B?44CB6Z2e5bi444Gr6ZW344GE44K/44Kk44OI44Or6KGM44GM5LiA5L2T5YWo?= =?UTF-8?B?5L2T44Gp44Gu44KI44GG44Gr44GX44GmRW5jb2Rl44GV44KM44KL44Gu44GL?= =?UTF-8?B?77yf?= EOS my $qheader=<<'EOS'; -From:=?UTF-8?Q?=20=E5=B0=8F=E9=A3=BC=20=E5=BC=BE=20?= -To: dankogai@dan.co.jp (=?UTF-8?Q?=E5=B0=8F=E9=A3=BC?==Kogai, - =?UTF-8?Q?=20=E5=BC=BE?==Dan) -Subject: - =?UTF-8?Q?=20=E6=BC=A2=E5=AD=97=E3=80=81=E3=82=AB=E3=82=BF=E3=82=AB?= - =?UTF-8?Q?=E3=83=8A=E3=80=81=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=82=92?= - =?UTF-8?Q?=E5=90=AB=E3=82=80=E3=80=81=E9=9D=9E=E5=B8=B8=E3=81=AB=E9=95=B7?= - =?UTF-8?Q?=E3=81=84=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E8=A1=8C=E3=81=8C?= - =?UTF-8?Q?=E4=B8=80=E4=BD=93=E5=85=A8=E4=BD=93=E3=81=A9=E3=81=AE=E3=82=88?= - =?UTF-8?Q?=E3=81=86=E3=81=AB=E3=81=97=E3=81=A6Encode=E3=81=95?= - =?UTF-8?Q?=E3=82=8C=E3=82=8B=E3=81=AE=E3=81=8B=EF=BC=9F?= +From: =?UTF-8?Q?=E5=B0=8F=E9=A3=BC=20=E5=BC=BE=20=3Cdankogai=40?= + =?UTF-8?Q?dan=2Eco=2Ejp=3E?= +To: =?UTF-8?Q?dankogai=40dan=2Eco=2Ejp=20=28?= + =?UTF-8?Q?=E5=B0=8F=E9=A3=BC=3DKogai=2C=20=E5=BC=BE=3DDan?= =?UTF-8?Q?=29?= +Subject: + =?UTF-8?Q?=E6=BC=A2=E5=AD=97=E3=80=81=E3=82=AB=E3=82=BF=E3=82=AB=E3=83=8A?= + =?UTF-8?Q?=E3=80=81=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=82=92=E5=90=AB?= + =?UTF-8?Q?=E3=82=80=E3=80=81=E9=9D=9E=E5=B8=B8=E3=81=AB=E9=95=B7=E3=81=84?= + =?UTF-8?Q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E8=A1=8C=E3=81=8C=E4=B8=80?= + =?UTF-8?Q?=E4=BD=93=E5=85=A8=E4=BD=93=E3=81=A9=E3=81=AE=E3=82=88=E3=81=86?= + =?UTF-8?Q?=E3=81=AB=E3=81=97=E3=81=A6Encode=E3=81=95=E3=82=8C?= + =?UTF-8?Q?=E3=82=8B=E3=81=AE=E3=81=8B=EF=BC=9F?= EOS is(Encode::decode('MIME-Header', $bheader), $dheader, "decode B"); @@ -103,8 +103,9 @@ is(Encode::encode('MIME-B', $dheader)."\n", $bheader, "encode B"); is(Encode::encode('MIME-Q', $dheader)."\n", $qheader, "encode Q"); $dheader = "What is =?UTF-8?B?w4RwZmVs?= ?"; -$bheader = "What is =?UTF-8?B?PT9VVEYtOD9CP3c0UndabVZzPz0=?= ?"; -$qheader = "What is =?UTF-8?Q?=3D=3FUTF=2D8=3FB=3Fw4RwZmVs=3F=3D?= ?"; +$bheader = "=?UTF-8?B?V2hhdCBpcyA9P1VURi04P0I/dzRSd1ptVnM/PSA/?="; +$qheader = "=?UTF-8?Q?What=20is=20=3D=3FUTF=2D8=3FB=3Fw4R?=" + . "\n " . "=?UTF-8?Q?wZmVs=3F=3D=20=3F?="; is(Encode::encode('MIME-B', $dheader), $bheader, "Double decode B"); is(Encode::encode('MIME-Q', $dheader), $qheader, "Double decode Q"); { @@ -127,5 +128,5 @@ is(Encode::encode('MIME-Q', $rt42627), 'MIME-Q encoding does not truncate trailing zeros'); # RT87831 -is(Encode::encode('MIME-Header', '0'), '0', 'RT87831'); +is(Encode::encode('MIME-Header', '0'), '=?UTF-8?B?MA==?=', 'RT87831'); __END__; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index 6c1898d..9184471 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'; +our $VERSION = '7.10_01'; 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 f856657..3bb49d2 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'; +our $VERSION = '7.10_01'; 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 c56f539..43d554e 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'; +our $VERSION = '7.10_01'; 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 c58e0a5..fa5f72c 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'; +our $VERSION = '7.10_01'; 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 2e0739d..ec3a2fc 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'; +our $VERSION = '7.10_01'; 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 570ea72..129ad9e 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'; +our $VERSION = '7.10_01'; use Carp; use File::Spec; @@ -202,19 +202,28 @@ Returns true if C<<$self->make>> is the given type; possibilities are: =cut +my %maketype2true; +# undocumented - so t/cd.t can still do its thing +sub _clear_maketype_cache { %maketype2true = () } + sub is_make_type { my($self, $type) = @_; + return $maketype2true{$type} if defined $maketype2true{$type}; (undef, undef, my $make_basename) = $self->splitpath($self->make); - return 1 if $make_basename =~ /\b$type\b/i; # executable's filename - return 0 if $make_basename =~ /\b(dmake|nmake)\b/i; # Never fall through for dmake/nmake + return $maketype2true{$type} = 1 + if $make_basename =~ /\b$type\b/i; # executable's filename + return $maketype2true{$type} = 0 + if $make_basename =~ /\b[gdn]make\b/i; # Never fall through for dmake/nmake/gmake # now have to run with "-v" and guess my $redirect = $self->can_redirect_error ? '2>&1' : ''; my $make = $self->make || $self->{MAKE}; my $minus_v = `"$make" -v $redirect`; - return 1 if $type eq 'gmake' and $minus_v =~ /GNU make/i; - return 1 if $type eq 'bsdmake' + return $maketype2true{$type} = 1 + if $type eq 'gmake' and $minus_v =~ /GNU make/i; + return $maketype2true{$type} = 1 + if $type eq 'bsdmake' and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im; - 0; # it wasn't whatever you asked + $maketype2true{$type} = 0; # it wasn't whatever you asked } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 847d833..801b035 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'; +our $VERSION = '7.10_01'; =item os_flavor diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index 72cccb8..a9331ff 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'; +our $VERSION = '7.10_01'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index ab3e9d8..c6ffc59 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'; +our $VERSION = '7.10_01'; 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 8d189b5..cc52f1d 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'; +our $VERSION = '7.10_01'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index 27983f4..820ffd1 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'; +our $VERSION = '7.10_01'; 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 a236d11..0b89a15 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'; +our $VERSION = '7.10_01'; 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 2730ee3..2c64ac4 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'; +our $VERSION = '7.10_01'; 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 588c7ee..71c4bd5 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'; +our $VERSION = '7.10_01'; 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 9ff061a..2350482 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'; +our $VERSION = '7.10_01'; 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 535b1f3..e24a61b 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'; +$VERSION = '7.10_01'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] require ExtUtils::MM_Any; @@ -317,8 +317,8 @@ sub const_cccmd { =item const_config (o) -Defines a couple of constants in the Makefile that are imported from -%Config. +Sets SHELL if needed, then defines a couple of constants in the Makefile +that are imported from %Config. =cut @@ -326,7 +326,8 @@ sub const_config { # --- Constants Sections --- my($self) = shift; - my @m = <<"END"; + my @m = $self->specify_shell(); # Usually returns empty string + push @m, <<"END"; # These definitions are from config.sh (via $INC{'Config.pm'}). # They may have been overridden via Makefile.PL or on the command line. @@ -3176,6 +3177,16 @@ MAKE_FRAG return $m; } +=item specify_shell + +Specify SHELL if needed - not done on Unix. + +=cut + +sub specify_shell { + return ''; +} + =item quote_paren Backslashes parentheses C<()> in command line arguments. diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index 9b2f964..fab18df 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'; +our $VERSION = '7.10_01'; 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 77fe4f9..57d5e32 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'; +our $VERSION = '7.10_01'; 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 47ce479..1c6921c 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'; +our $VERSION = '7.10_01'; $ENV{EMXSHELL} = 'sh'; # to run `commands` @@ -232,6 +232,17 @@ sub platform_constants { return $make_frag; } +=item specify_shell + +Set SHELL to $ENV{COMSPEC} only if make is type 'gmake'. + +=cut + +sub specify_shell { + my $self = shift; + return '' unless $self->is_make_type('gmake'); + "\nSHELL = $ENV{COMSPEC}\n"; +} =item constants diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index f36e23f..2c31d7c 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'; +our $VERSION = '7.10_01'; 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 a100b0b..3973e37 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'; +our $VERSION = '7.10_01'; our @ISA = qw(ExtUtils::MM); { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index 4f9d46f..f9fb8fe 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'; +our $VERSION = '7.10_01'; $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 d469870..3b96836 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'; +our $VERSION = '7.10_01'; use Config (); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod index ac14d0d..d3aa100 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '7.10'; +our $VERSION = '7.10_01'; 1; __END__ diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod index d5679a3..7e53baa 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '7.10'; +our $VERSION = '7.10_01'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm index 07743f0..35cd2ab 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm @@ -15,7 +15,7 @@ use strict; use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); -$VERSION = '7.10'; +$VERSION = '7.10_01'; $CLASS = 'version'; { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm index be083b3..a0213b1 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm @@ -10,7 +10,7 @@ use strict; use vars qw($VERSION $CLASS $STRICT $LAX); -$VERSION = '7.10'; +$VERSION = '7.10_01'; #--------------------------------------------------------------------------# # Version regexp components diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm index 74c9199..a393329 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'; +our $VERSION = '7.10_01'; require Exporter; our @ISA = ('Exporter'); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm index 09e058e..b80310e 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'; +our $VERSION = '7.10_01'; sub Mksymlists { my(%spec) = @_; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm index 74bce3d..6f5d870 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'; +our $VERSION = '7.10_01'; use Cwd; use File::Spec; diff --git a/cpan/ExtUtils-MakeMaker/t/cd.t b/cpan/ExtUtils-MakeMaker/t/cd.t index 16f6667..67dfd98 100644 --- a/cpan/ExtUtils-MakeMaker/t/cd.t +++ b/cpan/ExtUtils-MakeMaker/t/cd.t @@ -26,6 +26,7 @@ my @cd_args = ($dir, "command1", "command2"); { local *make = sub { "nmake" }; + $mm->_clear_maketype_cache; my @dirs = (File::Spec->updir) x 2; my $expected_updir = File::Spec->catdir(@dirs); @@ -39,6 +40,7 @@ qq{cd $dir { local *make = sub { "dmake" }; + $mm->_clear_maketype_cache; ::is $mm->cd(@cd_args), qq{cd $dir && command1 diff --git a/cpan/ExtUtils-MakeMaker/t/echo.t b/cpan/ExtUtils-MakeMaker/t/echo.t index 355eaa2..6d424d1 100644 --- a/cpan/ExtUtils-MakeMaker/t/echo.t +++ b/cpan/ExtUtils-MakeMaker/t/echo.t @@ -33,6 +33,9 @@ $mm->init_tools; # need ECHO # Run Perl with the currently installing MakeMaker $mm->{$_} .= q[ "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"] for qw( PERLRUN FULLPERLRUN ABSPERLRUN ); +#see sub specify_shell +my $shell = $^O eq 'MSWin32' && $mm->is_make_type('gmake') ? $ENV{COMSPEC} : undef; + #------------------- Testing functions sub test_for_echo { @@ -53,6 +56,7 @@ sub test_for_echo { for my $key (qw(INST_ARCHLIB INST_LIB PERL ABSPERL ABSPERLRUN ECHO)) { print $makefh "$key=$mm->{$key}\n"; } + print $makefh "SHELL=$shell\n" if defined $shell; print $makefh "all :\n"; for my $args (@$calls) { diff --git a/cpan/IPC-SysV/SysV.xs b/cpan/IPC-SysV/SysV.xs index c7db50a..121a164 100644 --- a/cpan/IPC-SysV/SysV.xs +++ b/cpan/IPC-SysV/SysV.xs @@ -392,10 +392,14 @@ shmat(id, addr, flag) int flag CODE: #ifdef HAS_SHM - void *caddr = SvOK(addr) ? sv2addr(addr) : NULL; - void *shm = (void *) shmat(id, caddr, flag); - ST(0) = shm == (void *) -1 ? &PL_sv_undef - : sv_2mortal(newSVpvn((char *) &shm, sizeof(void *))); + if (id >= 0) { + void *caddr = SvOK(addr) ? sv2addr(addr) : NULL; + void *shm = (void *) shmat(id, caddr, flag); + ST(0) = shm == (void *) -1 ? &PL_sv_undef + : sv_2mortal(newSVpvn((char *) &shm, sizeof(void *))); + } else { + ST(0) = &PL_sv_undef; + } XSRETURN(1); #else Perl_die(aTHX_ PL_no_func, "shmat"); return; diff --git a/cpan/IPC-SysV/lib/IPC/Msg.pm b/cpan/IPC-SysV/lib/IPC/Msg.pm index f4cf099..c2539a4 100644 --- a/cpan/IPC-SysV/lib/IPC/Msg.pm +++ b/cpan/IPC-SysV/lib/IPC/Msg.pm @@ -15,7 +15,7 @@ use strict; use vars qw($VERSION); use Carp; -$VERSION = '2.04'; +$VERSION = '2.05'; # Figure out if we have support for native sized types my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' }; @@ -169,7 +169,7 @@ Returns the system message queue identifier. =item rcv ( BUF, LEN [, TYPE [, FLAGS ]] ) Read a message from the queue. Returns the type of the message read. -See L. The BUF becomes tainted. +See L. The BUF becomes tainted. =item remove @@ -193,7 +193,7 @@ or a list of I-I pairs. =item snd ( TYPE, MSG [, FLAGS ] ) Place a message on the queue with the data from C and with type C. -See L. +See L. =item stat diff --git a/cpan/IPC-SysV/lib/IPC/Semaphore.pm b/cpan/IPC-SysV/lib/IPC/Semaphore.pm index 3bcbfe7..7ff6fbc 100644 --- a/cpan/IPC-SysV/lib/IPC/Semaphore.pm +++ b/cpan/IPC-SysV/lib/IPC/Semaphore.pm @@ -16,7 +16,7 @@ use strict; use vars qw($VERSION); use Carp; -$VERSION = '2.04'; +$VERSION = '2.05'; # Figure out if we have support for native sized types my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' }; @@ -56,7 +56,9 @@ sub id { sub remove { my $self = shift; - (semctl($$self,0,IPC_RMID,0), undef $$self)[0]; + my $result = semctl($$self,0,IPC_RMID,0); + undef $$self; + $result; } sub getncnt { @@ -240,7 +242,7 @@ Returns the system identifier for the semaphore set. C is a list of operations to pass to C. C is a concatenation of smaller lists, each which has three values. The first is the semaphore number, the second is the operation and the last -is a flags value. See L for more details. For example +is a flags value. See L for more details. For example $sem->op( 0, -1, IPC_NOWAIT, @@ -293,7 +295,7 @@ of these fields see your system documentation. =head1 SEE ALSO -L, L, L, L, L +L, L, L, L, L =head1 AUTHORS diff --git a/cpan/IPC-SysV/lib/IPC/SharedMem.pm b/cpan/IPC-SysV/lib/IPC/SharedMem.pm index 84f718b..eadb3fc 100644 --- a/cpan/IPC-SysV/lib/IPC/SharedMem.pm +++ b/cpan/IPC-SysV/lib/IPC/SharedMem.pm @@ -15,7 +15,7 @@ use strict; use vars qw($VERSION); use Carp; -$VERSION = '2.04'; +$VERSION = '2.05'; # Figure out if we have support for native sized types my $N = do { my $foo = eval { pack "L!", 0 }; $@ ? '' : '!' }; @@ -235,12 +235,12 @@ of these fields see you system documentation. Permanently attach to the shared memory segment. When a C object is attached, it will use L and L instead of L and L for accessing the shared memory segment. -Returns true if successful, or false on error. See L. +Returns true if successful, or false on error. See L. =item detach Detach from the shared memory segment that previously has been attached -to. Returns true if successful, or false on error. See L. +to. Returns true if successful, or false on error. See L. =item addr diff --git a/cpan/IPC-SysV/lib/IPC/SysV.pm b/cpan/IPC-SysV/lib/IPC/SysV.pm index 4189965..883c755 100644 --- a/cpan/IPC-SysV/lib/IPC/SysV.pm +++ b/cpan/IPC-SysV/lib/IPC/SysV.pm @@ -18,7 +18,7 @@ use Config; require Exporter; @ISA = qw(Exporter); -$VERSION = '2.04'; +$VERSION = '2.05'; # To support new constants, just add them to @EXPORT_OK # and the C/XS code will be generated automagically. @@ -129,7 +129,7 @@ but your system might have more. =item ftok( PATH, ID ) Return a key based on PATH and ID, which can be used as a key for -C, C and C. See L. +C, C and C. See L. If ID is omitted, it defaults to C<1>. If a single character is given for ID, the numeric value of that character is used. @@ -137,14 +137,14 @@ given for ID, the numeric value of that character is used. =item shmat( ID, ADDR, FLAG ) Attach the shared memory segment identified by ID to the address -space of the calling process. See L. +space of the calling process. See L. ADDR should be C unless you really know what you're doing. =item shmdt( ADDR ) Detach the shared memory segment located at the address specified -by ADDR from the address space of the calling process. See L. +by ADDR from the address space of the calling process. See L. =item memread( ADDR, VAR, POS, SIZE ) @@ -163,7 +163,7 @@ successful, or false if there is an error. =head1 SEE ALSO -L, L, L, L, L, L +L, L, L, L, L, L =head1 AUTHORS diff --git a/cpan/IPC-SysV/t/ipcsysv.t b/cpan/IPC-SysV/t/ipcsysv.t index 710555e..c7a92ed 100644 --- a/cpan/IPC-SysV/t/ipcsysv.t +++ b/cpan/IPC-SysV/t/ipcsysv.t @@ -24,7 +24,7 @@ elsif ($Config{'d_msg'} ne 'define') { plan(skip_all => '$Config{d_msg} undefined'); } -plan(tests => 38); +plan(tests => 39); # These constants are common to all tests. # Later the sem* tests will import more for themselves. @@ -298,6 +298,8 @@ SKIP: { is(unpack("N", unpack("P4", $addr)), 0xbadc0de5, 'read modified shm by addr'); + is(shmat(-1, undef, 0), undef, 'shmat illegal id fails'); + ok(defined shmdt($addr), 'shmdt'); } diff --git a/cpan/podlators/.gitignore b/cpan/podlators/.gitignore index 3a7bb2e..146b3be 100644 --- a/cpan/podlators/.gitignore +++ b/cpan/podlators/.gitignore @@ -1,10 +1,20 @@ -/.travis.yml -/LICENSE -/MANIFEST -/MANIFEST.SKIP +/Build +/Build.bat +/MANIFEST.bak +/Makefile +/Makefile.old /META.json /META.yml -/NOTES -/README -/THANKS -/TODO +/MYMETA.json +/MYMETA.yml +/_build/ +/blib/ +/cover_db/ +/nytprof.out +/nytprof/ +/pm_to_blib +/podlators-*/ +/podlators-*.tar.gz +/podlators-*.tar.gz.asc +/scripts/pod2man +/scripts/pod2text diff --git a/cpan/podlators/Makefile.PL b/cpan/podlators/Makefile.PL index 074a35b..0a6ad65 100644 --- a/cpan/podlators/Makefile.PL +++ b/cpan/podlators/Makefile.PL @@ -18,14 +18,21 @@ use Config; use ExtUtils::MakeMaker; use File::Spec; -# Generate full paths for scripts distributed in the bin directory. +# Generate full paths for scripts distributed in the bin directory. Appends +# the .com extension to scripts on VMS, unless they already have the .PL +# extension. # # @scripts - List of script names # -# Returns: List of relative paths from top of distribution +# Returns: (Array) List of relative paths from top of distribution +# (Scalar) Space-separated relative paths from top of distribution sub scripts { my (@scripts) = @_; - return map { File::Spec->catfile('bin', $_) } @scripts; + my @paths = map { File::Spec->catfile('scripts', $_) } @scripts; + if ($^O eq 'VMS') { + @paths = map { m{ [.] PL \z }xms ? $_ : $_ . '.com' } @paths; + } + return wantarray ? @paths : join(q{ }, @paths); } # Generate an association between a source file and a destination man page for @@ -40,9 +47,9 @@ sub scripts { sub man1pod { my ($directory, $file) = @_; - # Determine the base name of the file by stripping any *.pod suffix. + # Build the base name of the file by stripping any *.pod or *.PL suffix. my $basename = $file; - $basename =~ s{ [.]pod }{}xms; + $basename =~ s{ [.] (?: pod | PL ) \z }{}xms; # Determine the output file name for the generated man page. my $outname = $basename . q{.} . $Config{man1ext}; @@ -57,18 +64,29 @@ my %metadata = ( DISTNAME => 'podlators', ABSTRACT => 'Convert POD data to various other formats', AUTHOR => 'Russ Allbery ', - LICENSE => 'perl', + LICENSE => 'perl_5', EXE_FILES => [scripts('pod2text', 'pod2man')], VERSION_FROM => 'lib/Pod/Man.pm', MIN_PERL_VERSION => '5.006', + # Use *.PL files to generate the driver scripts so that we get the correct + # invocation of Perl on non-UNIX platforms. + PL_FILES => { + scripts('pod2man.PL', 'pod2man'), scripts('pod2text.PL', 'pod2text'), + }, + # Override the files that generate section 1 man pages. - # (done differently in blead) - #MAN1PODS => { - # man1pod('bin', 'pod2man'), - # man1pod('bin', 'pod2text'), - # man1pod('pod', 'perlpodstyle'), - #}, + MAN1PODS => { + man1pod('scripts', 'pod2man.PL'), + man1pod('scripts', 'pod2text.PL'), + + # Perl core uses a separate copy in the top-level pod directory. + ($ENV{PERL_CORE} ? () : man1pod('pod', 'perlpodstyle.pod')), + }, + + # Clean some additional files. + clean => { FILES => File::Spec->catdir('t', 'tmp') }, + realclean => { FILES => scalar(scripts('pod2text', 'pod2man')) }, # Dependencies on other modules. PREREQ_PM => { @@ -76,7 +94,8 @@ my %metadata = ( 'Pod::Simple' => 3.06, }, - # ExtUtils::MakeMaker doesn't pick up nested test directories by default. + # Older versions of ExtUtils::MakeMaker don't pick up nested test + # directories by default. test => { TESTS => 't/*/*.t' }, # For older versions of Perl, we have to force installation into the Perl @@ -88,8 +107,10 @@ my %metadata = ( META_ADD => { 'meta-spec' => { version => 2 }, resources => { - bugtracker => - 'https://rt.cpan.org/Public/Dist/Display.html?Name=podlators', + bugtracker => { + mailto => 'bug-podlators@rt.cpan.org', + web => 'https://rt.cpan.org/Dist/Display.html?Name=podlators', + }, homepage => 'http://www.eyrie.org/~eagle/software/podlators/', repository => { url => 'git://github.com/rra/podlators.git', diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm index f3f4f81..1829e75 100644 --- a/cpan/podlators/lib/Pod/Man.pm +++ b/cpan/podlators/lib/Pod/Man.pm @@ -14,7 +14,7 @@ # Written by Russ Allbery # Substantial contributions by Sean Burke # Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -# 2010, 2012, 2013, 2014, 2015 Russ Allbery +# 2010, 2012, 2013, 2014, 2015, 2016 Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -32,13 +32,18 @@ use warnings; use subs qw(makespace); use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION); -use Carp qw(croak); -use Encode qw(encode); +use Carp qw(carp croak); use Pod::Simple (); +# Conditionally import Encode and set $HAS_ENCODE if it is available. +our $HAS_ENCODE; +BEGIN { + $HAS_ENCODE = eval { require Encode }; +} + @ISA = qw(Pod::Simple); -$VERSION = '4.04'; +$VERSION = '4.06'; # Set the debugging level. If someone has inserted a debug function into this # class already, use that. Otherwise, use any Pod::Simple debug function @@ -141,6 +146,13 @@ sub new { } delete $$self{errors}; + # Degrade back to non-utf8 if Encode is not available. + if ($$self{utf8} and !$HAS_ENCODE) { + carp ('utf8 mode requested but Encode module not available,' + . ' falling back to non-utf8'); + delete $$self{utf8}; + } + # Initialize various other internal constants based on our arguments. $self->init_fonts; $self->init_quotes; @@ -743,7 +755,7 @@ sub outindex { sub output { my ($self, @text) = @_; if ($$self{ENCODE}) { - print { $$self{output_fh} } encode ('UTF-8', join ('', @text)); + print { $$self{output_fh} } Encode::encode ('UTF-8', join ('', @text)); } else { print { $$self{output_fh} } @text; } diff --git a/cpan/podlators/lib/Pod/ParseLink.pm b/cpan/podlators/lib/Pod/ParseLink.pm index 4c6843d..b3629df 100644 --- a/cpan/podlators/lib/Pod/ParseLink.pm +++ b/cpan/podlators/lib/Pod/ParseLink.pm @@ -31,7 +31,7 @@ use Exporter; @ISA = qw(Exporter); @EXPORT = qw(parselink); -$VERSION = '4.04'; +$VERSION = '4.06'; ############################################################################## # Implementation diff --git a/cpan/podlators/lib/Pod/Text.pm b/cpan/podlators/lib/Pod/Text.pm index b0f1afc..f15007d 100644 --- a/cpan/podlators/lib/Pod/Text.pm +++ b/cpan/podlators/lib/Pod/Text.pm @@ -39,7 +39,7 @@ use Pod::Simple (); # We have to export pod2text for backward compatibility. @EXPORT = qw(pod2text); -$VERSION = '4.04'; +$VERSION = '4.06'; ############################################################################## # Initialization diff --git a/cpan/podlators/lib/Pod/Text/Color.pm b/cpan/podlators/lib/Pod/Text/Color.pm index cb23aab..a52d5ca 100644 --- a/cpan/podlators/lib/Pod/Text/Color.pm +++ b/cpan/podlators/lib/Pod/Text/Color.pm @@ -27,7 +27,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.04'; +$VERSION = '4.06'; ############################################################################## # Overrides diff --git a/cpan/podlators/lib/Pod/Text/Overstrike.pm b/cpan/podlators/lib/Pod/Text/Overstrike.pm index 240aa85..b8af4f9 100644 --- a/cpan/podlators/lib/Pod/Text/Overstrike.pm +++ b/cpan/podlators/lib/Pod/Text/Overstrike.pm @@ -35,7 +35,7 @@ use Pod::Text (); @ISA = qw(Pod::Text); -$VERSION = '4.04'; +$VERSION = '4.06'; ############################################################################## # Overrides diff --git a/cpan/podlators/lib/Pod/Text/Termcap.pm b/cpan/podlators/lib/Pod/Text/Termcap.pm index 5a5e314..5336a06 100644 --- a/cpan/podlators/lib/Pod/Text/Termcap.pm +++ b/cpan/podlators/lib/Pod/Text/Termcap.pm @@ -28,7 +28,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.04'; +$VERSION = '4.06'; ############################################################################## # Overrides diff --git a/cpan/podlators/bin/pod2man b/cpan/podlators/scripts/pod2man.PL similarity index 87% rename from cpan/podlators/bin/pod2man rename to cpan/podlators/scripts/pod2man.PL index 46de7a7..f40c126 100644 --- a/cpan/podlators/bin/pod2man +++ b/cpan/podlators/scripts/pod2man.PL @@ -1,9 +1,53 @@ #!/usr/bin/perl +# +# Special wrapper script to generate the actual pod2man script. This is +# required for proper start-up code on non-UNIX platforms, and is used inside +# Perl core. + +use 5.006; +use strict; +use warnings; + +use Config qw(%Config); +use Cwd qw(cwd); +use File::Basename qw(basename dirname); + +# List explicitly here the variables you want Configure to generate. +# Metaconfig only looks for shell variables, so you have to mention them as if +# they were shell variables, not %Config entries. Thus you write +# $startperl +# to ensure Configure will look for $Config{startperl}. + +# This forces PL files to create target in same directory as PL file. +# This is so that make depend always knows where to find PL derivatives. +chdir(dirname($0)) or die "Cannot change directories: $!\n"; +my $file = basename($0, '.PL'); +if ($^O eq 'VMS') { + $file .= '.com'; +} + +# Create the generated script. +## no critic (InputOutput::RequireBriefOpen) +## no critic (InputOutput::RequireCheckedSyscalls) +open(my $out, '>', $file) or die "Cannot create $file: $!\n"; +print "Extracting $file (with variable substitutions)\n"; +## use critic + +# In this section, Perl variables will be expanded during extraction. You can +# use $Config{...} to use Configure variables. +print {$out} <<"PREAMBLE" or die "Cannot write to $file: $!\n"; +$Config{startperl} + eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}' + if \$running_under_some_shell; +PREAMBLE + +# In the following, Perl variables are not expanded during extraction. +print {$out} <<'SCRIPT_BODY' or die "Cannot write to $file: $!\n"; # pod2man -- Convert POD data to formatted *roff input. # -# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 -# Russ Allbery +# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015, +# 2016 Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -80,7 +124,8 @@ __END__ =for stopwords en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris -URL troff troff-specific formatters uppercased Christiansen --nourls +URL troff troff-specific formatters uppercased Christiansen --nourls UTC +prepend =head1 NAME @@ -364,9 +409,17 @@ B by Larry Wall and Tom Christiansen. =head1 COPYRIGHT AND LICENSE Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, -2015 Russ Allbery . +2015, 2016 Russ Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut +SCRIPT_BODY + +# Finish the generation of the script. +close($out) or die "Cannot close $file: $!\n"; +chmod(0755, $file) or die "Cannot reset permissions for $file: $!\n"; +if ($Config{'eunicefix'} ne q{:}) { + exec("$Config{'eunicefix'} $file"); +} diff --git a/cpan/podlators/bin/pod2text b/cpan/podlators/scripts/pod2text.PL similarity index 84% rename from cpan/podlators/bin/pod2text rename to cpan/podlators/scripts/pod2text.PL index 838f75e..f6c8071 100644 --- a/cpan/podlators/bin/pod2text +++ b/cpan/podlators/scripts/pod2text.PL @@ -1,9 +1,53 @@ #!/usr/bin/perl +# +# Special wrapper script to generate the actual pod2man script. This is +# required for proper start-up code on non-UNIX platforms, and is used inside +# Perl core. + +use 5.006; +use strict; +use warnings; + +use Config qw(%Config); +use Cwd qw(cwd); +use File::Basename qw(basename dirname); + +# List explicitly here the variables you want Configure to generate. +# Metaconfig only looks for shell variables, so you have to mention them as if +# they were shell variables, not %Config entries. Thus you write +# $startperl +# to ensure Configure will look for $Config{startperl}. + +# This forces PL files to create target in same directory as PL file. +# This is so that make depend always knows where to find PL derivatives. +chdir(dirname($0)) or die "Cannot change directories: $!\n"; +my $file = basename($0, '.PL'); +if ($^O eq 'VMS') { + $file .= '.com'; +} + +# Create the generated script. +## no critic (InputOutput::RequireBriefOpen) +## no critic (InputOutput::RequireCheckedSyscalls) +open(my $out, '>', $file) or die "Cannot create $file: $!\n"; +print "Extracting $file (with variable substitutions)\n"; +## use critic + +# In this section, Perl variables will be expanded during extraction. You can +# use $Config{...} to use Configure variables. +print {$out} <<"PREAMBLE" or die "Cannot write to $file: $!\n"; +$Config{startperl} + eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}' + if \$running_under_some_shell; +PREAMBLE + +# In the following, Perl variables are not expanded during extraction. +print {$out} <<'SCRIPT_BODY' or die "Cannot write to $file: $!\n"; # pod2text -- Convert POD data to formatted ASCII text. # -# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 -# Russ Allbery +# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015, +# 2016 Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -313,10 +357,18 @@ Russ Allbery . =head1 COPYRIGHT AND LICENSE -Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 -Russ Allbery +Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015, +2016 Russ Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut +SCRIPT_BODY + +# Finish the generation of the script. +close($out) or die "Cannot close $file: $!\n"; +chmod(0755, $file) or die "Cannot reset permissions for $file: $!\n"; +if ($Config{'eunicefix'} ne ':') { + exec("$Config{'eunicefix'} $file"); +} diff --git a/cpan/podlators/t/general/filehandle.t b/cpan/podlators/t/general/filehandle.t index f726db2..cd6a229 100644 --- a/cpan/podlators/t/general/filehandle.t +++ b/cpan/podlators/t/general/filehandle.t @@ -6,7 +6,7 @@ # Pod::Man and Pod::Text had to implement it directly. Test to be sure it's # working properly. # -# Copyright 2006, 2009, 2012, 2014, 2015 Russ Allbery +# Copyright 2006, 2009, 2012, 2014, 2015, 2016 Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -79,4 +79,3 @@ is($got, $text_data_ref->{output}, 'Pod::Text output'); # Clean up temporary files. unlink($infile, $outfile); -rmdir($tmpdir); diff --git a/cpan/podlators/t/general/pod-parser.t b/cpan/podlators/t/general/pod-parser.t index b8adc88..95f399f 100644 --- a/cpan/podlators/t/general/pod-parser.t +++ b/cpan/podlators/t/general/pod-parser.t @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # # Tests for backward compatibility with Pod::Parser. # diff --git a/cpan/podlators/t/lib/Test/Podlators.pm b/cpan/podlators/t/lib/Test/Podlators.pm index 33bbb65..3111d40 100644 --- a/cpan/podlators/t/lib/Test/Podlators.pm +++ b/cpan/podlators/t/lib/Test/Podlators.pm @@ -4,7 +4,7 @@ # suite. It provides some supporting functions to make it easier to write # tests. # -# Copyright 2015 Russ Allbery +# Copyright 2015, 2016 Russ Allbery # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -43,16 +43,14 @@ my $OLD_STDERR; # The file name used to capture standard error output. my $SAVED_STDERR; -# Internal function to clean up the standard error output file. The "1 while" -# construct is for VMS, in case there are multiple versions of the file. +# Internal function to clean up the standard error output file. Leave the +# temporary directory in place, since otherwise we race with other test +# scripts trying to create the temporary directory when running tests in +# parallel. sub _stderr_cleanup { if ($SAVED_STDERR && -f $SAVED_STDERR) { unlink($SAVED_STDERR); } - my $tmpdir = File::Spec->catdir('t', 'tmp'); - if (-d $tmpdir) { - rmdir($tmpdir); - } return; } diff --git a/cpan/podlators/t/lib/Test/RRA.pm b/cpan/podlators/t/lib/Test/RRA.pm index 3870cc1..7e79515 100644 --- a/cpan/podlators/t/lib/Test/RRA.pm +++ b/cpan/podlators/t/lib/Test/RRA.pm @@ -128,7 +128,7 @@ __END__ =for stopwords Allbery Allbery's DESC bareword sublicense MERCHANTABILITY NONINFRINGEMENT -rra-c-util +rra-c-util CPAN =head1 NAME @@ -151,46 +151,45 @@ Test::RRA - Support functions for Perl tests =head1 DESCRIPTION -This module collects utility functions that are useful for Perl test -scripts. It assumes Russ Allbery's Perl module layout and test -conventions and will only be useful for other people if they use the -same conventions. +This module collects utility functions that are useful for Perl test scripts. +It assumes Russ Allbery's Perl module layout and test conventions and will +only be useful for other people if they use the same conventions. =head1 FUNCTIONS -None of these functions are imported by default. The ones used by a -script should be explicitly imported. +None of these functions are imported by default. The ones used by a script +should be explicitly imported. =over 4 =item skip_unless_author(DESC) -Checks whether AUTHOR_TESTING is set in the environment and skips the -whole test (by calling C from Test::More) if it is not. -DESC is a description of the tests being skipped. A space and C will be appended to it and used as the skip reason. +Checks whether AUTHOR_TESTING is set in the environment and skips the whole +test (by calling C from Test::More) if it is not. DESC is a +description of the tests being skipped. A space and C +will be appended to it and used as the skip reason. =item skip_unless_automated(DESC) -Checks whether AUTHOR_TESTING, AUTOMATED_TESTING, or RELEASE_TESTING are -set in the environment and skips the whole test (by calling C from Test::More) if they are not. This should be used by tests -that should not run during end-user installs of the module, but which -should run as part of CPAN smoke testing and release testing. +Checks whether AUTHOR_TESTING, AUTOMATED_TESTING, or RELEASE_TESTING are set +in the environment and skips the whole test (by calling C from +Test::More) if they are not. This should be used by tests that should not run +during end-user installs of the module, but which should run as part of CPAN +smoke testing and release testing. DESC is a description of the tests being skipped. A space and C will be appended to it and used as the skip reason. =item use_prereq(MODULE[, VERSION][, IMPORT ...]) -Attempts to load MODULE with the given VERSION and import arguments. If -this fails for any reason, the test will be skipped (by calling C from Test::More) with a skip reason saying that MODULE is -required for the test. +Attempts to load MODULE with the given VERSION and import arguments. If this +fails for any reason, the test will be skipped (by calling C +from Test::More) with a skip reason saying that MODULE is required for the +test. VERSION will be passed to C as a version bareword if it looks like a -version number. The remaining IMPORT arguments will be passed as the -value of an array. +version number. The remaining IMPORT arguments will be passed as the value of +an array. =back @@ -203,33 +202,33 @@ Russ Allbery Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior University -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. =head1 SEE ALSO Test::More(3), Test::RRA::Automake(3), Test::RRA::Config(3) -This module is maintained in the rra-c-util package. The current version -is available from L. +This module is maintained in the rra-c-util package. The current version is +available from L. -The functions to control when tests are run use environment variables -defined by the L. =cut diff --git a/cpan/podlators/t/lib/Test/RRA/Config.pm b/cpan/podlators/t/lib/Test/RRA/Config.pm index 7c29f1a..ffdfc08 100644 --- a/cpan/podlators/t/lib/Test/RRA/Config.pm +++ b/cpan/podlators/t/lib/Test/RRA/Config.pm @@ -27,8 +27,8 @@ BEGIN { @ISA = qw(Exporter); @EXPORT_OK = qw( $COVERAGE_LEVEL @COVERAGE_SKIP_TESTS @CRITIC_IGNORE $LIBRARY_PATH - $MINIMUM_VERSION %MINIMUM_VERSION @POD_COVERAGE_EXCLUDE @STRICT_IGNORE - @STRICT_PREREQ + $MINIMUM_VERSION %MINIMUM_VERSION @MODULE_VERSION_IGNORE + @POD_COVERAGE_EXCLUDE @STRICT_IGNORE @STRICT_PREREQ ); # This version should match the corresponding rra-c-util release, but with @@ -39,10 +39,11 @@ BEGIN { # If BUILD or SOURCE are set in the environment, look for data/perl.conf under # those paths for a C Automake package. Otherwise, look in t/data/perl.conf -# for a standalone Perl module. Don't use Test::RRA::Automake since it may -# not exist. +# for a standalone Perl module or tests/data/perl.conf for Perl tests embedded +# in a larger distribution. Don't use Test::RRA::Automake since it may not +# exist. our $PATH; -for my $base ($ENV{BUILD}, $ENV{SOURCE}, 't') { +for my $base ($ENV{BUILD}, $ENV{SOURCE}, 't', 'tests') { next if !defined($base); my $path = "$base/data/perl.conf"; if (-r $path) { @@ -61,6 +62,7 @@ our @CRITIC_IGNORE; our $LIBRARY_PATH; our $MINIMUM_VERSION = '5.008'; our %MINIMUM_VERSION; +our @MODULE_VERSION_IGNORE; our @POD_COVERAGE_EXCLUDE; our @STRICT_IGNORE; our @STRICT_PREREQ; @@ -75,8 +77,8 @@ if (!do($PATH)) { __END__ =for stopwords -Allbery rra-c-util Automake perlcritic .libs namespace subdirectory -sublicense MERCHANTABILITY NONINFRINGEMENT +Allbery rra-c-util Automake perlcritic .libs namespace subdirectory sublicense +MERCHANTABILITY NONINFRINGEMENT regexes =head1 NAME @@ -89,19 +91,17 @@ Test::RRA::Config - Perl test configuration =head1 DESCRIPTION -Test::RRA::Config encapsulates per-package configuration for generic Perl -test programs that are shared between multiple packages using the -rra-c-util infrastructure. It handles locating and loading the test -configuration file for both C Automake packages and stand-alone Perl -modules. +Test::RRA::Config encapsulates per-package configuration for generic Perl test +programs that are shared between multiple packages using the rra-c-util +infrastructure. It handles locating and loading the test configuration file +for both C Automake packages and stand-alone Perl modules. Test::RRA::Config looks for a file named F relative to the -root of the test directory. That root is taken from the environment -variables BUILD or SOURCE (in that order) if set, which will be the case -for C Automake packages using C TAP Harness. If neither is set, it -expects the root of the test directory to be a directory named F -relative to the current directory, which will be the case for stand-alone -Perl modules. +root of the test directory. That root is taken from the environment variables +BUILD or SOURCE (in that order) if set, which will be the case for C Automake +packages using C TAP Harness. If neither is set, it expects the root of the +test directory to be a directory named F relative to the current directory, +which will be the case for stand-alone Perl modules. The following variables are supported: @@ -109,70 +109,75 @@ The following variables are supported: =item $COVERAGE_LEVEL -The coverage level achieved by the test suite for Perl test coverage -testing using Test::Strict, as a percentage. The test will fail if test -coverage less than this percentage is achieved. If not given, defaults -to 100. +The coverage level achieved by the test suite for Perl test coverage testing +using Test::Strict, as a percentage. The test will fail if test coverage less +than this percentage is achieved. If not given, defaults to 100. =item @COVERAGE_SKIP_TESTS Directories under F whose tests should be skipped when doing coverage -testing. This can be tests that won't contribute to coverage or tests -that don't run properly under Devel::Cover for some reason (such as ones -that use taint checking). F and F