In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/2ff1ebfe36bd2da608dc46ad4b62a29bdf95a8bc?hp=eaee347ce4f7d9b8965d022a06b90c4b07bcad4a>
- Log ----------------------------------------------------------------- commit 2ff1ebfe36bd2da608dc46ad4b62a29bdf95a8bc Author: Matthew Horsfall <[email protected]> Date: Tue Jan 20 15:44:24 2015 -0500 Version bump + new perldelta M MANIFEST M Makefile.SH M pod/.gitignore M pod/perl.pod A pod/perl5218delta.pod M pod/perldelta.pod M vms/descrip_mms.template M win32/Makefile M win32/makefile.mk M win32/pod.mak commit 06dcbead485fc1e807acffe0b20d327a1650a5ac Author: Matthew Horsfall <[email protected]> Date: Tue Jan 20 15:42:09 2015 -0500 Update epigraph with mailing list link M Porting/epigraphs.pod commit 8917c25b121f1ff10502f69bcd2dde9a3e89edbd Author: Matthew Horsfall <[email protected]> Date: Tue Jan 20 15:37:48 2015 -0500 Add epigraph and update release schedule M Porting/epigraphs.pod M Porting/release_schedule.pod ----------------------------------------------------------------------- Summary of changes: MANIFEST | 1 + Makefile.SH | 8 +- Porting/epigraphs.pod | 13 + Porting/release_schedule.pod | 2 +- pod/.gitignore | 2 +- pod/perl.pod | 1 + pod/{perldelta.pod => perl5218delta.pod} | 2 +- pod/perldelta.pod | 613 +++++++++---------------------- vms/descrip_mms.template | 2 +- win32/Makefile | 4 +- win32/makefile.mk | 4 +- win32/pod.mak | 4 + 12 files changed, 210 insertions(+), 446 deletions(-) copy pod/{perldelta.pod => perl5218delta.pod} (99%) diff --git a/MANIFEST b/MANIFEST index 22a0d20..ad879e2 100644 --- a/MANIFEST +++ b/MANIFEST @@ -4662,6 +4662,7 @@ pod/perl5214delta.pod Perl changes in version 5.21.4 pod/perl5215delta.pod Perl changes in version 5.21.5 pod/perl5216delta.pod Perl changes in version 5.21.6 pod/perl5217delta.pod Perl changes in version 5.21.7 +pod/perl5218delta.pod Perl changes in version 5.21.8 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 42770b7..d46891d 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/perl5218delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5219delta.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/perl5218delta.pod: pod/perldelta.pod - $(RMS) pod/perl5218delta.pod - $(LNS) perldelta.pod pod/perl5218delta.pod +pod/perl5219delta.pod: pod/perldelta.pod + $(RMS) pod/perl5219delta.pod + $(LNS) perldelta.pod pod/perl5219delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/Porting/epigraphs.pod b/Porting/epigraphs.pod index 818d002..0ae83ee 100644 --- a/Porting/epigraphs.pod +++ b/Porting/epigraphs.pod @@ -17,6 +17,19 @@ Consult your favorite dictionary for details. =head1 EPIGRAPHS +=head2 v5.21.8 - Bill Watterson, "Scientific Progress Goes 'Boink': A Calvin and Hobbes Collection" + +L<Announced on 2015-01-20 by Matthew Horsfall|http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg224869.html> + +Calvin: OK Hobbes, press the button and duplicate me. +Hobbes: Are you sure this is such a good idea? +Calvin: Brother! You doubting Thomases get in the way of more scientific advances with your stupid ethical questions! This is a *BRILLIANT* idea! Hit the button, will ya? +Hobbes: I'd hate to be accused of inhibiting scientific progress... Here you go. +[Box]: *BOINK* +Hobbes: Scientific progress goes "BOINK"? +Calvin?: It worked! It worked! I'm a genius! +Cavlin??: No you're not, you liar! *I* invented this! + =head2 v5.21.7 - Robert Heinlein, "The Number of the Beast" L<Announced on 2014-12-20 by Max Maischein|http://www.nntp.perl.org/group/perl.perl5.porters/2014/12/msg223774.html> diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod index d7bfb29..f0c62eb 100644 --- a/Porting/release_schedule.pod +++ b/Porting/release_schedule.pod @@ -59,7 +59,7 @@ you should reset the version numbers to the next blead series. 2014-10-20 5.21.5 â Abigail 2014-11-20 5.21.6 â Chris "BinGOs" Williams 2014-12-20 5.21.7 â Max Maischein - 2015-01-20 5.21.8 Matthew Horsfall + 2015-01-20 5.21.8 â Matthew Horsfall 2015-02-20 5.21.9 ? 2015-03-20 5.21.10 ? 2015-04-20 5.21.11 ? diff --git a/pod/.gitignore b/pod/.gitignore index 1cbdcc3..8747095 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl5218delta.pod +/perl5219delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index 64a58d4..33127de 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -180,6 +180,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5218delta Perl changes in version 5.21.8 perl5217delta Perl changes in version 5.21.7 perl5216delta Perl changes in version 5.21.6 perl5215delta Perl changes in version 5.21.5 diff --git a/pod/perldelta.pod b/pod/perl5218delta.pod similarity index 99% copy from pod/perldelta.pod copy to pod/perl5218delta.pod index 5b4313e..d77b2ff 100644 --- a/pod/perldelta.pod +++ b/pod/perl5218delta.pod @@ -2,7 +2,7 @@ =head1 NAME -perldelta - what is new for perl v5.21.8 +perl5218delta - what is new for perl v5.21.8 =head1 DESCRIPTION diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 5b4313e..25725ac 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,297 +2,187 @@ =head1 NAME -perldelta - what is new for perl v5.21.8 +[ 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.9 =head1 DESCRIPTION -This document describes differences between the 5.21.7 release and the 5.21.8 +This document describes differences between the 5.21.8 release and the 5.21.9 release. -If you are upgrading from an earlier release such as 5.21.6, first read -L<perl5217delta>, which describes differences between 5.21.6 and 5.21.7. +If you are upgrading from an earlier release such as 5.21.7, first read +L<perl5218delta>, which describes differences between 5.21.7 and 5.21.8. =head1 Notice -With this release we are now in the contentious changes portion of the code -freeze as we prepare for the next stable release of Perl 5. +XXX Any important notices here =head1 Core Enhancements -=head2 The warnings pragma now supports warnings outside of "all" - -Ever since perl v5.6.0 we've had no way of adding new warnings without -retroactively adding them to all existing programs that used C<-w>, -C<-W> or C<use warnings>. - -This caused us to not add new useful warnings out of fear that they -might unduly burden users who just wanted to upgrade perl and didn't -want to deal with a bunch of warnings from their existing code. - -We now support a way to have our cake and eat it too, and can add new -warnings to the core going forward through other top-level warning -categories. See L<the warnings documentation|warnings/Top-level -warning categories & associated confusion> for details. - -=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: +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. - "hello" =~ /(hi|hello)/n; # $1 is not set +[ List each enhancement as a =head2 entry ] -This is equivalent to putting C<?:> at the beginning of every capturing group. +=head1 Security -See L<perlre/"n"> for more information. +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 C<prototype> with no arguments - -C<prototype()> with no arguments now infers C<$_>. [perl #123514] - -=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 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>. +[ List each security issue as a =head2 entry ] =head1 Incompatible Changes -=head2 sub 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 in exactly the same positioning a -prototype would be found. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<arybase> has been upgraded from version 0.09 to 0.10. - -=item * - -L<attributes> has been upgraded from version 0.24 to 0.25. +XXX For a release on a stable branch, this section aspires to be: -Minor internal change only. + 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. -=item * - -L<autodie> has been upgraded from version 2.25 to 2.26. - -=item * - -L<B> has been upgraded from version 1.54 to 1.55. - -A bug where, after an ithread creation or psuedofork, special/immortal SVs in -the child ithread/psuedoprocess did not have the correct class of -C<B::SPECIAL>, has been fixed. - -The C<id> and C<outid> PADLIST methods have been added. - -=item * - -L<B::Deparse> has been upgraded from version 1.31 to 1.32. - -Deparsing C<BEGIN { undef &foo }> with the B<-w> switch enabled started to -emit 'uninitialized' warnings in Perl 5.14. This has been fixed. - -Deparsing calls to subs with a C<(;+)> prototype resulted in an infinite -loop. The C<(;$>) C<(_)> and C<(;_)> prototypes were given the wrong -precedence, causing C<foo($aE<lt>$b)> to be deparsed without the parentheses. +[ List each incompatible change as a =head2 entry ] -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.067 to 2.068. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.067 to 2.068. - -=item * +=head1 Deprecations -L<CPAN::Meta::Requirements> has been upgraded from version 2.130 to 2.131. +XXX Any deprecated features, syntax, modules etc. should be listed here. -=item * +=head2 Module removals -L<Data::Dumper> has been upgraded from version 2.155 to 2.156. +XXX Remove this section if inapplicable. -=item * +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. -L<DB_File> has been upgraded from version 1.834 to 1.835. +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. -=item * +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. -L<Devel::Peek> has been upgraded from version 1.20 to 1.21. +=over -=item * +=item XXX -L<Devel::PPPort> has been upgraded from version 3.25 to 3.28. +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. -=item * - -L<Digest::MD5> has been upgraded from version 2.53 to 2.54. - -=item * - -L<Digest::SHA> has been upgraded from version 5.93 to 5.95. - -=item * - -L<DynaLoader> has been upgraded from version 1.29 to 1.30. - -=item * - -L<ExtUtils::Command> has been upgraded from version 1.18 to 1.20. - -=item * - -L<ExtUtils::Manifest> has been upgraded from version 1.69 to 1.70. - -=item * - -L<File::Glob> has been upgraded from version 1.23 to 1.24. - -Avoid SvIV() expanding to call get_sv() three times in a few -places. [perl #123606] - -=item * +=back -L<Filter::Util::Call> has been upgraded from version 1.51 to 1.54. +[ List each other deprecation as a =head2 entry ] -=item * +=head1 Performance Enhancements -L<Getopt::Long> has been upgraded from version 2.42 to 2.43. +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 ] -L<IO::Compress::Base> has been upgraded from version 2.067 to 2.068. +=over 4 =item * -L<IO::Socket::IP> has been upgraded from version 0.34 to 0.36. +XXX -=item * +=back -L<MIME::Base64> has been upgraded from version 3.14 to 3.15. +=head1 Modules and Pragmata -=item * +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. -L<Module::CoreList> has been upgraded from version 5.20141220 to 5.20150120. +[ Within each section, list entries as a =item entry ] -=item * +=head2 New Modules and Pragmata -L<Module::Load::Conditional> has been upgraded from version 0.62 to 0.64. +=over 4 =item * -L<Module::Metadata> has been upgraded from version 1.000024 to 1.000026. - -=item * +XXX -L<Opcode> has been upgraded from version 1.30 to 1.31. +=back -=item * +=head2 Updated Modules and Pragmata -L<PerlIO::encoding> has been upgraded from version 0.20 to 0.21. +=over 4 =item * -L<Pod::Simple> has been upgraded from version 3.28 to 3.29. +L<XXX> has been upgraded from version A.xx to B.yy. -=item * - -L<POSIX> has been upgraded from version 1.48 to 1.49. +=back -=item * +=head2 Removed Modules and Pragmata -L<re> has been upgraded from version 0.28 to 0.30. +=over 4 =item * -L<Safe> has been upgraded from version 2.38 to 2.39. +XXX -C<reval> was not propagating void context properly. +=back -=item * +=head1 Documentation -L<SDBM_File> has been upgraded from version 1.12 to 1.13. +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>. -Simplified the build process. [perl #123413] +=head2 New Documentation -=item * +XXX Changes which create B<new> files in F<pod/> go here. -L<Test::Harness> has been upgraded from version 3.34 to 3.35. +=head3 L<XXX> -=item * +XXX Description of the purpose of the new file here -L<Test::Simple> has been upgraded from version 1.301001_090 to 1.301001_097. +=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. -L<Unicode::Collate> has been upgraded from version 1.09 to 1.10. +=head3 L<XXX> -=item * - -L<VMS::DCLsym> has been upgraded from version 1.05 to 1.06. +=over 4 =item * -L<warnings> has been upgraded from version 1.29 to 1.30. +XXX Description of the change here =back -=head1 Documentation - -=head2 New Documentation - -=head3 L<perlunicook> - -This document, by Tom Christiansen, provides examples of handling Unicode in -Perl. - =head1 Diagnostics The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see L<perldiag>. +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. + =head2 New Diagnostics +XXX Newly added diagnostic messages go under here, separated into New Errors +and New Warnings + =head3 New Errors =over 4 =item * -L<Bad symbol for scalar|perldiag/"Bad symbol for scalar"> - -(P) An internal request asked to add a scalar entry to something that -wasn't a symbol table entry. - -=item * - -L<:const is not permitted on named subroutines|perldiag/":const is not permitted on named subroutines"> - -(F) The "const" attribute causes an anonymous subroutine to be run and -its value captured at the time that it is cloned. Names subroutines are -not cloned like this, so the attribute does not make sense on them. +XXX L<message|perldiag/"message"> =back @@ -302,338 +192,193 @@ not cloned like this, so the attribute does not make sense on them. =item * -L<:const is experimental|perldiag/":const is experimental"> - -(S experimental::const_attr) The "const" attribute is experimental. -If you want to use the feature, disable the warning with C<no warnings -'experimental::const_attr'>, but know that in doing so you are taking -the risk that your code may break in a future Perl version. - -=item * - -L<Non-finite repeat count does nothing|perldiag/"Non-finite repeat count does nothing"> +XXX L<message|perldiag/"message"> -(W numeric) You tried to execute the -L<C<x>|perlop/Multiplicative Operators> repetition operator C<Inf> (or -C<-Inf>) or C<NaN> times, which doesn't make sense. +=back -=item * +=head2 Changes to Existing Diagnostics -L<Useless use of attribute "const"|perldiag/Useless use of attribute "const"> +XXX Changes (i.e. rewording) of diagnostic messages go here -(W misc) The "const" attribute has no effect except -on anonymous closure prototypes. You applied it to -a subroutine via L<attributes.pm|attributes>. This is only useful -inside an attribute handler for an anonymous subroutine. +=over 4 =item * -L<Unusual use of %s in void context|perldiag/"Unusual use of %s in void context"> +XXX Describe change here -(W void_unusual) Similar to the "Useless use of %s in void context" -warning, but only turned on by the top-level "pedantic" warning -category, used for e.g. C<grep> in void context, which may indicate a -bug, but could also just be someone using C<grep> for its side-effects -as a loop. - -Enabled as part of "extra" warnings, not in the "all" category. See -L<warnings> for details - -=item * +=back -L<E<quot>use re 'strict'E<quot> is experimental|perldiag/"use re 'strict'" is experimental> +=head1 Utility Changes -(S experimental::re_strict) The things that are different when a regular -expression pattern is compiled under C<'strict'> are subject to change -in future Perl releases in incompatible ways. This means that a pattern -that compiles today may not in a future Perl release. This warning is -to alert you to that risk. +XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. +Most of these are built within the directory F<utils>. -L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s"> +[ 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. ] -(W locale) While in a single-byte locale (I<i.e.>, a non-UTF-8 -one), a multi-byte character was encountered. Perl considers this -character to be the specified Unicode code point. Combining non-UTF8 -locales and Unicode is dangerous. Almost certainly some characters -will have two different representations. For example, in the ISO 8859-7 -(Greek) locale, the code point 0xC3 represents a Capital Gamma. But so -also does 0x393. This will make string comparisons unreliable. +=head2 L<XXX> -You likely need to figure out how this multi-byte character got mixed up -with your single-byte locale (or perhaps you thought you had a UTF-8 -locale, but Perl disagrees). +=over 4 =item * -L<Both or neither range ends should be Unicode in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Both or neither range ends should be Unicode in regex; marked by <-- HERE in m/%s/"> - -(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>) +XXX -In a bracketed character class in a regular expression pattern, you -had a range which has exactly one end of it specified using C<\N{}>, and -the other end is specified using a non-portable mechanism. Perl treats -the range as a Unicode range, that is, all the characters in it are -considered to be the Unicode characters, and which may be different code -points on some platforms Perl runs on. For example, C<[\N{U+06}-\x08]> -is treated as if you had instead said C<[\N{U+06}-\N{U+08}]>, that is it -matches the characters whose code points in Unicode are 6, 7, and 8. -But that C<\x08> might indicate that you meant something different, so -the warning gets raised. - -=item * - -L<Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of ASCII printables should be some subset of "0-9", " ... [64 chars truncated] - -(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>) - -Stricter rules help to find typos and other errors. Perhaps you didn't -even intend a range here, if the C<"-"> was meant to be some other -character, or should have been escaped (like C<"\-">). If you did -intend a range, the one that was used is not portable between ASCII and -EBCDIC platforms, and doesn't have an obvious meaning to a casual -reader. - - [3-7] # OK; Obvious and portable - [d-g] # OK; Obvious and portable - [A-Y] # OK; Obvious and portable - [A-z] # WRONG; Not portable; not clear what is meant - [a-Z] # WRONG; Not portable; not clear what is meant - [%-.] # WRONG; Not portable; not clear what is meant - [\x41-Z] # WRONG; Not portable; not obvious to non-geek - -(You can force portability by specifying a Unicode range, which means that -the endpoints are specified by -L<C<\N{...}>|perlrecharclass/Character Ranges>, but the meaning may -still not be obvious.) -The stricter rules require that ranges that start or stop with an ASCII -character that is not a control have all their endpoints be the literal -character, and not some escape sequence (like C<"\x41">), and the ranges -must be all digits, or all uppercase letters, or all lowercase letters. +=back -=item * +=head1 Configuration and Compilation -L<Ranges of digits should be from the same group in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Ranges of digits should be from the same group in regex; marked by <-- HERE in m/%s/"> +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. -(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>) +[ List changes as a =item entry ]. -Stricter rules help to find typos and other errors. You included a -range, and at least one of the end points is a decimal digit. Under the -stricter rules, when this happens, both end points should be digits in -the same group of 10 consecutive digits. +=over 4 =item * -L<"%s" is more clearly written simply as "%s" in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"%s" is more clearly written simply as "%s" in regex; marked by <-- HERE in mE<sol>%sE<sol>> - -(W regexp) (only under C<S<use re 'strict'>> or within C<(?[...])>) - -You specified a character that has the given plainer way of writing it, -and which is also portable to platforms running with different character -sets. +XXX =back -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -The message -L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s"> -is no longer raised unless the problemtatic locale is actually used in -the Perl program. Previously it was raised if it merely was the -underlying locale. All Perl programs have an underlying locale at all -times, but something like a C<S<use locale>> is needed for that locale -to actually have some effect. This message will not be raised when -the underlying locale is hidden. +=head1 Testing -=back +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. -=head1 Configuration and Compilation +[ List each test improvement as a =item entry ] =over 4 =item * -pthreads and lcl will be linked by default if present. This allows XS modules -that require threading to work on non-threaded perls. Note that you must still -pass C<-Dusethreads> if you want a threaded perl. +XXX =back -=head1 Testing +=head1 Platform Support -=over 4 +XXX Any changes to platform support should be listed in the sections below. -=item * +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -A new test script, F<bigmem/subst.t>, has been added to test memory usage of -subst on very large strings. +=head2 New Platforms -=item * +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. -A new test script, F<op/anonconst.t>, has been added to test experimental -:const subroutines. +=over 4 -=item * +=item XXX-some-platform -A new test script, F<re/reg_nocapture.t>, has been added to test the new -C</n> regexp flag. +XXX =back -=head1 Platform Support +=head2 Discontinued Platforms -=head2 Platform-Specific Notes +XXX List any platforms that this version of perl no longer compiles on. =over 4 -=item Win32 - -=over 4 +=item XXX-some-platform -=item * +XXX -Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl -XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++, -would unconditionally have around a dozen warnings from hv_func.h. These -warnings have been silenced. GCC all bitness and Visual C++ for Win32 were -not affected. +=back -=item * +=head2 Platform-Specific Notes -Support for building without PerlIO has been removed from the Windows -makefiles. Non-PerlIO builds were all but deprecated in Perl 5.18.0 and are -already not supported by F<Configure> on POSIX systems. +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. -=item * +=over 4 -Between 2 and 6 ms and 7 I/O calls have been saved per attempt to open a perl -module for each path in C<@INC>. +=item XXX-some-platform -=back +XXX =back =head1 Internal Changes +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. + +[ List each change as a =item entry ] + =over 4 =item * -Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent. - -Function either returns an SV * of type AV, which contains the set of -weakreferences which reference the passed in SV, or a simple RV * which -is the only weakref to this item. +XXX =back =head1 Selected Bug Fixes -=over 4 +XXX Important bug fixes in the core language are summarized here. Bug fixes in +files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. -=item * +[ List each fix as a =item entry ] -A bug in regular expression patterns that could lead to segfaults and -other crashes has been fixed. This occurred only in patterns compiled -with C<"/i">, while taking into account the current POSIX locale (this usually -means they have to be compiled within the scope of C<S<"use locale">>), -and there must be a string of at least 128 consecutive bytes to match. -[perl #123539] - -=item * - -C<s///> now works on very long strings instead of dying with 'Substitution -loop'. [perl #103260] [perl #123071] - -=item * - -C<gmtime> no longer crashes with not-a-number values. [perl #123495] +=over 4 =item * -C<\()> (reference to an empty list) and C<y///> with lexical $_ in scope -could do a bad write past the end of the stack. They have been fixed -to extend the stack first. - -=item * +XXX -C<prototype()> with no arguments used to read the previous item on the -stack, so C<print "foo", prototype()> would print foo's prototype. It has -been fixed to infer $_ instead. [perl #123514] +=back -=item * +=head1 Known Problems -Some cases of lexical state subs inside predeclared subs could crash but no -longer do. +XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any +tests that had to be C<TODO>ed for the release would be noted here. Unfixed +platform specific bugs also go here. -=item * +[ List each fix as a =item entry ] -Some cases of nested lexical state subs inside anonymous subs could cause -'Bizarre copy' errors or possibly even crash. +=over 4 =item * -When trying to emit warnings, perl's default debugger (F<perl5db.pl>) was -sometimes giving 'Undefined subroutine &DB::db_warn called' instead. This -bug, which started to occur in Perl 5.18, has been fixed. [perl #123553] - -=item * +XXX -Certain syntax errors in substitutions, such as C<< s/${E<lt>E<gt>{})// >>, would -crash, and had done so since Perl 5.10. (In some cases the crash did not -start happening till 5.16.) The crash has, of course, been fixed. -[perl #123542] +=back -=item * +=head1 Errata From Previous Releases -A repeat expression like C<33 x ~3> could cause a large buffer -overflow since the new output buffer size was not correctly handled by -SvGROW(). An expression like this now properly produces a memory wrap -panic. [perl 123554] +=over 4 =item * -C<< formline("@...", "a"); >> would crash. The C<FF_CHECKNL> case in -pp_formline() didn't set the pointer used to mark the chop position, -which led to the C<FF_MORE> case crashing with a segmentation fault. -This has been fixed. [perl #123538] +XXX Add anything here that we forgot to add, or were mistaken about, in +the perldelta of a previous release. =back -=head1 Acknowledgements - -Perl 5.21.8 represents approximately 4 weeks of development since Perl 5.21.7 -and contains approximately 26,000 lines of changes across 750 files from 27 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 13,000 lines of changes to 410 .pm, .t, .c and .h files. +=head1 Obituary -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.21.8: +XXX If any significant core contributor has died, we've added a short obituary +here. -Aaron Crane, Andreas Voegele, Chad Granum, Chris 'BinGOs' Williams, Craig A. -Berry, Daniel Dragan, David Mitchell, E. Choroba, Ed J, Father Chrysostomos, -H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, Karen -Etheridge, Karl Williamson, Matthew Horsfall, Max Maischein, Peter Martini, -Rafael Garcia-Suarez, Ricardo Signes, Rostislav Skudnov, Slaven Rezic, Steve -Hay, Tony Cook, Yves Orton, Ãvar Arnfjörð Bjarmason. - -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<AUTHORS> file in the Perl source distribution. + perl Porting/acknowledgements.pl v5.21.8..HEAD =head1 Reporting Bugs diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 8b0c33b..69dcc2e 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5218delta.pod +PERLDELTA_CURRENT = [.pod]perl5219delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/Makefile b/win32/Makefile index f8d8a69..a4602f2 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1138,7 +1138,7 @@ utils: $(PERLEXE) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5218delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5219delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1234,7 +1234,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 \ - perl5218delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 9cfea1c..a380174 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1419,7 +1419,7 @@ utils: $(PERLEXE) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5218delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5219delta.pod $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1514,7 +1514,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 \ - perl5218delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5219delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/pod.mak b/win32/pod.mak index 16980d4..3cbec55 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -47,6 +47,7 @@ POD = perl.pod \ perl5216delta.pod \ perl5217delta.pod \ perl5218delta.pod \ + perl5219delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -188,6 +189,7 @@ MAN = perl.man \ perl5216delta.man \ perl5217delta.man \ perl5218delta.man \ + perl5219delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -329,6 +331,7 @@ HTML = perl.html \ perl5216delta.html \ perl5217delta.html \ perl5218delta.html \ + perl5219delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -470,6 +473,7 @@ TEX = perl.tex \ perl5216delta.tex \ perl5217delta.tex \ perl5218delta.tex \ + perl5219delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ -- Perl5 Master Repository
