In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/2a2c1c1d49921db69fffe2426dad61ee9c146610?hp=829a2d809bd01eb5fd391cdf869ac2d1c5a85c2b>
- Log ----------------------------------------------------------------- commit 2a2c1c1d49921db69fffe2426dad61ee9c146610 Author: Ricardo Signes <[email protected]> Date: Fri May 8 20:37:00 2015 -0400 podcheck: add known link target Devel::Spy M t/porting/known_pod_issues.dat commit 28bb034a923dae2449d2a490dbf9cb9c7ab22807 Merge: 829a2d8 ba520a5 Author: Ricardo Signes <[email protected]> Date: Fri May 8 20:19:54 2015 -0400 Bump perl version to v5.22.0-RC0 commit ba520a57886365bee0219bd78c8b6e81ca1e870e Author: Ricardo Signes <[email protected]> Date: Fri May 8 19:12:01 2015 -0400 perldelta: Devel-Spy known to be broken M pod/perldelta.pod commit 04dc37df4ea598d19f4bab78ca2e09e10c3913b7 Author: Ricardo Signes <[email protected]> Date: Fri May 8 19:11:49 2015 -0400 bump version of overload in corelist M dist/Module-CoreList/lib/Module/CoreList.pm commit eb91097c56fcbc5b66cea97d62fb26a347807e2e Author: Ricardo Signes <[email protected]> Date: Fri May 8 19:11:40 2015 -0400 document that we may add more overloaded ops over time M lib/overload.pm commit 0590bd99f192564130ecb2be72b166529801ab6b Author: Ricardo Signes <[email protected]> Date: Fri May 8 19:05:15 2015 -0400 perldelta: prefer "CPAN" to "cpan" M pod/perldelta.pod commit 022a330c78cef1134d7d9ccfb6a7928c7b16922d Author: Ricardo Signes <[email protected]> Date: Wed May 6 08:13:30 2015 -0400 perldelta/perldiag: make a pod cross-reference pass tests Why is this change needed? M pod/perldelta.pod M pod/perldiag.pod commit c21a1c59bf80064455af2fb61826fa4ba47eb1c1 Author: Ricardo Signes <[email protected]> Date: Wed May 6 08:12:58 2015 -0400 describe errors with no description, delete obsolete warnings M pod/perldelta.pod commit eabfc7bc1932ffcb9e80fc4bdd4853e7f5b85c28 Author: Ricardo Signes <[email protected]> Date: Wed May 6 07:42:32 2015 -0400 perldelta is now the perl5220delta M Makefile.SH M pod/.gitignore M pod/perldelta.pod M vms/descrip_mms.template M win32/Makefile M win32/makefile.mk M win32/pod.mak commit bff00388f2dd2eb97cc67045e63380a6c56e22d1 Author: Ricardo Signes <[email protected]> Date: Tue May 5 22:55:42 2015 -0400 corelist for v5.22.0 M dist/Module-CoreList/lib/Module/CoreList.pm M dist/Module-CoreList/lib/Module/CoreList/Utils.pm commit fe2914d174e664e1bb7a041f6f4da9b1c1fed51f Author: Ricardo Signes <[email protected]> Date: Tue May 5 22:43:39 2015 -0400 bump version: make regen M META.json M lib/B/Op_private.pm M uconfig.h commit fdfaf0a208336b5d14e1c16ffac9f0b3c2f6a275 Author: Ricardo Signes <[email protected]> Date: Tue May 5 22:35:00 2015 -0400 ...but actually we are RC0 M patchlevel.h commit e2710a4bfcec699f2cbbfac974ba623f464bcb50 Author: Ricardo Signes <[email protected]> Date: Tue May 5 21:37:59 2015 -0400 bump version to v5.22.0 with Porting/bump-perl-version M Cross/config.sh-arm-linux M Cross/config.sh-arm-linux-n770 M INSTALL M META.json M META.yml M NetWare/Makefile M NetWare/config_H.wc M Porting/config.sh M Porting/config_H M Porting/perldelta_template.pod M Porting/todo.pod M README.haiku M README.macosx M README.os2 M README.vms M README.win32 M hints/catamount.sh M intrpvar.h M patchlevel.h M plan9/config.plan9 M plan9/config_sh.sample M uconfig.h M uconfig.sh M uconfig64.sh M win32/Makefile M win32/Makefile.ce M win32/makefile.mk ----------------------------------------------------------------------- Summary of changes: Cross/config.sh-arm-linux | 46 +- Cross/config.sh-arm-linux-n770 | 46 +- INSTALL | 28 +- META.json | 4 +- META.yml | 2 +- Makefile.SH | 8 +- NetWare/Makefile | 4 +- NetWare/config_H.wc | 10 +- Porting/config.sh | 48 +- Porting/config_H | 18 +- Porting/perldelta_template.pod | 2 +- Porting/todo.pod | 4 +- README.haiku | 4 +- README.macosx | 8 +- README.os2 | 2 +- README.vms | 4 +- README.win32 | 2 +- dist/Module-CoreList/lib/Module/CoreList.pm | 11 +- dist/Module-CoreList/lib/Module/CoreList/Utils.pm | 2 +- hints/catamount.sh | 4 +- intrpvar.h | 4 +- lib/B/Op_private.pm | 2 +- lib/overload.pm | 3 +- patchlevel.h | 9 +- plan9/config.plan9 | 10 +- plan9/config_sh.sample | 44 +- pod/.gitignore | 2 +- pod/perldelta.pod | 3166 +++++++++++++++++++-- pod/perldiag.pod | 3 +- t/porting/known_pod_issues.dat | 1 + uconfig.h | 18 +- uconfig.sh | 16 +- uconfig64.sh | 16 +- vms/descrip_mms.template | 2 +- win32/Makefile | 16 +- win32/Makefile.ce | 2 +- win32/makefile.mk | 20 +- win32/pod.mak | 8 +- 38 files changed, 3203 insertions(+), 396 deletions(-) diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux index 431e64f..68dcfa6 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='12' -api_version='21' -api_versionstring='5.21.12' +api_subversion='0' +api_version='22' +api_versionstring='5.22.0' ar='ar' -archlib='/usr/lib/perl5/5.21.12/armv4l-linux' -archlibexp='/usr/lib/perl5/5.21.12/armv4l-linux' +archlib='/usr/lib/perl5/5.22.0/armv4l-linux' +archlibexp='/usr/lib/perl5/5.22.0/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.21.12/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.22.0/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -793,7 +793,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.21.12/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.22.0/armv4l-linux' installbin='./install_me_here/usr/bin' installhtml1dir='' installhtml3dir='' @@ -801,13 +801,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.21.12' +installprivlib='./install_me_here/usr/lib/perl5/5.22.0' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.12' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.22.0' installsiteman1dir='./install_me_here/usr/share/man/man1' installsiteman3dir='./install_me_here/usr/share/man/man3' installsitescript='./install_me_here/usr/bin' @@ -937,8 +937,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/usr/lib/perl5/5.21.12' -privlibexp='/usr/lib/perl5/5.21.12' +privlib='/usr/lib/perl5/5.22.0' +privlibexp='/usr/lib/perl5/5.22.0' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1003,17 +1003,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, ... [78 chars truncated] sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.21.12' +sitelib='/usr/lib/perl5/site_perl/5.22.0' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.21.12' +sitelibexp='/usr/lib/perl5/site_perl/5.22.0' siteman1dir='/usr/share/man/man1' siteman1direxp='/usr/share/man/man1' siteman3dir='/usr/share/man/man3' @@ -1052,7 +1052,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='12' +subversion='0' sysman='/usr/share/man/man1' tail='' tar='' @@ -1144,8 +1144,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.21.12' -version_patchlevel_string='version 21 subversion 12' +version='5.22.0' +version_patchlevel_string='version 22 subversion 0' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1158,10 +1158,10 @@ config_arg0='Configure' config_args='' config_argc=0 PERL_REVISION=5 -PERL_VERSION=21 -PERL_SUBVERSION=12 +PERL_VERSION=22 +PERL_SUBVERSION=0 PERL_API_REVISION=5 -PERL_API_VERSION=21 -PERL_API_SUBVERSION=12 +PERL_API_VERSION=22 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770 index c89ad0f..0bf7c85 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='12' -api_version='21' -api_versionstring='5.21.12' +api_subversion='0' +api_version='22' +api_versionstring='5.22.0' ar='ar' -archlib='/usr/lib/perl5/5.21.12/armv4l-linux' -archlibexp='/usr/lib/perl5/5.21.12/armv4l-linux' +archlib='/usr/lib/perl5/5.22.0/armv4l-linux' +archlibexp='/usr/lib/perl5/5.22.0/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.21.12/armv4l-linux/CORE' +ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.22.0/armv4l-linux/CORE' ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='arm-linux-gcc' @@ -699,7 +699,7 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='./install_me_here/usr/lib/perl5/5.21.12/armv4l-linux' +installarchlib='./install_me_here/usr/lib/perl5/5.22.0/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.21.12' +installprivlib='./install_me_here/usr/lib/perl5/5.22.0' installscript='./install_me_here/usr/bin' -installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' +installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' installsitebin='./install_me_here/usr/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.21.12' +installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.22.0' 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.21.12' -privlibexp='/usr/lib/perl5/5.21.12' +privlib='/usr/lib/perl5/5.22.0' +privlibexp='/usr/lib/perl5/5.22.0' 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, ... [78 chars truncated] sig_size='68' signal_t='void' -sitearch='/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' -sitearchexp='/usr/lib/perl5/site_perl/5.21.12/armv4l-linux' +sitearch='/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' +sitearchexp='/usr/lib/perl5/site_perl/5.22.0/armv4l-linux' sitebin='/usr/bin' sitebinexp='/usr/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/usr/lib/perl5/site_perl/5.21.12' +sitelib='/usr/lib/perl5/site_perl/5.22.0' sitelib_stem='/usr/lib/perl5/site_perl' -sitelibexp='/usr/lib/perl5/site_perl/5.21.12' +sitelibexp='/usr/lib/perl5/site_perl/5.22.0' 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='12' +subversion='0' sysman='/usr/share/man/man1' tail='' tar='' @@ -1035,8 +1035,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.21.12' -version_patchlevel_string='version 21 subversion 12' +version='5.22.0' +version_patchlevel_string='version 22 subversion 0' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1049,10 +1049,10 @@ config_arg0='Configure' config_args='' config_argc=0 PERL_REVISION=5 -PERL_VERSION=21 -PERL_SUBVERSION=12 +PERL_VERSION=22 +PERL_SUBVERSION=0 PERL_API_REVISION=5 -PERL_API_VERSION=21 -PERL_API_SUBVERSION=12 +PERL_API_VERSION=22 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/INSTALL b/INSTALL index c5b20c0..dd73d4c 100644 --- a/INSTALL +++ b/INSTALL @@ -584,7 +584,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.21.12. +By default, Configure will use the following directories for 5.22.0. $version is the full perl version number, including subversion, e.g. 5.12.3, and $archname is a string like sun4-sunos, determined by Configure. The full definitions of all Configure @@ -2443,7 +2443,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html =head1 Coexistence with earlier versions of perl 5 -Perl 5.21.12 is not binary compatible with earlier versions of Perl. +Perl 5.22.0 is not binary compatible with earlier versions of Perl. In other words, you will have to recompile your XS modules. In general, you can usually safely upgrade from one version of Perl @@ -2518,9 +2518,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.21.12 + sh Configure -Dprefix=/opt/perl5.22.0 -and adding /opt/perl5.21.12/bin to the shell PATH variable. Such users +and adding /opt/perl5.22.0/bin to the shell PATH variable. Such users may also wish to add a symbolic link /usr/local/bin/perl so that scripts can still start with #!/usr/local/bin/perl. @@ -2535,11 +2535,11 @@ yet. =head2 Upgrading from 5.21.11 or earlier -B<Perl 5.21.12 may not be binary compatible with Perl 5.21.11 or +B<Perl 5.22.0 may not be binary compatible with Perl 5.21.11 or earlier Perl releases.> Perl modules having binary parts (meaning that a C compiler is used) will have to be recompiled to be -used with 5.21.12. If you find you do need to rebuild an extension with -5.21.12, you may safely do so without disturbing the older +used with 5.22.0. If you find you do need to rebuild an extension with +5.22.0, you may safely do so without disturbing the older installations. (See L<"Coexistence with earlier versions of perl 5"> above.) @@ -2572,15 +2572,15 @@ Firstly, the bare minimum to run this script print("$f\n"); } -in Linux with perl-5.21.12 is as follows (under $Config{prefix}): +in Linux with perl-5.22.0 is as follows (under $Config{prefix}): ./bin/perl - ./lib/perl5/5.21.12/strict.pm - ./lib/perl5/5.21.12/warnings.pm - ./lib/perl5/5.21.12/i686-linux/File/Glob.pm - ./lib/perl5/5.21.12/feature.pm - ./lib/perl5/5.21.12/XSLoader.pm - ./lib/perl5/5.21.12/i686-linux/auto/File/Glob/Glob.so + ./lib/perl5/5.22.0/strict.pm + ./lib/perl5/5.22.0/warnings.pm + ./lib/perl5/5.22.0/i686-linux/File/Glob.pm + ./lib/perl5/5.22.0/feature.pm + ./lib/perl5/5.22.0/XSLoader.pm + ./lib/perl5/5.22.0/i686-linux/auto/File/Glob/Glob.so Secondly, for perl-5.10.1, the Debian perl-base package contains 591 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its diff --git a/META.json b/META.json index 2701585..734bed9 100644 --- a/META.json +++ b/META.json @@ -112,7 +112,7 @@ "vxs.inc" ] }, - "release_status" : "unstable", + "release_status" : "testing", "resources" : { "bugtracker" : { "web" : "https://rt.perl.org/" @@ -125,5 +125,5 @@ "url" : "http://perl5.git.perl.org/" } }, - "version" : "5.021012" + "version" : "5.022000" } diff --git a/META.yml b/META.yml index 484c207..552f572 100644 --- a/META.yml +++ b/META.yml @@ -112,4 +112,4 @@ resources: homepage: http://www.perl.org/ license: http://dev.perl.org/licenses/ repository: http://perl5.git.perl.org/ -version: '5.021012' +version: '5.022000' diff --git a/Makefile.SH b/Makefile.SH index 4a7a357..034d812 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -492,7 +492,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/perl52112delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5220delta.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 @@ -1020,9 +1020,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/perl52112delta.pod: pod/perldelta.pod - $(RMS) pod/perl52112delta.pod - $(LNS) perldelta.pod pod/perl52112delta.pod +pod/perl5220delta.pod: pod/perldelta.pod + $(RMS) pod/perl5220delta.pod + $(LNS) perldelta.pod pod/perl5220delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/NetWare/Makefile b/NetWare/Makefile index 74ce3a8..42d85b1 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.21.12 for NetWare" +MODULE_DESC = "Perl 5.22.0 for NetWare" CCTYPE = CodeWarrior C_COMPILER = mwccnlm -c CPP_COMPILER = mwccnlm @@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl # versioned installation can be obtained by setting INST_TOP above to a # path that includes an arbitrary version string. # -INST_VER = \5.21.12 +INST_VER = \5.22.0 # # Comment this out if you DON'T want your perl installation to have diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc index 2d51b03..ef47c60 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.21.12\\lib\\NetWare-x86-multi-thread" /**/ +#define ARCHLIB "c:\\perl\\5.22.0\\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.21.12\\bin\\NetWare-x86-multi-thread" /**/ -#define BIN_EXP "c:\\perl\\5.21.12\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN "c:\\perl\\5.22.0\\bin\\NetWare-x86-multi-thread" /**/ +#define BIN_EXP "c:\\perl\\5.22.0\\bin\\NetWare-x86-multi-thread" /**/ /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, @@ -3051,7 +3051,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.21.12\\lib\\NetWare-x86-multi-thread" /**/ +#define SITEARCH "c:\\perl\\site\\5.22.0\\lib\\NetWare-x86-multi-thread" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -3074,7 +3074,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.21.12\\lib" /**/ +#define SITELIB "c:\\perl\\site\\5.22.0\\lib" /**/ /*#define SITELIB_EXP "" /**/ #define SITELIB_STEM "" /**/ diff --git a/Porting/config.sh b/Porting/config.sh index 578aacb..50c074a 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -39,12 +39,12 @@ alignbytes='4' ansi2knr='' aphostname='/bin/hostname' api_revision='5' -api_subversion='12' -api_version='21' -api_versionstring='5.21.12' +api_subversion='0' +api_version='22' +api_versionstring='5.22.0' ar='ar' -archlib='/pro/lib/perl5/5.21.12/i686-linux-64int' -archlibexp='/pro/lib/perl5/5.21.12/i686-linux-64int' +archlib='/pro/lib/perl5/5.22.0/i686-linux-64int' +archlibexp='/pro/lib/perl5/5.22.0/i686-linux-64int' archname64='64int' archname='i686-linux-64int' archobjs='' @@ -810,7 +810,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.21.12/i686-linux-64int' +installarchlib='/pro/lib/perl5/5.22.0/i686-linux-64int' installbin='/pro/bin' installhtml1dir='' installhtml3dir='' @@ -818,13 +818,13 @@ installman1dir='/pro/local/man/man1' installman3dir='/pro/local/man/man3' installprefix='/pro' installprefixexp='/pro' -installprivlib='/pro/lib/perl5/5.21.12' +installprivlib='/pro/lib/perl5/5.22.0' installscript='/pro/bin' -installsitearch='/pro/lib/perl5/site_perl/5.21.12/i686-linux-64int' +installsitearch='/pro/lib/perl5/site_perl/5.22.0/i686-linux-64int' installsitebin='/pro/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/pro/lib/perl5/site_perl/5.21.12' +installsitelib='/pro/lib/perl5/site_perl/5.22.0' installsiteman1dir='/pro/local/man/man1' installsiteman3dir='/pro/local/man/man3' installsitescript='/pro/bin' @@ -946,7 +946,7 @@ perl_patchlevel='' perl_static_inline='static __inline__' perladmin='[email protected]' perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc' -perlpath='/pro/bin/perl5.21.12' +perlpath='/pro/bin/perl5.22.0' pg='pg' phostname='hostname' pidtype='pid_t' @@ -955,8 +955,8 @@ pmake='' pr='' prefix='/pro' prefixexp='/pro' -privlib='/pro/lib/perl5/5.21.12' -privlibexp='/pro/lib/perl5/5.21.12' +privlib='/pro/lib/perl5/5.22.0' +privlibexp='/pro/lib/perl5/5.22.0' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='4' @@ -1022,17 +1022,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [82 chars truncated] sig_size='69' signal_t='void' -sitearch='/pro/lib/perl5/site_perl/5.21.12/i686-linux-64int' -sitearchexp='/pro/lib/perl5/site_perl/5.21.12/i686-linux-64int' +sitearch='/pro/lib/perl5/site_perl/5.22.0/i686-linux-64int' +sitearchexp='/pro/lib/perl5/site_perl/5.22.0/i686-linux-64int' sitebin='/pro/bin' sitebinexp='/pro/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/pro/lib/perl5/site_perl/5.21.12' +sitelib='/pro/lib/perl5/site_perl/5.22.0' sitelib_stem='/pro/lib/perl5/site_perl' -sitelibexp='/pro/lib/perl5/site_perl/5.21.12' +sitelibexp='/pro/lib/perl5/site_perl/5.22.0' siteman1dir='/pro/local/man/man1' siteman1direxp='/pro/local/man/man1' siteman3dir='/pro/local/man/man3' @@ -1058,7 +1058,7 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/pro/bin/perl5.21.12' +startperl='#!/pro/bin/perl5.22.0' startsh='#!/bin/sh' static_ext=' ' stdchar='char' @@ -1071,7 +1071,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/usr/include/string.h' submit='' -subversion='12' +subversion='0' sysman='/usr/share/man/man1' sysroot='' tail='' @@ -1170,8 +1170,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.21.12' -version_patchlevel_string='version 21 subversion 12' +version='5.22.0' +version_patchlevel_string='version 22 subversion 0' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1180,11 +1180,11 @@ yaccflags='' zcat='' zip='zip' PERL_REVISION=5 -PERL_VERSION=21 -PERL_SUBVERSION=12 +PERL_VERSION=22 +PERL_SUBVERSION=0 PERL_API_REVISION=5 -PERL_API_VERSION=21 -PERL_API_SUBVERSION=12 +PERL_API_VERSION=22 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL='' PERL_CONFIG_SH=true : Variables propagated from previous config.sh file. diff --git a/Porting/config_H b/Porting/config_H index 8d85440..55d20cc 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.21.12/i686-linux-64int-ld" /**/ -#define ARCHLIB_EXP "/pro/lib/perl5/5.21.12/i686-linux-64int-ld" /**/ +#define ARCHLIB "/pro/lib/perl5/5.22.0/i686-linux-64int-ld" /**/ +#define ARCHLIB_EXP "/pro/lib/perl5/5.22.0/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.21.12" /**/ -#define PRIVLIB_EXP "/pro/lib/perl5/5.21.12" /**/ +#define PRIVLIB "/pro/lib/perl5/5.22.0" /**/ +#define PRIVLIB_EXP "/pro/lib/perl5/5.22.0" /**/ /* 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.21.12/i686-linux-64int-ld" /**/ -#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.21.12/i686-linux-64int-ld" /**/ +#define SITEARCH "/pro/lib/perl5/site_perl/5.22.0/i686-linux-64int-ld" /**/ +#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.22.0/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.21.12" /**/ -#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.21.12" /**/ +#define SITELIB "/pro/lib/perl5/site_perl/5.22.0" /**/ +#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.22.0" /**/ #define SITELIB_STEM "/pro/lib/perl5/site_perl" /**/ /* SSize_t: @@ -4326,7 +4326,7 @@ * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/pro/bin/perl5.21.12" /**/ +#define STARTPERL "#!/pro/bin/perl5.22.0" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod index 5969a82..c5fd4c6 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.21.12..HEAD + perl Porting/acknowledgements.pl v5.22.0..HEAD =head1 Reporting Bugs diff --git a/Porting/todo.pod b/Porting/todo.pod index 806c0e9..d581b53 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.21.12. +options would be nice for perl 5.22.0. =head2 Profile Perl - am I hot or not? @@ -1169,7 +1169,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html> =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.21.12" +of 5.22.0" =head2 make ithreads more robust diff --git a/README.haiku b/README.haiku index eb1cbdc..d504889 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.21.12/BePC-haiku/CORE/libperl.so . + cd /boot/common/lib; ln -s perl5/5.22.0/BePC-haiku/CORE/libperl.so . -Replace C<5.21.12> with your respective version of Perl. +Replace C<5.22.0> with your respective version of Perl. =head1 KNOWN PROBLEMS diff --git a/README.macosx b/README.macosx index fbf8c13..51de236 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.21.12.tar.gz - tar -xzf perl-5.21.12.tar.gz - cd perl-5.21.12 + curl -O http://www.cpan.org/src/perl-5.22.0.tar.gz + tar -xzf perl-5.22.0.tar.gz + cd perl-5.22.0 ./Configure -des -Dprefix=/usr/local/ make make test @@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X. =head1 DESCRIPTION -The latest Perl release (5.21.12 as of this writing) builds without changes +The latest Perl release (5.22.0 as of this writing) builds without changes under all versions of Mac OS X from 10.3 "Panther" onwards. In order to build your own version of Perl you will need 'make', diff --git a/README.os2 b/README.os2 index 5c8fcfd..bfe329f 100644 --- a/README.os2 +++ b/README.os2 @@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L<"PERLLIB_PREFIX">. =item Additional Perl modules - unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.21.12/ + unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.22.0/ Same remark as above applies. Additionally, if this directory is not one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you diff --git a/README.vms b/README.vms index 8232f56..70ca101 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^.21^.12.tar + vmstar -xvf perl-5^.22^.0.tar Then set default to the top-level source directory like so: - set default [.perl-5^.21^.12] + set default [.perl-5^.22^.0] and proceed with configuration as described in the next section. diff --git a/README.win32 b/README.win32 index 403c517..605f980 100644 --- a/README.win32 +++ b/README.win32 @@ -396,7 +396,7 @@ Be sure to read the instructions near the top of the makefiles carefully. Type "dmake" (or "nmake" if you are using that make). This should build everything. Specifically, it will create perl.exe, -perl521.dll at the perl toplevel, and various other extension dll's +perl522.dll at the perl toplevel, and various other extension dll's under the lib\auto directory. If the build fails for any reason, make sure you have done the previous steps correctly. diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm index 5ce7e5c..cefe087 100644 --- a/dist/Module-CoreList/lib/Module/CoreList.pm +++ b/dist/Module-CoreList/lib/Module/CoreList.pm @@ -275,7 +275,7 @@ sub changes_between { 5.021009 => '2015-02-21', 5.021010 => '2015-03-20', 5.021011 => '2015-04-20', - 5.021012 => '????-??-??', + 5.022000 => '????-??-??', ); for my $version ( sort { $a <=> $b } keys %released ) { @@ -11397,14 +11397,15 @@ for my $version ( sort { $a <=> $b } keys %released ) { removed => { } }, - 5.021012 => { + 5.022000 => { delta_from => 5.021011, changed => { - 'B::Op_private' => '5.021012', - 'Config' => '5.021012', 'Module::CoreList' => '5.20150520', 'Module::CoreList::TieHashDelta'=> '5.20150520', 'Module::CoreList::Utils'=> '5.20150520', + 'B::Op_private' => '5.022000', + 'Config' => '5.022', + 'overload' => '1.26', }, removed => { } @@ -11958,7 +11959,7 @@ for my $version (sort { $a <=> $b } keys %delta) { removed => { } }, - 5.021012 => { + 5.022000 => { delta_from => 5.021011, changed => { }, diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm index e267cae..e8f6e6f 100644 --- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm +++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm @@ -1045,7 +1045,7 @@ my %delta = ( removed => { } }, - 5.021012 => { + 5.022000 => { delta_from => 5.021011, changed => { }, diff --git a/hints/catamount.sh b/hints/catamount.sh index c1a374f..d9b4fd9 100644 --- a/hints/catamount.sh +++ b/hints/catamount.sh @@ -31,11 +31,11 @@ # mkdir -p /opt/perl-catamount # mkdir -p /opt/perl-catamount/include # mkdir -p /opt/perl-catamount/lib -# mkdir -p /opt/perl-catamount/lib/perl5/5.21.12 +# mkdir -p /opt/perl-catamount/lib/perl5/5.22.0 # mkdir -p /opt/perl-catamount/bin # cp *.h /opt/perl-catamount/include # cp libperl.a /opt/perl-catamount/lib -# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.21.12 +# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.22.0 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib # # With the headers and the libperl.a you can embed Perl to your Catamount diff --git a/intrpvar.h b/intrpvar.h index bc40aef..b847ff3 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -179,7 +179,7 @@ PERLVAR(I, statgv, GV *) PERLVARI(I, statname, SV *, NULL) #ifdef HAS_TIMES -/* Will be removed soon after v5.21.12. See RT #121351 */ +/* Will be removed soon after v5.22.0. See RT #121351 */ PERLVAR(I, timesbuf, struct tms) #endif @@ -753,7 +753,7 @@ PERLVARI(I, globhook, globhook_t, NULL) PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */ -/* The last unconditional member of the interpreter structure when 5.21.12 was +/* The last unconditional member of the interpreter structure when 5.22.0 was released. The offset of the end of this is baked into a global variable in any shared perl library which will allow a sanity test in future perl releases. */ diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm index d1e0350..b07d6b0 100644 --- a/lib/B/Op_private.pm +++ b/lib/B/Op_private.pm @@ -118,7 +118,7 @@ package B::Op_private; our %bits; -our $VERSION = "5.021012"; +our $VERSION = "5.022000"; $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv); $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv); diff --git a/lib/overload.pm b/lib/overload.pm index 414c386..4a1912c 100644 --- a/lib/overload.pm +++ b/lib/overload.pm @@ -1,6 +1,6 @@ package overload; -our $VERSION = '1.25'; +our $VERSION = '1.26'; %ops = ( with_assign => "+ - * / % ** << >> x .", @@ -383,6 +383,7 @@ hash C<%overload::ops>: Most of the overloadable operators map one-to-one to these keys. Exceptions, including additional overloadable operations not apparent from this hash, are included in the notes which follow. +This list is subject to growth over time. A warning is issued if an attempt is made to register an operator not found above. diff --git a/patchlevel.h b/patchlevel.h index 5b404be..4aaaa55 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -14,8 +14,8 @@ * exactly on the third column */ #define PERL_REVISION 5 /* age */ -#define PERL_VERSION 21 /* epoch */ -#define PERL_SUBVERSION 12 /* generation */ +#define PERL_VERSION 22 /* epoch */ +#define PERL_SUBVERSION 0 /* generation */ /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API @@ -35,8 +35,8 @@ changing them should not be necessary. */ #define PERL_API_REVISION 5 -#define PERL_API_VERSION 21 -#define PERL_API_SUBVERSION 12 +#define PERL_API_VERSION 22 +#define PERL_API_SUBVERSION 0 /* XXX Note: The selection of non-default Configure options, such as -Duselonglong may invalidate these settings. Currently, Configure @@ -133,6 +133,7 @@ hunk. # endif static const char * const local_patches[] = { NULL + ,"RC0" #ifdef PERL_GIT_UNCOMMITTED_CHANGES ,"uncommitted-changes" #endif diff --git a/plan9/config.plan9 b/plan9/config.plan9 index 9682db7..da0454b 100644 --- a/plan9/config.plan9 +++ b/plan9/config.plan9 @@ -3373,8 +3373,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/sys/lib/perl/5.21.12" /**/ -#define PRIVLIB_EXP "/sys/lib/perl/5.21.12" /**/ +#define PRIVLIB "/sys/lib/perl/5.22.0" /**/ +#define PRIVLIB_EXP "/sys/lib/perl/5.22.0" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -3501,9 +3501,9 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "/sys/lib/perl/5.21.12/site_perl" /**/ -#define SITELIB_EXP "/sys/lib/perl/5.21.12/site_perl" /**/ -#define SITELIB_STEM "/sys/lib/perl/5.21.12/site_perl" /**/ +#define SITELIB "/sys/lib/perl/5.22.0/site_perl" /**/ +#define SITELIB_EXP "/sys/lib/perl/5.22.0/site_perl" /**/ +#define SITELIB_STEM "/sys/lib/perl/5.22.0/site_perl" /**/ /* Size_t_size: * This symbol holds the size of a Size_t in bytes. diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample index 11a54a6..907493d 100644 --- a/plan9/config_sh.sample +++ b/plan9/config_sh.sample @@ -32,12 +32,12 @@ alignbytes='4' ansi2knr='' aphostname='/bin/uname -n' api_revision='5' -api_subversion='12' -api_version='21' -api_versionstring='5.21.12' +api_subversion='0' +api_version='22' +api_versionstring='5.22.0' ar='ar' -archlib='/sys/lib/perl5/5.21.12/386' -archlibexp='/sys/lib/perl5/5.21.12/386' +archlib='/sys/lib/perl5/5.22.0/386' +archlibexp='/sys/lib/perl5/5.22.0/386' archname64='' archname='386' archobjs='' @@ -787,17 +787,17 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='/sys/lib/perl/5.21.12/386' +installarchlib='/sys/lib/perl/5.22.0/386' installbin='/usr/bin' installman1dir='/sys/man/1pub' installman3dir='/sys/man/2pub' installprefix='/usr' installprefixexp='/usr' -installprivlib='/sys/lib/perl/5.21.12' +installprivlib='/sys/lib/perl/5.22.0' installscript='/usr/bin' -installsitearch='/sys/lib/perl/5.21.12/site_perl/386' +installsitearch='/sys/lib/perl/5.22.0/site_perl/386' installsitebin='/usr/bin' -installsitelib='/sys/lib/perl/5.21.12/site_perl' +installsitelib='/sys/lib/perl/5.22.0/site_perl' installstyle='lib/perl5' installusrbinperl='undef' installvendorarch='' @@ -918,8 +918,8 @@ pmake='' pr='' prefix='/usr' prefixexp='/usr' -privlib='/sys/lib/perl/5.21.12' -privlibexp='/sys/lib/perl/5.21.12' +privlib='/sys/lib/perl/5.22.0' +privlibexp='/sys/lib/perl/5.22.0' procselfexe='' prototype='define' ptrsize='4' @@ -984,13 +984,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [7 chars truncated] sig_size='50' signal_t='void' -sitearch='/sys/lib/perl/5.21.12/site_perl/386' +sitearch='/sys/lib/perl/5.22.0/site_perl/386' sitearchexp='/sys/lib/perl/site_perl/386' sitebin='/usr/bin' sitebinexp='/usr/bin' -sitelib='/sys/lib/perl/5.21.12/site_perl' -sitelib_stem='/sys/lib/perl/5.21.12/site_perl' -sitelibexp='/sys/lib/perl/5.21.12/site_perl' +sitelib='/sys/lib/perl/5.22.0/site_perl' +sitelib_stem='/sys/lib/perl/5.22.0/site_perl' +sitelibexp='/sys/lib/perl/5.22.0/site_perl' siteprefix='/usr' siteprefixexp='/usr' sizesize='4' @@ -1023,7 +1023,7 @@ stdio_stream_array='' strerror_r_proto='0' strings='/sys/include/ape/string.h' submit='' -subversion='12' +subversion='0' sysman='/sys/man/1pub' tail='' tar='' @@ -1105,8 +1105,8 @@ vendorlib_stem='' vendorlibexp='' vendorprefix='' vendorprefixexp='' -version='5.21.12' -version_patchlevel_string='version 21 subversion 12' +version='5.22.0' +version_patchlevel_string='version 22 subversion 0' versiononly='undef' vi='' xlibpth='' @@ -1119,10 +1119,10 @@ config_arg0='./Configure' config_args='' config_argc=0 PERL_REVISION=5 -PERL_VERSION=21 -PERL_SUBVERSION=12 +PERL_VERSION=22 +PERL_SUBVERSION=0 PERL_API_REVISION=5 -PERL_API_VERSION=21 -PERL_API_SUBVERSION=12 +PERL_API_VERSION=22 +PERL_API_SUBVERSION=0 PERL_PATCHLEVEL= PERL_CONFIG_SH=true diff --git a/pod/.gitignore b/pod/.gitignore index 1ef8495..e6a3ab3 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl52112delta.pod +/perl5220delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perldelta.pod b/pod/perldelta.pod index d1a5fc9..58617d9 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,224 +2,676 @@ =head1 NAME -[ this is a template for a new perldelta file. Any text flagged as XXX needs -to be processed before release. ] - -perldelta - what is new for perl v5.21.12 +perldelta - what is new for perl v5.22.0 =head1 DESCRIPTION -This document describes differences between the 5.21.11 release and the 5.21.12 +This document describes differences between the 5.22.0 release and the 5.20.0 release. -If you are upgrading from an earlier release such as 5.21.10, first read -L<perl52111delta>, which describes differences between 5.21.10 and 5.21.11. +If you are upgrading from an earlier release such as 5.18.0, first read +L<perl5200delta>, which describes differences between 5.18.0 and 5.20.0. + +=head1 Core Enhancements -=head1 Notice +=head2 New bitwise operators -XXX Any important notices here +A new experimental facility has been added that makes the four standard +bitwise operators (C<& | ^ ~>) treat their operands consistently as +numbers, and introduces four new dotted operators (C<&. |. ^. ~.>) that +treat their operands consistently as strings. The same applies to the +assignment variants (C<&= |= ^= &.= |.= ^.=>). -=head1 Core Enhancements +To use this, enable the "bitwise" feature and disable the +"experimental::bitwise" warnings category. See L<perlop/Bitwise String +Operators> for details. [rt.perl.org #123466] + +=head2 New double-diamond operator + +C<<< <<>> >>> is like C<< <> >> but uses three-argument C<open> to open +each file in @ARGV. So each element of @ARGV is an actual file name, and +"|foo" won't be treated as a pipe open. + +=head2 New \b boundaries in regular expressions + +=head3 qr/\b{gcb}/ + +C<gcb> stands for Grapheme Cluster Boundary. It is a Unicode property +that finds the boundary between sequences of characters that look like a +single character to a native speaker of a language. Perl has long had +the ability to deal with these through the C<\X> regular escape +sequence. Now, there is an alternative way of handling these. See +L<perlrebackslash/\b{}, \b, \B{}, \B> for details. + +=head3 qr/\b{wb}/ + +C<wb> stands for Word Boundary. It is a Unicode property +that finds the boundary between words. This is similar to the plain +C<\b> (without braces) but is more suitable for natural language +processing. It knows, for example that apostrophes can occur in the +middle of words. See L<perlrebackslash/\b{}, \b, \B{}, \B> for details. + +=head3 qr/\b{sb}/ + +C<sb> stands for Sentence Boundary. It is a Unicode property +to aid in parsing natural language sentences. +See L<perlrebackslash/\b{}, \b, \B{}, \B> for details. + +=head2 C<no re> covers more and is lexical + +Previously running C<no re> would only turn off a few things. Now it +turns off all the enabled things. For example, previously, you +couldn't turn off debugging, once enabled, inside the same block. + +=head2 Non-Capturing Regular Expression Flag + +Regular expressions now support a C</n> flag that disables capturing +and filling in C<$1>, C<$2>, etc... inside of groups: + + "hello" =~ /(hi|hello)/n; # $1 is not set + +This is equivalent to putting C<?:> at the beginning of every capturing group. + +See L<perlre/"n"> for more information. + +=head2 C<use re 'strict'> + +This applies stricter syntax rules to regular expression patterns +compiled within its scope, which hopefully will alert you to typos and +other unintentional behavior that backwards-compatibility issues prevent +us from doing in normal regular expression compilations. Because the +behavior of this is subject to change in future Perl releases as we gain +experience, using this pragma will raise a category +C<experimental::re_strict> warning. +See L<'strict' in re|re/'strict' mode>. + +=head2 C<qr/foo/x> now ignores any Unicode pattern white space + +The C</x> regular expression modifier allows the pattern to contain +white space and comments, both of which are ignored, for improved +readability. Until now, not all the white space characters that Unicode +designates for this purpose were handled. The additional ones now +recognized are +U+0085 NEXT LINE, +U+200E LEFT-TO-RIGHT MARK, +U+200F RIGHT-TO-LEFT MARK, +U+2028 LINE SEPARATOR, +and +U+2029 PARAGRAPH SEPARATOR. + +=head2 Unicode 7.0 is now supported + +For details on what is in this release, see +L<http://www.unicode.org/versions/Unicode7.0.0/>. + +=head2 S<C<use locale>> can restrict which locale categories are affected + +It is now possible to pass a parameter to S<C<use locale>> to specify +a subset of locale categories to be locale-aware, with the remaining +ones unaffected. See L<perllocale/The "use locale" pragma> for details. + +=head2 Perl now supports POSIX 2008 locale currency additions. + +On platforms that are able to handle POSIX.1-2008, the +hash returned by +L<C<POSIX::localeconv()>|perllocale/The localeconv function> +includes the international currency fields added by that version of the +POSIX standard. These are +C<int_n_cs_precedes>, +C<int_n_sep_by_space>, +C<int_n_sign_posn>, +C<int_p_cs_precedes>, +C<int_p_sep_by_space>, +and +C<int_p_sign_posn>. + +=head2 Better heuristics on older platforms for determining locale UTF8ness + +On platforms that implement neither the C99 standard nor the POSIX 2001 +standard, determining if the current locale is UTF8 or not depends on +heuristics. These are improved in this release. + +=head2 Aliasing via reference + +Variables and subroutines can now be aliased by assigning to a reference: + + \$c = \$d; + \&x = \&y; + +Or by using a backslash before a C<foreach> iterator variable, which is +perhaps the most useful idiom this feature provides: + + foreach \%hash (@array_of_hash_refs) { ... } + +This feature is experimental and must be enabled via C<use feature +'refaliasing'>. It will warn unless the C<experimental::refaliasing> +warnings category is disabled. + +See L<perlref/Assigning to References> + +=head2 C<prototype> with no arguments + +C<prototype()> with no arguments now infers C<$_>. [perl #123514] + +=head2 New "const" subroutine attribute + +The "const" attribute can be applied to an anonymous subroutine. It causes +it to be executed immediately when it is cloned. Its value is captured and +used to create a new constant subroutine that is returned. This feature is +experimental. See L<perlsub/Constant Functions>. + +=head2 C<fileno> now works on directory handles + +When the relevant support is available in the operating system, the +C<fileno> builtin now works on directory handles, yielding the +underlying file descriptor in the same way as for filehandles. On +operating systems without such support, C<fileno> on a directory handle +continues to return the undefined value, as before, but also sets C<$!> to +indicate that the operation is not supported. + +Currently, this uses either a C<dd_fd> member in the OS C<DIR> +structure, or a dirfd(3) function as specified by POSIX.1-2008. + +=head2 List form of pipe open implemented for Win32 + +The list form of pipe: + + open my $fh, "-|", "program", @arguments; + +is now implemented on Win32. It has the same limitations as C<system +LIST> on Win32, since the Win32 API doesn't accept program arguments +as a list. + +=head2 C<close> now sets C<$!> + +When an I/O error occurs, the fact that there has been an error is recorded +in the handle. C<close> returns false for such a handle. Previously, the +value of C<$!> would be untouched by C<close>, so the common convention of +writing C<close $fh or die $!> did not work reliably. Now the handle +records the value of C<$!>, too, and C<close> restores it. + +=head2 Assignment to list repetition + +C<(...) x ...> can now be used within a list that is assigned to, as long +as the left-hand side is a valid lvalue. This allows C<(undef,undef,$foo) += that_function()> to be written as C<((undef)x2, $foo) = that_function()>. + +=head2 Infinity and NaN (not-a-number) handling improved + +Floating point values are able to hold the special values infinity (also +-infinity), and NaN (not-a-number). Now we more robustly recognize and +propagate the value in computations, and on output normalize them to C<Inf> and +C<NaN>. + +See also the L<POSIX> enhancements. + +=head2 Floating point parsing has been improved + +Parsing and printing of floating point values has been improved. + +As a completely new feature, hexadecimal floating point literals +(like 0x1.23p-4) are now supported, and they can be output with +C<printf %a>. + +=head2 Packing infinity or not-a-number into a character is now fatal + +Before, when trying to pack infinity or not-a-number into a +(signed) character, Perl would warn, and assumed you tried to +pack C<< 0xFF >>; if you gave it as an argument to C<< chr >>, +C<< U+FFFD >> was returned. + +But now, all such actions (C<< pack >>, C<< chr >>, and C<< print '%c' >>) +result in a fatal error. + +=head2 Experimental C Backtrace API -XXX New core language features go here. Summarize user-visible core language -enhancements. Particularly prominent performance optimisations could go -here, but most should go in the L</Performance Enhancements> section. +Starting from Perl 5.21.1, on some platforms Perl supports retrieving +the C level backtrace (similar to what symbolic debuggers like gdb do). -[ List each enhancement as a =head2 entry ] +The backtrace returns the stack trace of the C call frames, +with the symbol names (function names), the object names (like "perl"), +and if it can, also the source code locations (file:line). + +The supported platforms are Linux and OS X (some *BSD might work at +least partly, but they have not yet been tested). + +The feature needs to be enabled with C<Configure -Dusecbacktrace>. + +Also included is a C API to retrieve backtraces. + +See L<perlhacktips/"C backtrace"> for more information. =head1 Security -XXX Any security-related notices go here. In particular, any security -vulnerabilities closed should be noted here rather than in the -L</Selected Bug Fixes> section. +=head2 Perl is now compiled with -fstack-protector-strong if available + +Perl has been compiled with the anti-stack-smashing option +C<-fstack-protector> since 5.10.1. Now Perl uses the newer variant +called C<-fstack-protector-strong>, if available. + +=head2 The L<Safe> module could allow outside packages to be replaced + +Critical bugfix: outside packages could be replaced. L<Safe> has +been patched to 2.38 to address this. + +=head2 Perl is now always compiled with -D_FORTIFY_SOURCE=2 if available -[ List each security issue as a =head2 entry ] +The 'code hardening' option called C<_FORTIFY_SOURCE>, available in +gcc 4.*, is now always used for compiling Perl, if available. + +Note that this isn't necessarily a huge step since in many platforms +the step had already been taken several years ago: many Linux +distributions (like Fedora) have been using this option for Perl, +and OS X has enforced the same for many years. =head1 Incompatible Changes -XXX For a release on a stable branch, this section aspires to be: +=head2 Subroutine signatures moved before attributes + +The experimental sub signatures feature, as introduced in 5.20, parsed +signatures after attributes. In this release, the positioning has been +moved such that signatures occur after the subroutine name (if any) and +before the attribute list (if any). + +=head2 C<&> and C<\&> prototypes accepts only subs + +The C<&> prototype character now accepts only anonymous subs (C<sub {...}>) +and things beginning with C<\&>. Formerly it erroneously also allowed +C<undef> and references to array, hashes, and lists. [perl #4539] +[perl #123062] + +The C<\&> prototype was allowing subroutine calls, whereas now it only +allows subroutines. C<&foo> is permitted. C<&foo()> and C<foo()> are not. +[perl #77860] + +=head2 C<use encoding> is now lexical + +The L<encoding> pragma's effect is now limited to lexical scope. This +pragma is deprecated, but in the meantime, it could adversely affect +unrelated modules that are included in the same program. + +=head2 List slices returning empty lists + +List slices return an empty list now only if the original list was empty +(or if there are no indices). Formerly, a list slice would return an empty +list if all indices fell outside the original list. [perl #114498] + +=head2 C<\N{}> with a sequence of multiple spaces is now a fatal error. + +This has been deprecated since v5.18. + +=head2 S<C<use UNIVERSAL '...'>> is now a fatal error + +Importing functions from C<UNIVERSAL> has been deprecated since v5.12, and +is now a fatal error. S<C<"use UNIVERSAL">> without any arguments is still +allowed. + +=head2 In double-quotish C<\cI<X>>, I<X> must now be a printable ASCII character + +In prior releases, failure to do this raised a deprecation warning. + +=head2 Splitting the tokens C<(?> and C<(*> in regular expressions is +now a fatal compilation error. + +These had been deprecated since v5.18. + +=head2 5 additional characters are treated as white space under C</x> in +regex patterns (unless escaped) + +The use of these characters with C</x> outside bracketed character +classes and when not preceded by a backslash has raised a deprecation +warning since v5.18. Now they will be ignored. See L</"qr/foo/x"> +for the list of the five characters. + +=head2 Comment lines within S<C<(?[ ])>> now are ended only by a C<\n> + +S<C<(?[ ])>> is an experimental feature, introduced in v5.18. It operates +as if C</x> is always enabled. But there was a difference, comment +lines (following a C<#> character) were terminated by anything matching +C<\R> which includes all vertical whitespace, such as form feeds. For +consistency, this is now changed to match what terminates comment lines +outside S<C<(?[ ])>>, namely a C<\n> (even if escaped), which is the +same as what terminates a heredoc string and formats. + +=head2 C<(?[...])> operators now follow standard Perl precedence + +This experimental feature allows set operations in regular expression patterns. +Prior to this, the intersection operator had the same precedence as the other +binary operators. Now it has higher precedence. This could lead to different +outcomes than existing code expects (though the documentation has always noted +that this change might happen, recommending fully parenthesizing the +expressions). See L<perlrecharclass/Extended Bracketed Character Classes>. + +=head2 Omitting % and @ on hash and array names is no longer permitted - There are no changes intentionally incompatible with 5.XXX.XXX - If any exist, they are bugs, and we request that you submit a - report. See L</Reporting Bugs> below. +Really old Perl let you omit the @ on array names and the % on hash +names in some spots. This has issued a deprecation warning since Perl +5.0, and is no longer permitted. -[ List each incompatible change as a =head2 entry ] +=head2 C<"$!"> text is now in English outside C<"use locale"> scope + +Previously, the text, unlike almost everything else, always came out +based on the current underlying locale of the program. (Also affected +on some systems is C<"$^E>".) For programs that are unprepared to +handle locale, this can cause garbage text to be displayed. It's better +to display text that is translatable via some tool than garbage text +which is much harder to figure out. + +=head2 C<"$!"> text will be returned in UTF-8 when appropriate + +The stringification of C<$!> and C<$^E> will have the UTF-8 flag set +when the text is actually non-ASCII UTF-8. This will enable programs +that are set up to be locale-aware to properly output messages in the +user's native language. Code that needs to continue the 5.20 and +earlier behavior can do the stringification within the scopes of both +'use bytes' and 'use locale ":messages". No other Perl operations will +be affected by locale; only C<$!> and C<$^E> stringification. The +'bytes' pragma causes the UTF-8 flag to not be set, just as in previous +Perl releases. This resolves [perl #112208]. + +=head2 Support for C<?PATTERN?> without explicit operator has been removed + +Starting regular expressions matching only once directly with the +question mark delimiter is now a syntax error, so that the question mark +can be available for use in new operators. Write C<m?PATTERN?> instead, +explicitly using the C<m> operator: the question mark delimiter still +invokes match-once behaviour. + +=head2 C<defined(@array)> and C<defined(%hash)> are now fatal errors + +These have been deprecated since v5.6.1 and have raised deprecation +warnings since v5.16. + +=head2 Using a hash or an array as a reference are now fatal errors. + +For example, C<%foo-E<gt>{"bar"}> now causes a fatal compilation +error. These have been deprecated since before v5.8, and have raised +deprecation warnings since then. + +=head2 Changes to the C<*> prototype + +The C<*> character in a subroutine's prototype used to allow barewords to take +precedence over most, but not all subroutines. It was never consistent and +exhibited buggy behaviour. + +Now it has been changed, so subroutines always take precedence over barewords, +which brings it into conformity with similarly prototyped built-in functions: + + sub splat(*) { ... } + sub foo { ... } + splat(foo); # now always splat(foo()) + splat(bar); # still splat('bar') as before + close(foo); # close(foo()) + close(bar); # close('bar') =head1 Deprecations -XXX Any deprecated features, syntax, modules etc. should be listed here. +=head2 Setting C<${^ENCODING}> to anything but C<undef> -=head2 Module removals +This variable allows Perl scripts to be written in a non-ASCII, +non-UTF-8 encoding. However, it affects all modules globally, leading +to wrong answers and segmentation faults. New scripts should be written +in UTF-8; old scripts should be converted to UTF-8, which is easily done +with the L<encoding> pragma. -XXX Remove this section if inapplicable. +=head2 C<< /\C/ >> character class -The following modules will be removed from the core distribution in a -future release, and will at that time need to be installed from CPAN. -Distributions on CPAN which require these modules will need to list them as -prerequisites. +This character class, which matches a single byte, even if it appears +in a multi-byte character has been deprecated. Matching single bytes +in a multi-byte character breaks encapsulation, and can corrupt utf8 +strings. -The core versions of these modules will now issue C<"deprecated">-category -warnings to alert you to this fact. To silence these deprecation warnings, -install the modules in question from CPAN. +=head2 Use of non-graphic characters in single-character variable names -Note that these are (with rare exceptions) fine modules that you are encouraged -to continue to use. Their disinclusion from core primarily hinges on their -necessity to bootstrapping a fully functional, CPAN-capable Perl installation, -not usually on concerns over their design. +The syntax for single-character variable names is more lenient than +for longer variable names, allowing the one-character name to be a +punctuation character or even invisible (a non-graphic). Perl v5.20 +deprecated the ASCII-range controls as such a name. Now, all +non-graphic characters that formerly were allowed are deprecated. +The practical effect of this occurs only when not under C<S<"use +utf8">>, and affects just the C1 controls (code points 0x80 through +0xFF), NO-BREAK SPACE, and SOFT HYPHEN. -=over +=head2 Inlining of C<sub () { $var }> with observable side-effects -=item XXX +In many cases Perl makes sub () { $var } into an inlinable constant +subroutine, capturing the value of $var at the time the C<sub> expression +is evaluated. This can break the closure behaviour in those cases where +$var is subsequently modified. The subroutine won't return the new value. -XXX Note that deprecated modules should be listed here even if they are listed -as an updated module in the L</Modules and Pragmata> section. +This usage is now deprecated in those cases where the variable could be +modified elsewhere. Perl detects those cases and emits a deprecation +warning. Such code will likely change in the future and stop producing a +constant. -=back +If your variable is only modified in the place where it is declared, then +Perl will continue to make the sub inlinable with no warnings. -[ List each other deprecation as a =head2 entry ] + sub make_constant { + my $var = shift; + return sub () { $var }; # fine + } -=head1 Performance Enhancements + sub make_constant_deprecated { + my $var; + $var = shift; + return sub () { $var }; # deprecated + } -XXX Changes which enhance performance without changing behaviour go here. -There may well be none in a stable release. + sub make_constant_deprecated2 { + my $var = shift; + log_that_value($var); # could modify $var + return sub () { $var }; # deprecated + } -[ List each enhancement as a =item entry ] +In the second example above, detecting that $var is assigned to only once +is too hard to detect. That it happens in a spot other than the C<my> +declaration is enough for Perl to find it suspicious. -=over 4 +This deprecation warning happens only for a simple variable for the body of +the sub. (A C<BEGIN> block or C<use> statement inside the sub is ignored, +because it does not become part of the sub's body.) For more complex +cases, such as C<sub () { do_something() if 0; $var }> the behaviour has +changed such that inlining does not happen if the variable is modifiable +elsewhere. Such cases should be rare. -=item * +=head2 Use of multiple /x regexp modifiers -XXX +It is now deprecated to say something like any of the following: -=back + qr/foo/xx; + /(?xax:foo)/; + use re qw(/amxx); -=head1 Modules and Pragmata +That is, now C<x> should only occur once in any string of contiguous +regular expression pattern modifiers. We do not believe there are any +occurrences of this in all of CPAN. This is in preparation for a future +Perl release having C</xx> mean to allow white-space for readability in +bracketed character classes (those enclosed in square brackets: +C<[...]>). -XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> -go here. If Module::CoreList is updated, generate an initial draft of the -following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary -for important changes should then be added by hand. In an ideal world, -dual-life modules would have a F<Changes> file that could be cribbed. +=head2 Using a NO-BREAK space in a character alias for C<\N{...}> is now +deprecated -[ Within each section, list entries as a =item entry ] +This non-graphic character is essentially indistinguishable from a +regular space, and so should not be allowed. See +L<charnames/CUSTOM ALIASES>. -=head2 New Modules and Pragmata +=head2 A literal C<"{"> should now be escaped in a pattern + +If you want a literal left curly bracket (also called a left brace) in a +regular expression pattern, you should now escape it by either +preceding it with a backslash (C<"\{">) or enclosing it within square +brackets C<"[{]">, or by using C<\Q>; otherwise a deprecation warning +will be raised. This was first announced as forthcoming in the v5.16 +release; it will allow future extensions to the language to happen. + +=head2 Making all warnings fatal is discouraged + +The documentation for L<fatal warnings|warnings/Fatal Warnings> notes that +C<< use warnings FATAL => 'all' >> is discouraged and provides stronger +language about the risks of fatal warnings in general. + +=head1 Performance Enhancements =over 4 =item * -XXX - -=back +If method and class names are known at compile time, hashes are precomputed +to speed up run-time method lookup. Also, compound method names like +C<SUPER::new> are parsed at compile time, to save having to parse them at +run time. -=head2 Updated Modules and Pragmata +=item * -=over 4 +Array and hash lookups (especially nested ones) that use only constants +or simple variables as keys, are now considerably faster. See +L</Internal Changes> for more details. =item * -L<Module::CoreList> has been upgraded from version 5.20150420 to 5.20150520. +C<(...)x1>, C<("constant")x0> and C<($scalar)x0> are now optimised in list +context. If the right-hand argument is a constant 1, the repetition +operator disappears. If the right-hand argument is a constant 0, the whole +expressions is optimised to the empty list, so long as the left-hand +argument is a simple scalar or constant. C<(foo())x0> is not optimised. -Updated to cover the latest releases of Perl. +=item * -=back +C<substr> assignment is now optimised into 4-argument C<substr> at the end +of a subroutine (or as the argument to C<return>). Previously, this +optimisation only happened in void context. -=head2 Removed Modules and Pragmata +=item * -=over 4 +Assignment to lexical variables is often optimised away. For instance, in +C<$lexical = chr $foo>, the C<chr> operator writes directly to the lexical +variable instead of returning a value that gets copied. This optimisation +has been extended to C<split>, C<x> and C<vec> on the right-hand side. It +has also been made to work with state variable initialization. =item * -XXX +In "\L...", "\Q...", etc., the extra "stringify" op is now optimised away, +making these just as fast as C<lcfirst>, C<quotemeta>, etc. -=back +=item * -=head1 Documentation +Assignment to an empty list is now sometimes faster. In particular, it +never calls C<FETCH> on tied arguments on the right-hand side, whereas it +used to sometimes. + +=item * -XXX Changes to files in F<pod/> go here. Consider grouping entries by -file and be sure to link to the appropriate page, e.g. L<perlfunc>. +C<length> is up to 20% faster for non-magical/non-tied scalars containing a +string if it is a non-utf8 string or if C<use bytes;> is in scope. -=head2 New Documentation +=item * -XXX Changes which create B<new> files in F<pod/> go here. +Non-magical/non-tied scalars that contain only a floating point value and are +on most Perl builds with 64 bit integers now use 8-32 less bytes of memory +depending on OS. -=head3 L<XXX> +=item * -XXX Description of the purpose of the new file here +In C<@array = split>, the assignment can be optimized away with C<split> +writing directly to the array. This optimisation was happening only for +package arrays other than @_ and only +sometimes. Now this optimisation happens +almost all the time. -=head2 Changes to Existing Documentation +=item * -XXX Changes which significantly change existing files in F<pod/> go here. -However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> -section. +C<join> is now subject to constant folding. Moreover, C<join> with a +scalar or constant for the separator and a single-item list to join is +simplified to a stringification. The separator doesn't even get evaluated. -=head3 L<XXX> +=item * -=over 4 +C<qq(@array)> is implemented using two ops: a stringify op and a join op. +If the qq contains nothing but a single array, the stringification is +optimized away. =item * -XXX Description of the change here +C<our $var> and C<our($s,@a,%h)> in void context are no longer evaluated at +run time. Even a whole sequence of C<our $foo;> statements will simply be +skipped over. The same applies to C<state> variables. -=back +=item * -=head1 Diagnostics +Many internal functions have been refactored to improve performance and reduce +their memory footprints. -The following additions or changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L<perldiag>. +L<[perl #121436]|https://rt.perl.org/Ticket/Display.html?id=121436> +L<[perl #121906]|https://rt.perl.org/Ticket/Display.html?id=121906> +L<[perl #121969]|https://rt.perl.org/Ticket/Display.html?id=121969> -XXX New or changed warnings emitted by the core's C<C> code go here. Also -include any changes in L<perldiag> that reconcile it to the C<C> code. +=item * -=head2 New Diagnostics +C<-T> and C<-B> filetests will return sooner when an empty file is detected. -XXX Newly added diagnostic messages go under here, separated into New Errors -and New Warnings +L<perl #121489|https://rt.perl.org/Ticket/Display.html?id=121489> -=head3 New Errors +=item * -=over 4 +Refactoring of C<< pp_tied >> and CC<< pp_ref >> for small improvements. =item * -XXX L<message|perldiag/"message"> +Pathtools don't try to load XS on miniperl. -=back +=item * -=head3 New Warnings +A typo fix reduces the size of the C<< OP >> structure. -=over 4 +=item * + +Hash lookups where the key is a constant is faster. =item * -XXX L<message|perldiag/"message"> +Subroutines with an empty prototype and bodies containing just C<undef> are now +eligible for inlining. +L<[perl #122728]|https://rt.perl.org/Ticket/Display.html?id=122728> -=back +=item * -=head2 Changes to Existing Diagnostics +Subroutines in packages no longer need to carry typeglobs around with them. +Declaring a subroutine will now put a simple sub reference in the stash if +possible, saving memory. The typeglobs still notionally exist, so accessing +them will cause the subroutine reference to be upgraded to a typeglob. This +optimization does not currently apply to XSUBs or exported subroutines, and +method calls will undo it, since they cache things in typeglobs. +L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441> -XXX Changes (i.e. rewording) of diagnostic messages go here +=item * -=over 4 +The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()> +(see L<utf8>) are now optimized out on ASCII platforms. There is now not even +a minimal performance hit in writing code portable between ASCII and EBCDIC +platforms. =item * -XXX Describe change here +Win32 Perl uses 8 KB less of per-process memory than before for every perl +process of this version. This data is now memory mapped from disk and shared +between perl processes from the same perl binary. =back -=head1 Utility Changes +=head1 Modules and Pragmata -XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. -Most of these are built within the directory F<utils>. +XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> +go here. If Module::CoreList is updated, generate an initial draft of the +following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary +for important changes should then be added by hand. In an ideal world, +dual-life modules would have a F<Changes> file that could be cribbed. -[ List utility changes as a =head2 entry for each utility and =item -entries for each change -Use L<XXX> with program names to get proper documentation linking. ] +[ Within each section, list entries as a =item entry ] -=head2 L<XXX> +=head2 New Modules and Pragmata =over 4 @@ -229,14 +681,17 @@ XXX =back -=head1 Configuration and Compilation +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<XXX> has been upgraded from version A.xx to B.yy. -XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools -go here. Any other changes to the Perl build process should be listed here. -However, any platform-specific changes should be listed in the -L</Platform Support> section, instead. +=back -[ List changes as a =item entry ]. +=head2 Removed Modules and Pragmata =over 4 @@ -246,141 +701,2490 @@ XXX =back -=head1 Testing +=head1 Documentation + +=head2 New Documentation -XXX Any significant changes to the testing of a freshly built perl should be -listed here. Changes which create B<new> files in F<t/> go here as do any -large changes to the testing harness (e.g. when parallel testing was added). -Changes to existing files in F<t/> aren't worth summarizing, although the bugs -that they represent may be covered elsewhere. +=head3 L<perlunicook> -[ List each test improvement as a =item entry ] +This document, by Tom Christiansen, provides examples of handling Unicode in +Perl. + +=head2 Changes to Existing Documentation + +=head3 L<perlapi> =over 4 =item * -XXX +Note that C<SvSetSV> doesn't do set magic. -=back +=item * -=head1 Platform Support +C<sv_usepvn_flags> - Fix documentation to mention the use of C<NewX> instead of +C<malloc>. -XXX Any changes to platform support should be listed in the sections below. +L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869> -[ Within the sections, list each platform as a =item entry with specific -changes as paragraphs below it. ] +=item * -=head2 New Platforms +Clarify where C<NUL> may be embedded or is required to terminate a string. -XXX List any platforms that this version of perl compiles on, that previous -versions did not. These will either be enabled by new files in the F<hints/> -directories, or new subdirectories and F<README> files at the top level of the -source tree. +=item * -=over 4 +Previously missing documentation due to formatting errors are now included. -=item XXX-some-platform +=item * -XXX +Entries are now organized into groups rather than by file where they are found. -=back +=item * -=head2 Discontinued Platforms +Alphabetical sorting of entries is now handled by the POD generator to make +entries easier to find when scanning. + +=back -XXX List any platforms that this version of perl no longer compiles on. +=head3 L<perldata> =over 4 -=item XXX-some-platform +=item * -XXX +The syntax of single-character variable names has been brought +up-to-date and more fully explained. =back -=head2 Platform-Specific Notes - -XXX List any changes for specific platforms. This could include configuration -and compilation changes or changes in portability/compatibility. However, -changes within modules for platforms should generally be listed in the -L</Modules and Pragmata> section. +=head3 L<perlebcdic> =over 4 -=item XXX-some-platform +=item * -XXX +This document has been significantly updated in the light of recent +improvements to EBCDIC support. =back -=head1 Internal Changes +=head3 L<perlfunc> -XXX Changes which affect the interface available to C<XS> code go here. Other -significant internal changes for future core maintainers should be noted as -well. +=over 4 -[ List each change as a =item entry ] +=item * **** PATCH TRUNCATED AT 2000 LINES -- 2830 NOT SHOWN **** -- Perl5 Master Repository
