diff options
author | Max Maischein <corion@corion.net> | 2012-02-21 17:47:25 +0100 |
---|---|---|
committer | Max Maischein <corion@corion.net> | 2012-02-21 17:47:25 +0100 |
commit | 204b72a4966bdd4e991d4f8a3700d00662e3e551 (patch) | |
tree | e88148f03bfb03cea22970a42c3974bc4d6aaeb5 | |
parent | 1f9d7ff5f50864f6bf4b8e55deae6fd24f554121 (diff) | |
download | perl-204b72a4966bdd4e991d4f8a3700d00662e3e551.tar.gz |
Add perl5158delta.pod
-rw-r--r-- | MANIFEST | 1 | ||||
-rwxr-xr-x | Makefile.SH | 6 | ||||
-rw-r--r-- | pod/.gitignore | 2 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perl5158delta.pod | 708 | ||||
-rw-r--r-- | pod/perldelta.pod | 666 | ||||
-rw-r--r-- | vms/descrip_mms.template | 2 | ||||
-rw-r--r-- | win32/Makefile | 4 | ||||
-rw-r--r-- | win32/makefile.mk | 4 | ||||
-rw-r--r-- | win32/pod.mak | 4 |
10 files changed, 900 insertions, 498 deletions
@@ -4634,6 +4634,7 @@ pod/perl5154delta.pod Perl changes in version 5.15.4 pod/perl5155delta.pod Perl changes in version 5.15.5 pod/perl5156delta.pod Perl changes in version 5.15.6 pod/perl5157delta.pod Perl changes in version 5.15.7 +pod/perl5158delta.pod Perl changes in version 5.15.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 0c96f97492..d1ac0b826b 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -482,7 +482,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/perl5158delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5159delta.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 @@ -1058,8 +1058,8 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST $(MINIPERL) $(Icwd) pod/perlmodlib.PL -q -pod/perl5158delta.pod: pod/perldelta.pod - $(LNS) perldelta.pod pod/perl5158delta.pod +pod/perl5159delta.pod: pod/perldelta.pod + $(LNS) perldelta.pod pod/perl5159delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/pod/.gitignore b/pod/.gitignore index c65a86b703..bedcd69263 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -59,7 +59,7 @@ /roffitall # generated -/perl5158delta.pod +/perl5159delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index d54f1eb463..4c2a77513c 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -178,6 +178,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5158delta Perl changes in version 5.15.8 perl5157delta Perl changes in version 5.15.7 perl5156delta Perl changes in version 5.15.6 perl5155delta Perl changes in version 5.15.5 diff --git a/pod/perl5158delta.pod b/pod/perl5158delta.pod new file mode 100644 index 0000000000..c82d1694e4 --- /dev/null +++ b/pod/perl5158delta.pod @@ -0,0 +1,708 @@ +=encoding utf8 + +=for comment +This has been completed up to 0aae26c14, except for: +d9298c1 rurban mymalloc isn't thread safe + +=head1 NAME + +perl5158delta - what is new for perl v5.15.8 + +=head1 DESCRIPTION + +This document describes differences between the 5.15.7 release and +the 5.15.8 release. + +If you are upgrading from an earlier release such as 5.15.6, first read +L<perl5157delta>, which describes differences between 5.15.6 and +5.15.7. + +=head1 Notice + +This space intentionally left blank. + +=head1 Core Enhancements + +=head2 Improved ability to mix locales and Unicode, including UTF-8 locales + +An optional parameter has been added to C<use locale> + + use locale ':not_characters'; + +which tells Perl to use all but the C<LC_CTYPE> and C<LC_COLLATE> +portions of the current locale. Instead, the character set is assumed +to be Unicode. This allows locales and Unicode to be seamlessly mixed, +including the increasingly frequent UTF-8 locales. When using this +hybrid form of locales, the C<:locale> layer to the L<open> pragma can +be used to interface with the file system, and there are CPAN modules +available for ARGV and environment variable conversions. + +Full details are in L<perllocale>. + +=head2 New function C<fc> and corresponding escape sequence C<\F> for Unicode foldcase + +Unicode foldcase is an extension to lowercase that gives better results +when comparing two strings case-insensitively. It has long been used +internally in regular expression C</i> matching. Now it is available +explicitly through the new C<fc> function call (enabled by +S<C<"use feature 'fc'">>, or C<use v5.16>, or explicitly callable via +C<CORE::fc>) or through the new C<\F> sequence in double-quotish +strings. + +Full details are in L<perlfunc/fc>. + +=head2 C<_> in subroutine prototypes + +The C<_> character in subroutine prototypes is now allowed before C<@> or +C<%>. + +=head2 Supports (I<almost>) Unicode 6.1 + +Besides the addition of whole new scripts, and new characters in +existing scripts, this new version of Unicode, as always, makes some +changes to existing characters. One change that may trip up some +applications is that the General Category of two characters in the +Latin-1 range, PILCROW SIGN and SECTION SIGN, has been changed from +Other_Symbol to Other_Punctuation. The same change has been made for +a character in each of Tibetan, Ethiopic, and Aegean. +The code points U+3248..U+324F (CIRCLED NUMBER TEN ON BLACK SQUARE +through CIRCLED NUMBER EIGHTY ON BLACK SQUARE) have had their General +Category changed from Other_Symbol to Other_Numeric. The Line Break +property has changes for Hebrew and Japanese; and as a consequence of +other changes in 6.1, the Perl regular expression construct C<\X> now +works differently for some characters in Thai and Lao. + +New aliases (synonyms) have been defined for many property values; +these, along with the previously existing ones, are all cross indexed in +L<perluniprops>. + +The return value of C<charnames::viacode()> is affected by other +changes: + + Code point Old Name New Name + U+000A LINE FEED (LF) LINE FEED + U+000C FORM FEED (FF) FORM FEED + U+000D CARRIAGE RETURN (CR) CARRIAGE RETURN + U+0085 NEXT LINE (NEL) NEXT LINE + U+008E SINGLE-SHIFT 2 SINGLE-SHIFT-2 + U+008F SINGLE-SHIFT 3 SINGLE-SHIFT-3 + U+0091 PRIVATE USE 1 PRIVATE USE-1 + U+0092 PRIVATE USE 2 PRIVATE USE-2 + U+2118 SCRIPT CAPITAL P WEIERSTRASS ELLIPTIC FUNCTION + +Perl will accept any of these names as input, but +C<charnames::viacode()> now returns the new name of each pair. The +change for U+2118 is considered by Unicode to be a correction, that is +the original name was a mistake (but again, it will remain forever valid +to use it to refer to U+2118). But most of these changes are the +fallout of the mistake Unicode 6.0 made in naming a character used in +Japanese cell phones to be "BELL", which conflicts with the long +standing industry use of (and Unicode's recommendation to use) that name +to mean the ASCII control character at U+0007. As a result, that name +has been deprecated in Perl since v5.14; and any use of it will raise a +warning message (unless turned off). The name "ALERT" is now the +preferred name for this code point, with "BEL" being an acceptable short +form. The name for the new cell phone character, at code point U+1F514, +remains undefined in this version of Perl (hence we don't quite +implement all of Unicode 6.1), but starting in v5.18, BELL will mean +this character, and not U+0007. + +Unicode has taken steps to make sure that this sort of mistake does not +happen again. The Standard now includes all the generally accepted +names and abbreviations for control characters, whereas previously it +didn't (though there were recommended names for most of them, which Perl +used). This means that most of those recommended names are now +officially in the Standard. Unicode did not recommend names for the +four code points listed above between U+008E and U+008F, and in +standardizing them Unicode subtly changed the names that Perl had +previously given them, by replacing the final blank in each name by a +hyphen. Unicode also officially accepts names that Perl had deprecated, +such as FILE SEPARATOR. Now the only deprecated name is BELL. +Finally, Perl now uses the new official names instead of the old +(now considered obsolete) names for the first four code points in the +list above (the ones which have the parentheses in them). + +Now that the names have been placed in the Unicode standard, these kinds +of changes should not happen again, though corrections, such as to +U+2118, are still possible. + +Unicode also added some name abbreviations, which Perl now accepts: +SP for SPACE; +TAB for CHARACTER TABULATION; +NEW LINE, END OF LINE, NL, and EOL for LINE FEED; +LOCKING-SHIFT ONE for SHIFT OUT; +LOCKING-SHIFT ZERO for SHIFT IN; +and ZWNBSP for ZERO WIDTH NO-BREAK SPACE. + +More details on this version of Unicode are provided in +L<http://www.unicode.org/versions/Unicode6.1.0/>. + +=head2 Added C<is_utf8_char_buf()> + +This function is designed to replace the deprecated L</is_utf8_char()> +function. It includes an extra parameter to make sure it doesn't read +past the end of the input buffer. + +=head1 Security + +=head2 Use C<is_utf8_char_buf()> and not C<is_utf8_char()> + +The latter function is now deprecated because its API is insufficient to +guarantee that it doesn't read (up to 12 bytes in the worst case) beyond +the end of its input string. See +L<is_utf8_char_buf()|/Added is_utf8_char_buf()>. + +=head1 Incompatible Changes + +[ List each incompatible change as a =head2 entry ] + +=head2 Special blocks called in void context + +Special blocks (C<BEGIN>, C<CHECK>, C<INIT>, C<UNITCHECK>, C<END>) are now +called in void context. This avoids wasteful copying of the result of the +last statement [perl #108794]. + +=head2 The C<overloading> pragma and regexp objects + +With C<no overloading>, regular expression objects returned by C<qr//> are +now stringified as "Regexp=REGEXP(0xbe600d)" instead of the regular +expression itself [perl #108780]. + +=head2 Two XS typemap Entries removed + +Two presumably unused XS typemap entries have been removed from the +core typemap: T_DATAUNIT and T_CALLBACK. If you are, against all odds, +a user of these, please see the instructions on how to regain them +in L<perlxstypemap>. + +=head2 Unicode 6.1 has incompatibilities with Unicode 6.0 + +These are detailed in L</Supports (almost) Unicode 6.1> above. + +=head2 Changed returns for some properties in C<Unicode::UCD::prop_invmap()> + +The return values for C<prop_invmap> have been changed for some +properties to make the returned lists significantly smaller. This +allows those lists to be searched faster. + +This function was introduced earlier in the v5.15 series of releases, +and the API will not be considered stable until v5.16. + +See L<Unicode::UCD/prop_invmap()> for details on the new interface. + +=head2 C<$$> and C<getppid()> no longer emulate POSIX semantics under LinuxThreads + +The POSIX emulation of C<$$> and C<getppid()> under the obsolete +LinuxThreads implementation has been removed (the C<$$> emulation was +actually removed in v5.15.0). This only impacts users of Linux 2.4 and +users of Debian GNU/kFreeBSD up to and including 6.0, not the vast +majority of Linux installations that use NPTL threads. + +This means that C<getppid()> like C<$$> is now always guaranteed to +return the OS's idea of the current state of the process, not perl's +cached version of it. + +See the documentation for L<$$|perlvar/$$> for details. + +=head2 C<< $< >>, C<< $> >>, C<$(> and C<$)> are no longer cached + +Similarly to the changes to C<$$> and C<getppid()> the internal +caching of C<< $< >>, C<< $> >>, C<$(> and C<$)> has been removed. + +When we cached these values our idea of what they were would drift out +of sync with reality if someone (e.g. someone embedding perl) called +sete?[ug]id() without updating C<PL_e?[ug]id>. Having to deal with +this complexity wasn't worth it given how cheap the C<gete?[ug]id()> +system call is. + +This change will break a handful of CPAN modules that use the XS-level +C<PL_uid>, C<PL_gid>, C<PL_euid> or C<PL_egid> variables. + +The fix for those breakages is to use C<PerlProc_gete?[ug]id()> to +retrieve them (e.g. C<PerlProc_getuid()>), and not to assign to +C<PL_e?[ug]id> if you change the UID/GID/EUID/EGID. There is no longer +any need to do so since perl will always retrieve the up-to-date +version of those values from the OS. + +=head2 Which Non-ASCII characters get quoted by C<quotemeta> and C<\Q> has changed + +This is unlikely to result in a real problem, as Perl does not attach +special meaning to any non-ASCII character, so it is currently +irrelevant which are quoted or not. This change fixes bug [perl #77654] and +bring Perl's behavior more into line with Unicode's recommendations. +See L<perlfunc/quotemeta>. + +=head1 Deprecations + +=head2 C<is_utf8_char()> + +This function is deprecated because it could read beyond the end of the +input string. Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()> +instead. + +=head1 Modules and Pragmata + +=head2 New Modules and Pragmata + +=over 4 + +=item * + +C<PerlIO::mmap> 0.010 has been added to the Perl core. + +The C<mmap> PerlIO layer is no longer implemented by perl itself, but has +been moved out into the new L<PerlIO::mmap> module. + +=back + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<arybase> has been upgraded from version 0.03 to version 0.04. + +List slices no longer modify items on the stack belonging to outer lists +[perl #109570]. + +=item * + +L<B> has been upgraded from version 1.33 to version 1.34. + +C<B::COP> now has a C<stashflags> method, corresponding to a new internal +field added in 5.15.4 [perl #108860]. + +=item * + +C<B::Deparse> has been upgraded from version 1.11 to 1.12. + +=item * + +L<Carp> has been upgraded from version 1.24 to version 1.25. + +It now puts a dot after the file and line number, just like errors from +C<die> [perl #106538]. + +=item * + +C<Compress::Raw::Bzip2> has been upgraded from version 2.045 to 2.048. + +=item * + +C<Compress::Raw::Zlib> has been upgraded from version 2.045 to 2.048. + +=item * + +L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048. + +=item * + +C<CPAN::Meta> has been upgraded from version 2.113640 to 2.120351. + +Work around a memory leak bug involving version objects in boolean context. + +=item * + +C<CPAN::Meta::YAML> has been upgraded from version 0.005 to 0.007. + +=item * + +C<CPANPLUS> has been upgraded from version 0.9116 to 0.9118. + +=item * + +C<CPANPLUS::Dist::Build> has been upgraded from version 0.60 to 0.62. + +=item * + +C<Data::Dumper> has been upgraded from version 2.135_04 to 2.135_05. + +=item * + +C<DB_File> has been upgraded from version 1.824 to 1.826. + +=item * + +C<diagnostics> has been upgraded from version 1.27 to 1.28. + +When searching for F<perldiag.pod>, it no longer uses paths that were only +relevant on Perl 5.004 and earlier. + +=item * + +C<English> has been upgraded from version 1.04 to 1.05. + +=item * + +C<ExtUtils::Install> has been upgraded from version 1.57 to 1.58. + +=item * + +C<ExtUtils::ParseXS> has been upgraded from version 3.12 to 3.16. + +The new version comes with important tools for sharing typemaps between +different CPAN distributions. + +=item * + +C<File::Copy> has been upgraded from version 2.21 to 2.23. + +It no longer emits warnings when copying files with newlines in their names +[perl #109104]. + +=item * + +C<File::Glob> has been upgraded from version 1.16 to 1.17. + +=item * + +C<Filter::Util::Call> has been upgraded from version 1.39 to 1.40. + +=item * + +C<IPC::Cmd> has been upgraded from version 0.72 to 0.76. + +=item * + +C<Math::Complex> has been upgraded from version 1.58 to 1.59. + +This avoids a new core warning. + +=item * + +C<Module::Metadata> has been upgraded from version 1.000007 to 1.000009. + +Adds C<provides> method to generate a CPAN META provides data structure +correctly; use of C<package_versions_from_directory> is discouraged. + +=item * + +C<Opcode> has been upgraded from version 1.22 to 1.23. + +=item * + +C<overload> has been upgraded from version 1.17 to 1.18. + +=item * + +C<Parse::CPAN::Meta> has been upgraded from version 1.4401 to 1.4402. + +=item * + +C<perlfaq> has been upgraded from version 5.0150038 to 5.0150039. + +=item * + +C<Pod::Functions> has been upgraded from version 1.04 to 1.05. + +F<Functions.pm> is now generated at perl build time from annotations in +F<perlfunc.pod>. This will ensure that L<Pod::Functions> and L<perlfunc> +remain in synchronisation. + +=item * + +C<Pod::Html> has been upgraded from version 1.13 to 1.14. + +=item * + +C<Pod::Parser> has been upgraded from version 1.37 to 1.51. + +=item * + +C<POSIX> has been upgraded from version 1.28 to 1.30. + +=item * + +C<re> has been upgraded from version 0.18 to 0.19. + +=item * + +C<Safe> has been upgraded from version 2.30 to 2.31. + +=item * + +C<Socket> has been upgraded from version 1.97 to 1.98. + +=item * + +C<Term::Cap> has been upgraded from version 1.12 to 1.13. + +=item * + +C<Term::ReadLine> has been upgraded from version 1.07 to 1.08. + +Term::ReadLine now supports any event loop, including unpublished ones and +simple L<IO::Select> loops without the need to rewrite existing code for +any particular framework [perl #108470]. + +=item * + +C<Time::HiRes> has been upgraded from version 1.9724 to 1.9725. + +C<Time::HiRes::stat()> no longer corrupts the Perl stack. + +=item * + +C<Unicode::UCD> has been upgraded from version 0.39 to 0.41. + +The only change is to fix a formatting error in the Pod. + +=item * + +C<Version::Requirements> has been upgraded from version 0.101021 to 0.101022. + +=item * + +C<warnings> has been upgraded from version 1.12 to 1.13. + +=item * + +C<XS::Typemap> has been upgraded from version 0.07 to 0.08. + +=back + +=head1 Documentation + +=head2 New Documentation + +=head3 L<perlxstypemap> + +The new manual describes the XS typemapping mechanism in unprecedented +detail and combines new documentation with information extracted from +L<perlxs> and the previously unofficial list of all core typemaps. + +=head1 Testing + +=over 4 + +=item * + +F<t/porting/pending-author.t> has been added, to avoid the problem of +C<make test> passing 100%, but the subsequent git commit causing +F<t/porting/authors.t> to fail, because it uses a "new" e-mail address. + +This test is only run if one is building inside a git checkout, B<and> one +has made local changes. Otherwise it's skipped. + +=item * + +F<t/porting/perlfunc.t> has been added, to test that changes to +F<pod/perlfunc.pod> do not inadvertently break the build of L<Pod::Functions>. + +=item * + +The test suite for typemaps has been extended to cover a larger fraction of +the core typemaps. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item Cygwin + +Since version 1.7, Cygwin supports native UTF-8 paths. If Perl is built +under that environment, directory and filenames will be UTF-8 encoded. + +Cygwin does not initialize all original Win32 environment variables. See +F<README.cygwin> for a discussion of C<Cygwin::sync_winenv()> and +further links. + +=item VMS + +The build on VMS now allows names of the resulting +symbols in C code for Perl longer than 31 characters. +Symbols like C<Perl__it_was_the_best_of_times_it_was_the_worst_of_times> +can now be created freely without causing the VMS linker to seize up. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +C<~~> now correctly handles the precedence of Any~~Object, and is not tricked +by an overloaded object on the left-hand side. + +=item * + +C<stat _> no longer warns about unopened filehandles [perl #71002]. + +=item * + +C<stat> on an unopened filehandle now warns consistently, instead of +skipping the warning at times. + +=item * + +A change in an earlier 5.15 release caused warning hints to propagate into +C<do $file>. This has been fixed [rt.cpan.org #72767]. + +=item * + +Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up +after assigning C<${ qr// }> to a hash element and locking it with +L<Hash::Util>. This could result in double frees, crashes or erratic +behaviour. + +=item * + +In 5.15.7, some typeglobs in the CORE namespace were made read-only by +mistake. This has been fixed [rt.cpan.org #74289]. + +=item * + +C<-t> now works when stacked with other filetest operators [perl #77388]. + +=item * + +Stacked filetest operators now only call FETCH once on a tied argument. + +=item * + +C</.*/g> would sometimes refuse to match at the end of a string that ends +with "\n". This has been fixed [perl #109206]. + +=item * + +C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not +under a differing locale). This fixes a regression introduced in 5.14 +in which the first expression could match characters outside of ASCII, +such as the KELVIN SIGN. + +=item * + +Method calls whose arguments were all surrounded with C<my()> or C<our()> +(as in C<< $object->method(my($a,$b)) >>) used to force lvalue context on +the subroutine. This would prevent lvalue methods from returning certain +values. Due to lvalue fixes earlier in the 5.15.x series, it would also +prevent non-lvalue methods from being called [perl #109264]. + +=for comment +This bug I<did> affect earlier stable releases. It is just the last +sentence that does not apply to 5.14. + +=item * + +The C<SvPVutf8> C function no longer tries to modify its argument, +resulting in errors [perl #108994]. + +=item * + +C<SvPVutf8> now works properly with magical variables. + +=item * + +C<SvPVbyte> now works properly non-PVs. + +=item * + +C</[[:ascii:]]/> and C</[[:blank:]]/> now use locale rules under +C<use locale> when the platform supports that. Previously, they used +the platform's native character set. + +=item * + +A regression introduced in 5.13.6 was fixed. This involved an inverted +bracketed character class in a regular expression that consisted solely +of a Unicode property, that property wasn't getting inverted outside the +Latin1 range. + +=item * + +C<quotemeta> now quotes consistently the same non-ASCII characters under +C<use feature 'unicode_strings'>, regardless of whether the string is +encoded in UTF-8 or not, hence fixing the last vestiges (we hope) of the +infamous L<perlunicode/The "Unicode Bug">. [perl #77654]. + +Which of these code points is quoted has changed, based on Unicode's +recommendations. See L<perlfunc/quotemeta> for details. + +=back + +=head1 Known Problems + +This is a list of some significant unfixed bugs, which are regressions +from either 5.14.0 or 5.15.7. + +=over 4 + +=item * C<eval { 'fork()' }> is broken on Windows [perl #109718] + +This is a known test failure to be fixed before 5.16.0. + +=back + +=head1 Acknowledgements + +Perl 5.15.8 represents approximately 4 weeks of development since Perl 5.15.7 +and contains approximately 61,000 lines of changes across 480 files from 36 +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.15.8: + +Abhijit Menon-Sen, Alan Haggai Alavi, Alexandr Ciornii, Andy Dougherty, Brian +Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Darin McBride, Dave Rolsky, +David Golden, David Leadbeater, David Mitchell, Dominic Hargreaves, Eric Brine, +Father Chrysostomos, Florian Ragwitz, H.Merijn Brand, Juerd Waalboer, Karl +Williamson, Leon Timmermans, Marc Green, Max Maischein, Nicholas Clark, Paul +Evans, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo Signes, Robin +Barker, Shlomi Fish, Steffen Müller, Todd Rinaldo, Tony Cook, Yves Orton, +Zefram, Æ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. + +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<AUTHORS> 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<perlbug> +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<perl -V>, 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<Changes> file for an explanation of how to view exhaustive details +on what changed. + +The F<INSTALL> file for how to build Perl. + +The F<README> file for general stuff. + +The F<Artistic> and F<Copying> files for copyright information. + +=cut diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 7fbfd73023..40a1f425d7 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,246 +1,85 @@ =encoding utf8 -=for comment -This has been completed up to 0aae26c14, except for: -d9298c1 rurban mymalloc isn't thread safe - =head1 NAME -perldelta - what is new for perl v5.15.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.15.9 =head1 DESCRIPTION -This document describes differences between the 5.15.7 release and -the 5.15.8 release. +This document describes differences between the 5.15.8 release and +the 5.15.9 release. -If you are upgrading from an earlier release such as 5.15.6, first read -L<perl5157delta>, which describes differences between 5.15.6 and -5.15.7. +If you are upgrading from an earlier release such as 5.15.7, first read +L<perl5158delta>, which describes differences between 5.15.7 and +5.15.8. =head1 Notice -This space intentionally left blank. +XXX Any important notices here =head1 Core Enhancements -=head2 Improved ability to mix locales and Unicode, including UTF-8 locales - -An optional parameter has been added to C<use locale> - - use locale ':not_characters'; - -which tells Perl to use all but the C<LC_CTYPE> and C<LC_COLLATE> -portions of the current locale. Instead, the character set is assumed -to be Unicode. This allows locales and Unicode to be seamlessly mixed, -including the increasingly frequent UTF-8 locales. When using this -hybrid form of locales, the C<:locale> layer to the L<open> pragma can -be used to interface with the file system, and there are CPAN modules -available for ARGV and environment variable conversions. - -Full details are in L<perllocale>. - -=head2 New function C<fc> and corresponding escape sequence C<\F> for Unicode foldcase - -Unicode foldcase is an extension to lowercase that gives better results -when comparing two strings case-insensitively. It has long been used -internally in regular expression C</i> matching. Now it is available -explicitly through the new C<fc> function call (enabled by -S<C<"use feature 'fc'">>, or C<use v5.16>, or explicitly callable via -C<CORE::fc>) or through the new C<\F> sequence in double-quotish -strings. - -Full details are in L<perlfunc/fc>. - -=head2 C<_> in subroutine prototypes - -The C<_> character in subroutine prototypes is now allowed before C<@> or -C<%>. - -=head2 Supports (I<almost>) Unicode 6.1 - -Besides the addition of whole new scripts, and new characters in -existing scripts, this new version of Unicode, as always, makes some -changes to existing characters. One change that may trip up some -applications is that the General Category of two characters in the -Latin-1 range, PILCROW SIGN and SECTION SIGN, has been changed from -Other_Symbol to Other_Punctuation. The same change has been made for -a character in each of Tibetan, Ethiopic, and Aegean. -The code points U+3248..U+324F (CIRCLED NUMBER TEN ON BLACK SQUARE -through CIRCLED NUMBER EIGHTY ON BLACK SQUARE) have had their General -Category changed from Other_Symbol to Other_Numeric. The Line Break -property has changes for Hebrew and Japanese; and as a consequence of -other changes in 6.1, the Perl regular expression construct C<\X> now -works differently for some characters in Thai and Lao. - -New aliases (synonyms) have been defined for many property values; -these, along with the previously existing ones, are all cross indexed in -L<perluniprops>. - -The return value of C<charnames::viacode()> is affected by other -changes: - - Code point Old Name New Name - U+000A LINE FEED (LF) LINE FEED - U+000C FORM FEED (FF) FORM FEED - U+000D CARRIAGE RETURN (CR) CARRIAGE RETURN - U+0085 NEXT LINE (NEL) NEXT LINE - U+008E SINGLE-SHIFT 2 SINGLE-SHIFT-2 - U+008F SINGLE-SHIFT 3 SINGLE-SHIFT-3 - U+0091 PRIVATE USE 1 PRIVATE USE-1 - U+0092 PRIVATE USE 2 PRIVATE USE-2 - U+2118 SCRIPT CAPITAL P WEIERSTRASS ELLIPTIC FUNCTION - -Perl will accept any of these names as input, but -C<charnames::viacode()> now returns the new name of each pair. The -change for U+2118 is considered by Unicode to be a correction, that is -the original name was a mistake (but again, it will remain forever valid -to use it to refer to U+2118). But most of these changes are the -fallout of the mistake Unicode 6.0 made in naming a character used in -Japanese cell phones to be "BELL", which conflicts with the long -standing industry use of (and Unicode's recommendation to use) that name -to mean the ASCII control character at U+0007. As a result, that name -has been deprecated in Perl since v5.14; and any use of it will raise a -warning message (unless turned off). The name "ALERT" is now the -preferred name for this code point, with "BEL" being an acceptable short -form. The name for the new cell phone character, at code point U+1F514, -remains undefined in this version of Perl (hence we don't quite -implement all of Unicode 6.1), but starting in v5.18, BELL will mean -this character, and not U+0007. - -Unicode has taken steps to make sure that this sort of mistake does not -happen again. The Standard now includes all the generally accepted -names and abbreviations for control characters, whereas previously it -didn't (though there were recommended names for most of them, which Perl -used). This means that most of those recommended names are now -officially in the Standard. Unicode did not recommend names for the -four code points listed above between U+008E and U+008F, and in -standardizing them Unicode subtly changed the names that Perl had -previously given them, by replacing the final blank in each name by a -hyphen. Unicode also officially accepts names that Perl had deprecated, -such as FILE SEPARATOR. Now the only deprecated name is BELL. -Finally, Perl now uses the new official names instead of the old -(now considered obsolete) names for the first four code points in the -list above (the ones which have the parentheses in them). - -Now that the names have been placed in the Unicode standard, these kinds -of changes should not happen again, though corrections, such as to -U+2118, are still possible. - -Unicode also added some name abbreviations, which Perl now accepts: -SP for SPACE; -TAB for CHARACTER TABULATION; -NEW LINE, END OF LINE, NL, and EOL for LINE FEED; -LOCKING-SHIFT ONE for SHIFT OUT; -LOCKING-SHIFT ZERO for SHIFT IN; -and ZWNBSP for ZERO WIDTH NO-BREAK SPACE. - -More details on this version of Unicode are provided in -L<http://www.unicode.org/versions/Unicode6.1.0/>. - -=head2 Added C<is_utf8_char_buf()> - -This function is designed to replace the deprecated L</is_utf8_char()> -function. It includes an extra parameter to make sure it doesn't read -past the end of the input buffer. +XXX New core language features go here. Summarise user-visible core language +enhancements. Particularly prominent performance optimisations could go +here, but most should go in the L</Performance Enhancements> section. + +[ List each enhancement as a =head2 entry ] =head1 Security -=head2 Use C<is_utf8_char_buf()> and not C<is_utf8_char()> +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. -The latter function is now deprecated because its API is insufficient to -guarantee that it doesn't read (up to 12 bytes in the worst case) beyond -the end of its input string. See -L<is_utf8_char_buf()|/Added is_utf8_char_buf()>. +[ List each security issue as a =head2 entry ] =head1 Incompatible Changes -[ List each incompatible change as a =head2 entry ] - -=head2 Special blocks called in void context - -Special blocks (C<BEGIN>, C<CHECK>, C<INIT>, C<UNITCHECK>, C<END>) are now -called in void context. This avoids wasteful copying of the result of the -last statement [perl #108794]. - -=head2 The C<overloading> pragma and regexp objects - -With C<no overloading>, regular expression objects returned by C<qr//> are -now stringified as "Regexp=REGEXP(0xbe600d)" instead of the regular -expression itself [perl #108780]. - -=head2 Two XS typemap Entries removed - -Two presumably unused XS typemap entries have been removed from the -core typemap: T_DATAUNIT and T_CALLBACK. If you are, against all odds, -a user of these, please see the instructions on how to regain them -in L<perlxstypemap>. - -=head2 Unicode 6.1 has incompatibilities with Unicode 6.0 +XXX For a release on a stable branch, this section aspires to be: -These are detailed in L</Supports (almost) Unicode 6.1> above. + 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. -=head2 Changed returns for some properties in C<Unicode::UCD::prop_invmap()> - -The return values for C<prop_invmap> have been changed for some -properties to make the returned lists significantly smaller. This -allows those lists to be searched faster. - -This function was introduced earlier in the v5.15 series of releases, -and the API will not be considered stable until v5.16. - -See L<Unicode::UCD/prop_invmap()> for details on the new interface. - -=head2 C<$$> and C<getppid()> no longer emulate POSIX semantics under LinuxThreads - -The POSIX emulation of C<$$> and C<getppid()> under the obsolete -LinuxThreads implementation has been removed (the C<$$> emulation was -actually removed in v5.15.0). This only impacts users of Linux 2.4 and -users of Debian GNU/kFreeBSD up to and including 6.0, not the vast -majority of Linux installations that use NPTL threads. +[ List each incompatible change as a =head2 entry ] -This means that C<getppid()> like C<$$> is now always guaranteed to -return the OS's idea of the current state of the process, not perl's -cached version of it. +=head1 Deprecations -See the documentation for L<$$|perlvar/$$> for details. +XXX Any deprecated features, syntax, modules etc. should be listed here. +In particular, deprecated modules should be listed here even if they are +listed as an updated module in the L</Modules and Pragmata> section. -=head2 C<< $< >>, C<< $> >>, C<$(> and C<$)> are no longer cached +[ List each deprecation as a =head2 entry ] -Similarly to the changes to C<$$> and C<getppid()> the internal -caching of C<< $< >>, C<< $> >>, C<$(> and C<$)> has been removed. +=head1 Performance Enhancements -When we cached these values our idea of what they were would drift out -of sync with reality if someone (e.g. someone embedding perl) called -sete?[ug]id() without updating C<PL_e?[ug]id>. Having to deal with -this complexity wasn't worth it given how cheap the C<gete?[ug]id()> -system call is. +XXX Changes which enhance performance without changing behaviour go here. There +may well be none in a stable release. -This change will break a handful of CPAN modules that use the XS-level -C<PL_uid>, C<PL_gid>, C<PL_euid> or C<PL_egid> variables. +[ List each enhancement as a =item entry ] -The fix for those breakages is to use C<PerlProc_gete?[ug]id()> to -retrieve them (e.g. C<PerlProc_getuid()>), and not to assign to -C<PL_e?[ug]id> if you change the UID/GID/EUID/EGID. There is no longer -any need to do so since perl will always retrieve the up-to-date -version of those values from the OS. +=over 4 -=head2 Which Non-ASCII characters get quoted by C<quotemeta> and C<\Q> has changed +=item * -This is unlikely to result in a real problem, as Perl does not attach -special meaning to any non-ASCII character, so it is currently -irrelevant which are quoted or not. This change fixes bug [perl #77654] and -bring Perl's behavior more into line with Unicode's recommendations. -See L<perlfunc/quotemeta>. +XXX -=head1 Deprecations +=back -=head2 C<is_utf8_char()> +=head1 Modules and Pragmata -This function is deprecated because it could read beyond the end of the -input string. Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()> -instead. +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>, 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<Changes> file that could be +cribbed. -=head1 Modules and Pragmata +[ Within each section, list entries as a =item entry ] =head2 New Modules and Pragmata @@ -248,10 +87,7 @@ instead. =item * -C<PerlIO::mmap> 0.010 has been added to the Perl core. - -The C<mmap> PerlIO layer is no longer implemented by perl itself, but has -been moved out into the new L<PerlIO::mmap> module. +XXX =back @@ -261,414 +97,266 @@ been moved out into the new L<PerlIO::mmap> module. =item * -L<arybase> has been upgraded from version 0.03 to version 0.04. - -List slices no longer modify items on the stack belonging to outer lists -[perl #109570]. - -=item * - -L<B> has been upgraded from version 1.33 to version 1.34. - -C<B::COP> now has a C<stashflags> method, corresponding to a new internal -field added in 5.15.4 [perl #108860]. - -=item * - -C<B::Deparse> has been upgraded from version 1.11 to 1.12. - -=item * - -L<Carp> has been upgraded from version 1.24 to version 1.25. - -It now puts a dot after the file and line number, just like errors from -C<die> [perl #106538]. - -=item * - -C<Compress::Raw::Bzip2> has been upgraded from version 2.045 to 2.048. - -=item * - -C<Compress::Raw::Zlib> has been upgraded from version 2.045 to 2.048. +L<XXX> has been upgraded from version 0.69 to version 0.70. -=item * - -L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048. - -=item * - -C<CPAN::Meta> has been upgraded from version 2.113640 to 2.120351. - -Work around a memory leak bug involving version objects in boolean context. - -=item * - -C<CPAN::Meta::YAML> has been upgraded from version 0.005 to 0.007. - -=item * - -C<CPANPLUS> has been upgraded from version 0.9116 to 0.9118. - -=item * - -C<CPANPLUS::Dist::Build> has been upgraded from version 0.60 to 0.62. - -=item * - -C<Data::Dumper> has been upgraded from version 2.135_04 to 2.135_05. - -=item * - -C<DB_File> has been upgraded from version 1.824 to 1.826. - -=item * - -C<diagnostics> has been upgraded from version 1.27 to 1.28. - -When searching for F<perldiag.pod>, it no longer uses paths that were only -relevant on Perl 5.004 and earlier. - -=item * - -C<English> has been upgraded from version 1.04 to 1.05. +=back -=item * +=head2 Removed Modules and Pragmata -C<ExtUtils::Install> has been upgraded from version 1.57 to 1.58. +=over 4 =item * -C<ExtUtils::ParseXS> has been upgraded from version 3.12 to 3.16. - -The new version comes with important tools for sharing typemaps between -different CPAN distributions. +XXX -=item * - -C<File::Copy> has been upgraded from version 2.21 to 2.23. +=back -It no longer emits warnings when copying files with newlines in their names -[perl #109104]. +=head1 Documentation -=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<File::Glob> has been upgraded from version 1.16 to 1.17. +=head2 New Documentation -=item * +XXX Changes which create B<new> files in F<pod/> go here. -C<Filter::Util::Call> has been upgraded from version 1.39 to 1.40. +=head3 L<XXX> -=item * +XXX Description of the purpose of the new file here -C<IPC::Cmd> has been upgraded from version 0.72 to 0.76. +=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<Math::Complex> has been upgraded from version 1.58 to 1.59. +=head3 L<XXX> -This avoids a new core warning. +=over 4 =item * -C<Module::Metadata> has been upgraded from version 1.000007 to 1.000009. +XXX Description of the change here -Adds C<provides> method to generate a CPAN META provides data structure -correctly; use of C<package_versions_from_directory> is discouraged. +=back -=item * +=head1 Diagnostics -C<Opcode> has been upgraded from version 1.22 to 1.23. +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>. -=item * +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. -C<overload> has been upgraded from version 1.17 to 1.18. +[ Within each section, list entries as a =item entry that links to perldiag, + e.g. -=item * + =item * -C<Parse::CPAN::Meta> has been upgraded from version 1.4401 to 1.4402. + L<Invalid version object|perldiag/"Invalid version object"> +] -=item * +=head2 New Diagnostics -C<perlfaq> has been upgraded from version 5.0150038 to 5.0150039. +XXX Newly added diagnostic messages go here -=item * +=head3 New Errors -C<Pod::Functions> has been upgraded from version 1.04 to 1.05. - -F<Functions.pm> is now generated at perl build time from annotations in -F<perlfunc.pod>. This will ensure that L<Pod::Functions> and L<perlfunc> -remain in synchronisation. +=over 4 =item * -C<Pod::Html> has been upgraded from version 1.13 to 1.14. +XXX L<message|perldiag/"message"> -=item * +=back -C<Pod::Parser> has been upgraded from version 1.37 to 1.51. +=head3 New Warnings -=item * - -C<POSIX> has been upgraded from version 1.28 to 1.30. +=over 4 =item * -C<re> has been upgraded from version 0.18 to 0.19. +XXX L<message|perldiag/"message"> -=item * +=back -C<Safe> has been upgraded from version 2.30 to 2.31. +=head2 Changes to Existing Diagnostics -=item * +XXX Changes (i.e. rewording) of diagnostic messages go here -C<Socket> has been upgraded from version 1.97 to 1.98. +=over 4 =item * -C<Term::Cap> has been upgraded from version 1.12 to 1.13. +XXX Describe change here -=item * +=back -C<Term::ReadLine> has been upgraded from version 1.07 to 1.08. +=head1 Utility Changes -Term::ReadLine now supports any event loop, including unpublished ones and -simple L<IO::Select> loops without the need to rewrite existing code for -any particular framework [perl #108470]. +XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go +here. Most of these are built within the directories F<utils> and F<x2p>. -=item * +[ List utility changes as a =head3 entry for each utility and =item +entries for each change +Use L<XXX> with program names to get proper documentation linking. ] -C<Time::HiRes> has been upgraded from version 1.9724 to 1.9725. +=head3 L<XXX> -C<Time::HiRes::stat()> no longer corrupts the Perl stack. +=over 4 =item * -C<Unicode::UCD> has been upgraded from version 0.39 to 0.41. +XXX -The only change is to fix a formatting error in the Pod. +=back -=item * +=head1 Configuration and Compilation -C<Version::Requirements> has been upgraded from version 0.101021 to 0.101022. +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. -=item * +[ List changes as a =item entry ]. -C<warnings> has been upgraded from version 1.12 to 1.13. +=over 4 =item * -C<XS::Typemap> has been upgraded from version 0.07 to 0.08. +XXX =back -=head1 Documentation - -=head2 New Documentation - -=head3 L<perlxstypemap> - -The new manual describes the XS typemapping mechanism in unprecedented -detail and combines new documentation with information extracted from -L<perlxs> and the previously unofficial list of all core typemaps. - =head1 Testing -=over 4 +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 summarising, although the bugs +that they represent may be covered elsewhere. -=item * - -F<t/porting/pending-author.t> has been added, to avoid the problem of -C<make test> passing 100%, but the subsequent git commit causing -F<t/porting/authors.t> to fail, because it uses a "new" e-mail address. - -This test is only run if one is building inside a git checkout, B<and> one -has made local changes. Otherwise it's skipped. - -=item * +[ List each test improvement as a =item entry ] -F<t/porting/perlfunc.t> has been added, to test that changes to -F<pod/perlfunc.pod> do not inadvertently break the build of L<Pod::Functions>. +=over 4 =item * -The test suite for typemaps has been extended to cover a larger fraction of -the core typemaps. +XXX =back =head1 Platform Support -=head2 Platform-Specific Notes +XXX Any changes to platform support should be listed in the sections below. -=over 4 +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -=item Cygwin +=head2 New Platforms -Since version 1.7, Cygwin supports native UTF-8 paths. If Perl is built -under that environment, directory and filenames will be UTF-8 encoded. +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. -Cygwin does not initialize all original Win32 environment variables. See -F<README.cygwin> for a discussion of C<Cygwin::sync_winenv()> and -further links. +=over 4 -=item VMS +=item XXX-some-platform -The build on VMS now allows names of the resulting -symbols in C code for Perl longer than 31 characters. -Symbols like C<Perl__it_was_the_best_of_times_it_was_the_worst_of_times> -can now be created freely without causing the VMS linker to seize up. +XXX =back -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<~~> now correctly handles the precedence of Any~~Object, and is not tricked -by an overloaded object on the left-hand side. +=head2 Discontinued Platforms -=item * +XXX List any platforms that this version of perl no longer compiles on. -C<stat _> no longer warns about unopened filehandles [perl #71002]. +=over 4 -=item * +=item XXX-some-platform -C<stat> on an unopened filehandle now warns consistently, instead of -skipping the warning at times. +XXX -=item * - -A change in an earlier 5.15 release caused warning hints to propagate into -C<do $file>. This has been fixed [rt.cpan.org #72767]. +=back -=item * +=head2 Platform-Specific Notes -Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up -after assigning C<${ qr// }> to a hash element and locking it with -L<Hash::Util>. This could result in double frees, crashes or erratic -behaviour. +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 -In 5.15.7, some typeglobs in the CORE namespace were made read-only by -mistake. This has been fixed [rt.cpan.org #74289]. +=item XXX-some-platform -=item * +XXX -C<-t> now works when stacked with other filetest operators [perl #77388]. +=back -=item * +=head1 Internal Changes -Stacked filetest operators now only call FETCH once on a tied argument. +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. -=item * +[ List each change as a =item entry ] -C</.*/g> would sometimes refuse to match at the end of a string that ends -with "\n". This has been fixed [perl #109206]. +=over 4 =item * -C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not -under a differing locale). This fixes a regression introduced in 5.14 -in which the first expression could match characters outside of ASCII, -such as the KELVIN SIGN. +XXX -=item * +=back -Method calls whose arguments were all surrounded with C<my()> or C<our()> -(as in C<< $object->method(my($a,$b)) >>) used to force lvalue context on -the subroutine. This would prevent lvalue methods from returning certain -values. Due to lvalue fixes earlier in the 5.15.x series, it would also -prevent non-lvalue methods from being called [perl #109264]. +=head1 Selected Bug Fixes -=for comment -This bug I<did> affect earlier stable releases. It is just the last -sentence that does not apply to 5.14. +XXX Important bug fixes in the core language are summarised here. +Bug fixes in files in F<ext/> and F<lib/> are best summarised in +L</Modules and Pragmata>. -=item * +[ List each fix as a =item entry ] -The C<SvPVutf8> C function no longer tries to modify its argument, -resulting in errors [perl #108994]. +=over 4 =item * -C<SvPVutf8> now works properly with magical variables. +XXX -=item * +=back -C<SvPVbyte> now works properly non-PVs. +=head1 Known Problems -=item * +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, unless +they were specific to a particular platform (see below). -C</[[:ascii:]]/> and C</[[:blank:]]/> now use locale rules under -C<use locale> when the platform supports that. Previously, they used -the platform's native character set. +This is a list of some significant unfixed bugs, which are regressions +from either 5.XXX.XXX or 5.XXX.XXX. -=item * +[ List each fix as a =item entry ] -A regression introduced in 5.13.6 was fixed. This involved an inverted -bracketed character class in a regular expression that consisted solely -of a Unicode property, that property wasn't getting inverted outside the -Latin1 range. +=over 4 =item * -C<quotemeta> now quotes consistently the same non-ASCII characters under -C<use feature 'unicode_strings'>, regardless of whether the string is -encoded in UTF-8 or not, hence fixing the last vestiges (we hope) of the -infamous L<perlunicode/The "Unicode Bug">. [perl #77654]. - -Which of these code points is quoted has changed, based on Unicode's -recommendations. See L<perlfunc/quotemeta> for details. +XXX =back -=head1 Known Problems - -This is a list of some significant unfixed bugs, which are regressions -from either 5.14.0 or 5.15.7. - -=over 4 - -=item * C<eval { 'fork()' }> is broken on Windows [perl #109718] +=head1 Obituary -This is a known test failure to be fixed before 5.16.0. - -=back +XXX If any significant core contributor has died, we've added a short obituary +here. =head1 Acknowledgements -Perl 5.15.8 represents approximately 4 weeks of development since Perl 5.15.7 -and contains approximately 61,000 lines of changes across 480 files from 36 -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.15.8: - -Abhijit Menon-Sen, Alan Haggai Alavi, Alexandr Ciornii, Andy Dougherty, Brian -Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Darin McBride, Dave Rolsky, -David Golden, David Leadbeater, David Mitchell, Dominic Hargreaves, Eric Brine, -Father Chrysostomos, Florian Ragwitz, H.Merijn Brand, Juerd Waalboer, Karl -Williamson, Leon Timmermans, Marc Green, Max Maischein, Nicholas Clark, Paul -Evans, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo Signes, Robin -Barker, Shlomi Fish, Steffen Müller, Todd Rinaldo, Tony Cook, Yves Orton, -Zefram, Æ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. - -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<AUTHORS> file in the Perl source distribution. +XXX Generate this with: + + perl Porting/acknowledgements.pl v5.15.8..HEAD =head1 Reporting Bugs diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index cf30131609..72d85535bc 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -345,7 +345,7 @@ x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5158delta.pod +PERLDELTA_CURRENT = [.pod]perl5159delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(MMS$TARGET) diff --git a/win32/Makefile b/win32/Makefile index b6b3da6bb1..edf275d773 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1075,7 +1075,7 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vmesa ..\pod\perlvmesa.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5158delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5159delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(PERLEXE) $(ICWD) ..\autodoc.pl .. @@ -1168,7 +1168,7 @@ distclean: realclean -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5158delta.pod perlaix.pod perlamiga.pod perlapi.pod \ + perl5159delta.pod perlaix.pod perlamiga.pod perlapi.pod \ perlbeos.pod perlbs2000.pod perlce.pod perlcn.pod \ perlcygwin.pod perldgux.pod perldos.pod perlepoc.pod \ perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 5a38c85d88..08240188d7 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1261,7 +1261,7 @@ utils: $(PERLEXE) $(X2P) copy ..\README.vmesa ..\pod\perlvmesa.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl5158delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5159delta.pod $(PERLEXE) $(PL2BAT) $(UTILS) $(PERLEXE) $(ICWD) ..\autodoc.pl .. $(PERLEXE) $(ICWD) ..\pod\perlmodlib.pl -q @@ -1353,7 +1353,7 @@ distclean: realclean -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl5158delta.pod perlaix.pod perlamiga.pod perlapi.pod \ + perl5159delta.pod perlaix.pod perlamiga.pod perlapi.pod \ perlbeos.pod perlbs2000.pod perlce.pod perlcn.pod \ perlcygwin.pod perldgux.pod perldos.pod perlepoc.pod \ perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \ diff --git a/win32/pod.mak b/win32/pod.mak index 0ed28343ae..37b5e09b61 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -35,6 +35,7 @@ POD = perl.pod \ perl5156delta.pod \ perl5157delta.pod \ perl5158delta.pod \ + perl5159delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -161,6 +162,7 @@ MAN = perl.man \ perl5156delta.man \ perl5157delta.man \ perl5158delta.man \ + perl5159delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -287,6 +289,7 @@ HTML = perl.html \ perl5156delta.html \ perl5157delta.html \ perl5158delta.html \ + perl5159delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -413,6 +416,7 @@ TEX = perl.tex \ perl5156delta.tex \ perl5157delta.tex \ perl5158delta.tex \ + perl5159delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ |