From e68989453658c6837bc53c1a6a3aee086cd7a05f Mon Sep 17 00:00:00 2001 From: Chris 'BinGOs' Williams Date: Wed, 20 Nov 2013 21:52:25 +0000 Subject: [PATCH] New perldelta for v5.19.7 --- MANIFEST | 1 + Makefile.SH | 8 +- pod/.gitignore | 2 +- pod/perl.pod | 1 + pod/perl5196delta.pod | 611 +++++++++++++++++++++++++++++++++++++++++++++++ pod/perldelta.pod | 562 ++++++++++++++----------------------------- vms/descrip_mms.template | 2 +- win32/Makefile | 4 +- win32/makefile.mk | 4 +- win32/pod.mak | 4 + 10 files changed, 805 insertions(+), 394 deletions(-) create mode 100644 pod/perl5196delta.pod diff --git a/MANIFEST b/MANIFEST index 2c7233a..17bda1e 100644 --- a/MANIFEST +++ b/MANIFEST @@ -4507,6 +4507,7 @@ pod/perl5192delta.pod Perl changes in version 5.19.2 pod/perl5193delta.pod Perl changes in version 5.19.3 pod/perl5194delta.pod Perl changes in version 5.19.4 pod/perl5195delta.pod Perl changes in version 5.19.5 +pod/perl5196delta.pod Perl changes in version 5.19.6 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 diff --git a/Makefile.SH b/Makefile.SH index bbd3313..7b64e71 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -503,7 +503,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/perl5196delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5197delta.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 @@ -981,9 +981,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/perl5196delta.pod: pod/perldelta.pod - $(RMS) pod/perl5196delta.pod - $(LNS) perldelta.pod pod/perl5196delta.pod +pod/perl5197delta.pod: pod/perldelta.pod + $(RMS) pod/perl5197delta.pod + $(LNS) perldelta.pod pod/perl5197delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/pod/.gitignore b/pod/.gitignore index 9234458..8fdd46c 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -58,7 +58,7 @@ /roffitall # generated -/perl5196delta.pod +/perl5197delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index 1902f05..fa27056 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -179,6 +179,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5196delta Perl changes in version 5.19.6 perl5195delta Perl changes in version 5.19.5 perl5194delta Perl changes in version 5.19.4 perl5193delta Perl changes in version 5.19.3 diff --git a/pod/perl5196delta.pod b/pod/perl5196delta.pod new file mode 100644 index 0000000..004d1a0 --- /dev/null +++ b/pod/perl5196delta.pod @@ -0,0 +1,611 @@ +=encoding utf8 + +=head1 NAME + +perl5196delta - what is new for perl v5.19.6 + +=head1 DESCRIPTION + +This document describes differences between the 5.19.5 release and the 5.19.6 +release. + +If you are upgrading from an earlier release such as 5.19.4, first read +L, which describes differences between 5.19.4 and 5.19.5. + +=head1 Core Enhancements + +=head2 $a and $b warnings exemption + +The special variables $a and $b, used in C, are now exempt from "used +once" warnings, even where C is not used. This makes it easier for +CPAN modules to provide functions using $a and $b for similar purposes. +[perl #120462] + +=head1 Deprecations + +=head2 Module removals + +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. + +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. + +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. + +=over + +=item L + +=back + +=head1 Performance Enhancements + +=over 4 + +=item * + +Constant hash key lookups (C<$hash{key}> as opposed to C<$hash{$key}>) have +long had the internal hash value computed at compile time, to speed up +lookup. This optimisation has only now been applied to hash slices as +well. + +=item * + +Combined C and C operators in void context, like those +generated for C<< unless ($a && $b) >> and C<< if ($a || b) >> now +short circuit directly to the end of the statement. [perl #120128] + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L has been upgraded from version 1.92 to 1.96. + +=item * + +L has been upgraded from version 5.73 to 5.74. + +=item * + +L has been upgraded from version 1.46 to 1.47. + +C<< B::PMOP->precomp >> now preserves the internal UTF8 flag correctly, so +chr 256 remains chr 256, instead of turning into "\xc4\x80". This allows +L to deparse Unicode regular expression correctly. +[perl #120182] + +C<< B::HV->ARRAY >> now preserves the UTF8 flag on returned hash keys. +[perl #120535] + +=item * + +L has been upgraded from version 0.99 to 0.991. + +B<-debug> output now includes C pointers. + +=item * + +L has been upgraded from version 1.23 to 1.24. + +C is now deparsed in a way that does not issue warnings when +parsed again. [perl #119807] + +C is now deparsed correctly, rather than as C<< >> or +similar. + +C is now deparsed correctly with the CORE:: prefix when there +is a subroutine named "glob". + +=item * + +L has been upgraded from version 1.18 to 1.19. + +=item * + +L has been upgraded from version 0.36 to 0.37. + +=item * + +L has been upgraded from version 2.062 to 2.063. + +=item * + +L has been upgraded from version 2.062 to 2.063. + +=item * + +L has been upgraded from version 1.28 to 1.29. + +=item * + +L has been upgraded from version 1.829 to 1.831. + +=item * + +L has been upgraded from version 6.80 to 6.82. + +=item * + +L has been upgraded from version 0.036 to 0.038. + +=item * + +L has been upgraded from version 1.29 to 1.30. + +=item * + +L has been upgraded from version 1.21 to 1.22. + +Removing a closed file handle from an IO::Select object now correctly +updates its internal state and returns the correct value. [perl #75156] + +=item * + +L has been upgraded from version 1.24 to 1.25. + +An issue with escaped backslashes if the literal is compiled as +function argument has been resolved. + +=item * + +L has been upgraded from version 0.84_01 to 0.90. + +=item * + +L has been upgraded from version 0.4007 to 0.4202. + +NOTE: L is deprecated and may be removed from a future version of Perl. + +=item * + +L has been upgraded from version 3.00 to 3.01. + +The list of Perl versions covered has been updated. + +=item * + +L has been upgraded from version 0.02 to 0.04. + +NOTE: L is deprecated and may be removed from a future version of Perl. + +=item * + +L has been upgraded from version 0.17 to 0.18. + +A bug fix in 0.17 caused references to be stringified as soon as a handle +to it was opened, even if it was opened only for reading. It also croaked +on read-only references. This has been fixed. [perl #119529] + +=item * + +L has been upgraded from version 2.012 to 2.013. + +=item * + +L has been upgraded from version 1.13 to 1.15. + +=item * + +L has been upgraded from version 3.29 to 3.30. + +=item * + +L has been upgraded from version 0.99 to 1.001002. + +=item * + +L has been upgraded from version 4.3 to 4.4. + +It no longer prints C<$\> twice. [perl #120202] + +It no longer ignores the offset passed to C. + +=item * + +L has been upgraded from version 1.89 to 1.90. + +=item * + +L has been upgraded from version 1.44 to 1.45. + +=item * + +L has been upgraded from version 0.99 to 1.02. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +=over 4 + +=item * + +L has been updated to include some more examples of C usage. + +=item * + +L: + +C, clarify hash "modify while iterating". + +C, the documentation for verbatim tables has been clarified. + +=item * + +L, the documentation for C and C<(?# comment)> has been expanded and clarified. + +=item * + +L, a note has been added to users of C warnings of the risk of upgrades. + +=back + +=head1 Diagnostics + +=head2 Changes to Existing Diagnostics + +=over 4 + +=item * + +L<%%s[%s] in scalar context better written as $%s[%s]|perldiag/"%%s[%s] in scalar context better written as $%s[%s]">: + +This warning now occurs for any C<%array[$index]> or C<%hash{key}> known to +be in scalar context at compile time. Previously it was worded "Scalar +value %%s[%s] better written as $%s[%s]". + +=item * + +L%sE|perldiag/"Switch condition not recognized in regex; marked by <-- HERE in m/%s/">: + +The description for this diagnostic has been extended to cover all cases where the warning may occur. +Issues with the positioning of the arrow indicator have also been resolved. + +=back + +=head1 Testing + +=over 4 + +=item * + +F has been converted from manual C +statements to Test::More functions. Each test now has a description. +[perl #120503] + +=back + +=head1 Platform Support + +=head2 New Platforms + +=over 4 + +=item Synology + +Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative +cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ +P1022 ppc - e500v2) not meant for workstations or development. These boxes +should build now. The basic problems are the non-standard location for tools. + +=back + +=head2 Platform-Specific Notes + +=over 4 + +=item Windows + +Support for building with Visual C++ 2013 has been added. There are currently +two possible test failures (see L) which +will hopefully be resolved soon. + +Experimental support for building with Intel C++ Compiler has been added. Only +the nmake makefile (win32/Makefile) can be used. A "nmake test" will not pass +at this time due to "cpan/CGI/t/url.t". + +=item WinCE + +Perl can now be built in one shot with no user intervention on WinCE by running +C. + +Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl +can also be built using Smart Devices for Visual C++ 2005 or 2008. + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++ +compilers to emulate the aliasing of C to C that perl does for +C89 compilers. [perl #120314] + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +Perl 5.18.0 accidentally disallowed C<-bareword> under C and +C. This has been fixed. [perl #120288] + +=item * + +C<-a> at the start of a line (or a hyphen with any single letter that is +not a filetest operator) no longer produces an erroneous 'Use of "-a" +without parentheses is ambiguous' warning. [perl #120288] + +=item * + +Lvalue context is now properly propagated into bare blocks and C and +C blocks in lvalue subroutines. Previously, arrays and hashes would +sometimes incorrectly be flattened when returned in lvalue list context, or +"Bizarre copy" errors could occur. [perl #119797] + +=item * + +Lvalue context is now propagated to the branches of C<||> and C<&&> (and +their alphabetic equivalents, C and C). This means +C now allows C to be modified +through $_. + +=item * + +C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding +C subs declared thereafter. + +=item * + +C and C remember the last handle used; the former +for the special C<_> filehandle, the latter for C<${^LAST_FH}>. +C where *foo was the last handle passed to C +or C could cause that handle to be forgotten if the +handle were not opened yet. This has been fixed. + +=item * + +Various cases of C, C etc. causing a crash +have been fixed. [perl #54044] + +=item * + +Assigning another typeglob to C<*^R> no longer makes the regular expression +engine crash. + +=item * + +C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}> +rather than whichever array C<@DB::dbline> is aliased to. [perl #119799] + +=item * + +Setting C<$!> to EACCESS before calling C could affect +C's behaviour. This has been fixed. + +=item * + +The "Can't use \1 to mean $1 in expression" warning message now only occurs +on the right-hand (replacement) part of a substitution. Formerly it could +happen in code embedded in the left-hand side, or in any other quote-like +operator. + +=item * + +The C<\N> regular expression escape, when used without the curly braces (to +mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace +under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced +in 5.12.0. + +=item * + +Blessing into a reference (C) has long been +disallowed, but magical scalars for the second like C<$/> and those tied +were exempt. They no longer are. [perl #119809] + +=item * + +Blessing into a reference was accidentally allowed in 5.18 if the class +argument were a blessed reference with stale method caches (i.e., whose +class had had subs defined since the last method call). They are +disallowed once more, as in 5.16. + +=item * + +An undefined lexical sub used as an inherited method no longer crashes. + +=item * + +C<< $x->{key} >> where $x was declared as C no longer crashes +if a Class::FIELDS subroutine stub has been declared. + +=item * + +C<@$obj{'key'}> and C<${$obj}{key}> used to be exempt from compile-time +field checking ("No such class field"; see L) but no longer are. + +=item * + +That compile-time field checking also applies now to the C<%$obj{'key'}> +syntax, added recently in Perl 5.19.4. + +=item * + +A nonexistent array element with a large index passed to a subroutine that +ties the array and then tries to access the element no longer results in a +crash. + +=item * + +Declaring a subroutine stub named NEGATIVE_INDICES no longer makes negative +array indices crash when the current package is a tied array class. + +=item * + +Declaring a C, C, or C subroutine stub in the +CORE::GLOBAL:: package no longer makes compilation of calls to the +corresponding functions crash. + +=item * + +Aliasing CORE::GLOBAL:: functions to constants stopped working in Perl 5.10 +but has now been fixed. + +=item * + +When C<`...`> or C calls a C override, double-quotish +interpolation now happens, as is the case when there is no override. +Previously, the presence of an override would make these quote-like +operators act like C, suppressing interpolation. [perl #115330] + +=item * + +C<<<`...`> here-docs (with backticks as the delimiters) now call +C overrides. [perl #119827] + +=item * + +The presence of a lexical sub named "CORE" no longer stops the CORE:: +prefix from working. + +=item * + +C<&CORE::exit()> and C<&CORE::die()> now respect L hints. + +=item * + +Undefining a glob that triggers a DESTROY method that undefines the same +glob is now safe. It used to produce "Attempt to free unreferenced glob +pointer" warnings and leak memory. + +=item * + +If subroutine redefinition (C or C for XS code) +triggers a DESTROY method on the sub that is being redefined, and that +method assigns a subroutine to the same slot (C<*foo = sub {}>), C<$_[0]> +is no longer left pointing to a freed scalar. Now DESTROY is delayed until +the new subroutine has been installed. + +=item * + +C, C and C now work when a wide character is used as the +delimiter. [perl #120463] + +=item * + +On Windows, perl no longer calls CloseHandle() on a socket handle. This makes +debugging easier on Windows by removing certain irrelevant bad handle +exceptions. It also fixes a race condition that made socket functions randomly +fail in a Perl process with multiple OS threads, and possible test failures in +F. [perl #120091/118059] + +=item * + +Some cases of unterminated (?...) sequences in regular expressions (e.g., +C) have been fixed to produce the proper error message instead of +"panic: memory wrap". Other cases (e.g., C) have yet to be fixed. + +=item * + +Strange vars like ties, overloads, or stringified refs (and in recent +perls, pure NOK vars) would generally do the wrong thing in formats +when the var is treated as a string and repeatedly chopped, as in +^<<<~~ and similar. This has now been resolved. + +=back + +=head1 Known Problems + +=over 4 + +=item * + +C used to call a sub named "CORE" and treat its return value as +a file name to execute. A bug fix inadvertently caused it to be +interpreted as the deprecated "do-SUB" construct. (Yes, C()> is inconsistent.) This will likely be changed back. + +=back + +=head1 Acknowledgements + +Perl 5.19.6 represents approximately 4 weeks of development since Perl 5.19.5 +and contains approximately 88,000 lines of changes across 630 files from 24 +authors. + +Perl continues to flourish into its third decade thanks to a vibrant community +of users and developers. The following people are known to have contributed the +improvements that became Perl 5.19.6: + +Anno Siegel, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David +Mitchell, Father Chrysostomos, François Perrad, H.Merijn Brand, James E +Keenan, Jerry D. Hedden, Karen Etheridge, Karl Williamson, Kevin Falcone, Lukas +Mai, Marc Simpson, Matthew Horsfall, Peter Martini, Petr Písař, Reini Urban, +Steve Hay, Tom Hukins, Tony Cook, Victor Efimov, Yves Orton. + +The list above is almost certainly incomplete as it is automatically generated +from version control history. In particular, it does not include the names of +the (very much appreciated) contributors who reported issues to the Perl bug +tracker. + +Many of the changes included in this version originated in the CPAN modules +included in Perl's core. We're grateful to the entire CPAN community for +helping Perl to flourish. + +For a more complete list of all of Perl's historical contributors, please see +the F file in the Perl source distribution. + +=head1 Reporting Bugs + +If you find what you think is a bug, you might check the articles recently +posted to the comp.lang.perl.misc newsgroup and the perl bug database at +http://rt.perl.org/perlbug/ . There may also be information at +http://www.perl.org/ , the Perl Home Page. + +If you believe you have an unreported bug, please run the L program +included with your release. Be sure to trim your bug down to a tiny but +sufficient test case. Your bug report, along with the output of C, +will be sent off to perlbug@perl.org to be analysed by the Perl porting team. + +If the bug you are reporting has security implications, which make it +inappropriate to send to a publicly archived mailing list, then please send it +to perl5-security-report@perl.org. This points to a closed subscription +unarchived mailing list, which includes all the core committers, who will be +able to help assess the impact of issues, figure out a resolution, and help +co-ordinate the release of patches to mitigate or fix the problem across all +platforms on which Perl is supported. Please only use this address for +security issues in the Perl core, not for modules independently distributed on +CPAN. + +=head1 SEE ALSO + +The F file for an explanation of how to view exhaustive details on +what changed. + +The F file for how to build Perl. + +The F file for general stuff. + +The F and F files for copyright information. + +=cut diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 8113a68..f80bd5f 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,29 +2,57 @@ =head1 NAME -perldelta - what is new for perl v5.19.6 +[ 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.19.7 =head1 DESCRIPTION -This document describes differences between the 5.19.5 release and the 5.19.6 +This document describes differences between the 5.19.6 release and the 5.19.7 release. -If you are upgrading from an earlier release such as 5.19.4, first read -L, which describes differences between 5.19.4 and 5.19.5. +If you are upgrading from an earlier release such as 5.19.5, first read +L, which describes differences between 5.19.5 and 5.19.6. + +=head1 Notice + +XXX Any important notices here =head1 Core Enhancements -=head2 $a and $b warnings exemption +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 section. + +[ List each enhancement as a =head2 entry ] + +=head1 Security + +XXX Any security-related notices go here. In particular, any security +vulnerabilities closed should be noted here rather than in the +L section. + +[ List each security issue as a =head2 entry ] -The special variables $a and $b, used in C, are now exempt from "used -once" warnings, even where C is not used. This makes it easier for -CPAN modules to provide functions using $a and $b for similar purposes. -[perl #120462] +=head1 Incompatible Changes + +XXX For a release on a stable branch, this section aspires to be: + + 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 below. + +[ List each incompatible change as a =head2 entry ] =head1 Deprecations +XXX Any deprecated features, syntax, modules etc. should be listed here. + =head2 Module removals +XXX Remove this section if inapplicable. + 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 @@ -41,545 +69,311 @@ not usually on concerns over their design. =over -=item L +XXX Note that deprecated modules should be listed here even if they are listed +as an updated module in the L section. =back +[ List each other deprecation as a =head2 entry ] + =head1 Performance Enhancements -=over 4 +XXX Changes which enhance performance without changing behaviour go here. +There may well be none in a stable release. -=item * +[ List each enhancement as a =item entry ] -Constant hash key lookups (C<$hash{key}> as opposed to C<$hash{$key}>) have -long had the internal hash value computed at compile time, to speed up -lookup. This optimisation has only now been applied to hash slices as -well. +=over 4 =item * -Combined C and C operators in void context, like those -generated for C<< unless ($a && $b) >> and C<< if ($a || b) >> now -short circuit directly to the end of the statement. [perl #120128] +XXX =back =head1 Modules and Pragmata -=head2 Updated Modules and Pragmata +XXX All changes to installed files in F, F, F and F +go here. If Module::CoreList is updated, generate an initial draft of the +following sections using F, which prints stub +entries to STDOUT. Results can be pasted in place of the '=head2' entries +below. A paragraph summary for important changes should then be added by hand. +In an ideal world, dual-life modules would have a F file that could be +cribbed. -=over 4 - -=item * - -L has been upgraded from version 1.92 to 1.96. - -=item * - -L has been upgraded from version 5.73 to 5.74. - -=item * +[ Within each section, list entries as a =item entry ] -L has been upgraded from version 1.46 to 1.47. +=head2 New Modules and Pragmata -C<< B::PMOP->precomp >> now preserves the internal UTF8 flag correctly, so -chr 256 remains chr 256, instead of turning into "\xc4\x80". This allows -L to deparse Unicode regular expression correctly. -[perl #120182] - -C<< B::HV->ARRAY >> now preserves the UTF8 flag on returned hash keys. -[perl #120535] - -=item * - -L has been upgraded from version 0.99 to 0.991. - -B<-debug> output now includes C pointers. - -=item * - -L has been upgraded from version 1.23 to 1.24. - -C is now deparsed in a way that does not issue warnings when -parsed again. [perl #119807] - -C is now deparsed correctly, rather than as C<< >> or -similar. - -C is now deparsed correctly with the CORE:: prefix when there -is a subroutine named "glob". - -=item * - -L has been upgraded from version 1.18 to 1.19. - -=item * - -L has been upgraded from version 0.36 to 0.37. +=over 4 =item * -L has been upgraded from version 2.062 to 2.063. - -=item * +XXX -L has been upgraded from version 2.062 to 2.063. +=back -=item * +=head2 Updated Modules and Pragmata -L has been upgraded from version 1.28 to 1.29. +=over 4 =item * -L has been upgraded from version 1.829 to 1.831. - -=item * +L has been upgraded from version A.xx to B.yy. -L has been upgraded from version 6.80 to 6.82. +=back -=item * +=head2 Removed Modules and Pragmata -L has been upgraded from version 0.036 to 0.038. +=over 4 =item * -L has been upgraded from version 1.29 to 1.30. +XXX -=item * +=back -L has been upgraded from version 1.21 to 1.22. +=head1 Documentation -Removing a closed file handle from an IO::Select object now correctly -updates its internal state and returns the correct value. [perl #75156] +XXX Changes to files in F go here. Consider grouping entries by +file and be sure to link to the appropriate page, e.g. L. -=item * +=head2 New Documentation -L has been upgraded from version 1.24 to 1.25. +XXX Changes which create B files in F go here. -An issue with escaped backslashes if the literal is compiled as -function argument has been resolved. +=head3 L -=item * +XXX Description of the purpose of the new file here -L has been upgraded from version 0.84_01 to 0.90. +=head2 Changes to Existing Documentation -=item * +XXX Changes which significantly change existing files in F go here. +However, any changes to F should go in the L +section. -L has been upgraded from version 0.4007 to 0.4202. +=head3 L -NOTE: L is deprecated and may be removed from a future version of Perl. +=over 4 =item * -L has been upgraded from version 3.00 to 3.01. - -The list of Perl versions covered has been updated. +XXX Description of the change here -=item * +=back -L has been upgraded from version 0.02 to 0.04. +=head1 Diagnostics -NOTE: L is deprecated and may be removed from a future version of Perl. +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. -=item * +XXX New or changed warnings emitted by the core's C code go here. Also +include any changes in L that reconcile it to the C code. -L has been upgraded from version 0.17 to 0.18. +=head2 New Diagnostics -A bug fix in 0.17 caused references to be stringified as soon as a handle -to it was opened, even if it was opened only for reading. It also croaked -on read-only references. This has been fixed. [perl #119529] +XXX Newly added diagnostic messages go under here, separated into New Errors +and New Warnings -=item * +=head3 New Errors -L has been upgraded from version 2.012 to 2.013. +=over 4 =item * -L has been upgraded from version 1.13 to 1.15. - -=item * +XXX L -L has been upgraded from version 3.29 to 3.30. +=back -=item * +=head3 New Warnings -L has been upgraded from version 0.99 to 1.001002. +=over 4 =item * -L has been upgraded from version 4.3 to 4.4. +XXX L -It no longer prints C<$\> twice. [perl #120202] +=back -It no longer ignores the offset passed to C. +=head2 Changes to Existing Diagnostics -=item * +XXX Changes (i.e. rewording) of diagnostic messages go here -L has been upgraded from version 1.89 to 1.90. +=over 4 =item * -L has been upgraded from version 1.44 to 1.45. +XXX Describe change here -=item * +=back -L has been upgraded from version 0.99 to 1.02. +=head1 Utility Changes -=back +XXX Changes to installed programs such as F and F go here. +Most of these are built within the directories F and F. -=head1 Documentation +[ List utility changes as a =head3 entry for each utility and =item +entries for each change +Use L with program names to get proper documentation linking. ] -=head2 Changes to Existing Documentation +=head3 L =over 4 =item * -L has been updated to include some more examples of C usage. +XXX -=item * - -L: +=back -C, clarify hash "modify while iterating". +=head1 Configuration and Compilation -C, the documentation for verbatim tables has been clarified. +XXX Changes to F, F, F, 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 section, instead. -=item * +[ List changes as a =item entry ]. -L, the documentation for C and C<(?# comment)> has been expanded and clarified. +=over 4 =item * -L, a note has been added to users of C warnings of the risk of upgrades. +XXX =back -=head1 Diagnostics +=head1 Testing -=head2 Changes to Existing Diagnostics +XXX Any significant changes to the testing of a freshly built perl should be +listed here. Changes which create B files in F go here as do any +large changes to the testing harness (e.g. when parallel testing was added). +Changes to existing files in F aren't worth summarizing, although the bugs +that they represent may be covered elsewhere. + +[ List each test improvement as a =item entry ] =over 4 =item * -L<%%s[%s] in scalar context better written as $%s[%s]|perldiag/"%%s[%s] in scalar context better written as $%s[%s]">: +XXX -This warning now occurs for any C<%array[$index]> or C<%hash{key}> known to -be in scalar context at compile time. Previously it was worded "Scalar -value %%s[%s] better written as $%s[%s]". +=back -=item * +=head1 Platform Support -L%sE|perldiag/"Switch condition not recognized in regex; marked by <-- HERE in m/%s/">: +XXX Any changes to platform support should be listed in the sections below. -The description for this diagnostic has been extended to cover all cases where the warning may occur. -Issues with the positioning of the arrow indicator have also been resolved. +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -=back +=head2 New Platforms -=head1 Testing +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 +directories, or new subdirectories and F files at the top level of the +source tree. =over 4 -=item * +=item XXX-some-platform -F has been converted from manual C -statements to Test::More functions. Each test now has a description. -[perl #120503] +XXX =back -=head1 Platform Support +=head2 Discontinued Platforms -=head2 New Platforms +XXX List any platforms that this version of perl no longer compiles on. =over 4 -=item Synology +=item XXX-some-platform -Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative -cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ -P1022 ppc - e500v2) not meant for workstations or development. These boxes -should build now. The basic problems are the non-standard location for tools. +XXX =back =head2 Platform-Specific Notes -=over 4 - -=item Windows +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 section. -Support for building with Visual C++ 2013 has been added. There are currently -two possible test failures (see L) which -will hopefully be resolved soon. - -Experimental support for building with Intel C++ Compiler has been added. Only -the nmake makefile (win32/Makefile) can be used. A "nmake test" will not pass -at this time due to "cpan/CGI/t/url.t". - -=item WinCE +=over 4 -Perl can now be built in one shot with no user intervention on WinCE by running -C. +=item XXX-some-platform -Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl -can also be built using Smart Devices for Visual C++ 2005 or 2008. +XXX =back =head1 Internal Changes -=over 4 - -=item * - -Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++ -compilers to emulate the aliasing of C to C that perl does for -C89 compilers. [perl #120314] - -=back +XXX Changes which affect the interface available to C code go here. Other +significant internal changes for future core maintainers should be noted as +well. -=head1 Selected Bug Fixes +[ List each change as a =item entry ] =over 4 =item * -Perl 5.18.0 accidentally disallowed C<-bareword> under C and -C. This has been fixed. [perl #120288] - -=item * - -C<-a> at the start of a line (or a hyphen with any single letter that is -not a filetest operator) no longer produces an erroneous 'Use of "-a" -without parentheses is ambiguous' warning. [perl #120288] - -=item * - -Lvalue context is now properly propagated into bare blocks and C and -C blocks in lvalue subroutines. Previously, arrays and hashes would -sometimes incorrectly be flattened when returned in lvalue list context, or -"Bizarre copy" errors could occur. [perl #119797] - -=item * - -Lvalue context is now propagated to the branches of C<||> and C<&&> (and -their alphabetic equivalents, C and C). This means -C now allows C to be modified -through $_. - -=item * - -C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding -C subs declared thereafter. - -=item * - -C and C remember the last handle used; the former -for the special C<_> filehandle, the latter for C<${^LAST_FH}>. -C where *foo was the last handle passed to C -or C could cause that handle to be forgotten if the -handle were not opened yet. This has been fixed. - -=item * - -Various cases of C, C etc. causing a crash -have been fixed. [perl #54044] - -=item * - -Assigning another typeglob to C<*^R> no longer makes the regular expression -engine crash. - -=item * - -C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}> -rather than whichever array C<@DB::dbline> is aliased to. [perl #119799] - -=item * - -Setting C<$!> to EACCESS before calling C could affect -C's behaviour. This has been fixed. - -=item * - -The "Can't use \1 to mean $1 in expression" warning message now only occurs -on the right-hand (replacement) part of a substitution. Formerly it could -happen in code embedded in the left-hand side, or in any other quote-like -operator. - -=item * - -The C<\N> regular expression escape, when used without the curly braces (to -mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace -under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced -in 5.12.0. - -=item * - -Blessing into a reference (C) has long been -disallowed, but magical scalars for the second like C<$/> and those tied -were exempt. They no longer are. [perl #119809] - -=item * - -Blessing into a reference was accidentally allowed in 5.18 if the class -argument were a blessed reference with stale method caches (i.e., whose -class had had subs defined since the last method call). They are -disallowed once more, as in 5.16. - -=item * - -An undefined lexical sub used as an inherited method no longer crashes. +XXX -=item * - -C<< $x->{key} >> where $x was declared as C no longer crashes -if a Class::FIELDS subroutine stub has been declared. - -=item * - -C<@$obj{'key'}> and C<${$obj}{key}> used to be exempt from compile-time -field checking ("No such class field"; see L) but no longer are. - -=item * - -That compile-time field checking also applies now to the C<%$obj{'key'}> -syntax, added recently in Perl 5.19.4. - -=item * - -A nonexistent array element with a large index passed to a subroutine that -ties the array and then tries to access the element no longer results in a -crash. - -=item * - -Declaring a subroutine stub named NEGATIVE_INDICES no longer makes negative -array indices crash when the current package is a tied array class. - -=item * - -Declaring a C, C, or C subroutine stub in the -CORE::GLOBAL:: package no longer makes compilation of calls to the -corresponding functions crash. - -=item * - -Aliasing CORE::GLOBAL:: functions to constants stopped working in Perl 5.10 -but has now been fixed. - -=item * - -When C<`...`> or C calls a C override, double-quotish -interpolation now happens, as is the case when there is no override. -Previously, the presence of an override would make these quote-like -operators act like C, suppressing interpolation. [perl #115330] - -=item * - -C<<<`...`> here-docs (with backticks as the delimiters) now call -C overrides. [perl #119827] - -=item * - -The presence of a lexical sub named "CORE" no longer stops the CORE:: -prefix from working. - -=item * - -C<&CORE::exit()> and C<&CORE::die()> now respect L hints. - -=item * - -Undefining a glob that triggers a DESTROY method that undefines the same -glob is now safe. It used to produce "Attempt to free unreferenced glob -pointer" warnings and leak memory. - -=item * - -If subroutine redefinition (C or C for XS code) -triggers a DESTROY method on the sub that is being redefined, and that -method assigns a subroutine to the same slot (C<*foo = sub {}>), C<$_[0]> -is no longer left pointing to a freed scalar. Now DESTROY is delayed until -the new subroutine has been installed. - -=item * - -C, C and C now work when a wide character is used as the -delimiter. [perl #120463] +=back -=item * +=head1 Selected Bug Fixes -On Windows, perl no longer calls CloseHandle() on a socket handle. This makes -debugging easier on Windows by removing certain irrelevant bad handle -exceptions. It also fixes a race condition that made socket functions randomly -fail in a Perl process with multiple OS threads, and possible test failures in -F. [perl #120091/118059] +XXX Important bug fixes in the core language are summarized here. Bug fixes in +files in F and F are best summarized in L. -=item * +[ List each fix as a =item entry ] -Some cases of unterminated (?...) sequences in regular expressions (e.g., -C) have been fixed to produce the proper error message instead of -"panic: memory wrap". Other cases (e.g., C) have yet to be fixed. +=over 4 =item * -Strange vars like ties, overloads, or stringified refs (and in recent -perls, pure NOK vars) would generally do the wrong thing in formats -when the var is treated as a string and repeatedly chopped, as in -^<<<~~ and similar. This has now been resolved. +XXX =back =head1 Known Problems +XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any +tests that had to be Ced for the release would be noted here. Unfixed +platform specific bugs also go here. + +[ List each fix as a =item entry ] + =over 4 =item * -C used to call a sub named "CORE" and treat its return value as -a file name to execute. A bug fix inadvertently caused it to be -interpreted as the deprecated "do-SUB" construct. (Yes, C()> is inconsistent.) This will likely be changed back. +XXX =back -=head1 Acknowledgements - -Perl 5.19.6 represents approximately 4 weeks of development since Perl 5.19.5 -and contains approximately 88,000 lines of changes across 630 files from 24 -authors. - -Perl continues to flourish into its third decade thanks to a vibrant community -of users and developers. The following people are known to have contributed the -improvements that became Perl 5.19.6: +=head1 Obituary -Anno Siegel, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David -Mitchell, Father Chrysostomos, François Perrad, H.Merijn Brand, James E -Keenan, Jerry D. Hedden, Karen Etheridge, Karl Williamson, Kevin Falcone, Lukas -Mai, Marc Simpson, Matthew Horsfall, Peter Martini, Petr Písař, Reini Urban, -Steve Hay, Tom Hukins, Tony Cook, Victor Efimov, Yves Orton. +XXX If any significant core contributor has died, we've added a short obituary +here. -The list above is almost certainly incomplete as it is automatically generated -from version control history. In particular, it does not include the names of -the (very much appreciated) contributors who reported issues to the Perl bug -tracker. +=head1 Acknowledgements -Many of the changes included in this version originated in the CPAN modules -included in Perl's core. We're grateful to the entire CPAN community for -helping Perl to flourish. +XXX Generate this with: -For a more complete list of all of Perl's historical contributors, please see -the F file in the Perl source distribution. + perl Porting/acknowledgements.pl v5.19.7..HEAD =head1 Reporting Bugs If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at -http://rt.perl.org/perlbug/ . There may also be information at +https://rt.perl.org/ . There may also be information at http://www.perl.org/ , the Perl Home Page. If you believe you have an unreported bug, please run the L program diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 8bc4f6e..1cc70bb 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -318,7 +318,7 @@ x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5196delta.pod +PERLDELTA_CURRENT = [.pod]perl5197delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/Makefile b/win32/Makefile index f6bae3c..cfd8ed3 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1181,7 +1181,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5196delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5197delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1279,7 +1279,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5196delta.pod perlaix.pod perlamiga.pod perlapi.pod \ + perl5197delta.pod perlaix.pod perlamiga.pod perlapi.pod \ perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod perldos.pod \ perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \ perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 6bff14e..691b3ca 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1345,7 +1345,7 @@ utils: $(PERLEXE) $(X2P) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5196delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5197delta.pod $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1442,7 +1442,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5196delta.pod perlaix.pod perlamiga.pod perlapi.pod \ + perl5197delta.pod perlaix.pod perlamiga.pod perlapi.pod \ perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod perldos.pod \ perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \ perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \ diff --git a/win32/pod.mak b/win32/pod.mak index d49a8e7..e3f8022 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -41,6 +41,7 @@ POD = perl.pod \ perl5194delta.pod \ perl5195delta.pod \ perl5196delta.pod \ + perl5197delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -175,6 +176,7 @@ MAN = perl.man \ perl5194delta.man \ perl5195delta.man \ perl5196delta.man \ + perl5197delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -309,6 +311,7 @@ HTML = perl.html \ perl5194delta.html \ perl5195delta.html \ perl5196delta.html \ + perl5197delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -443,6 +446,7 @@ TEX = perl.tex \ perl5194delta.tex \ perl5195delta.tex \ perl5196delta.tex \ + perl5197delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ -- 2.7.4