argra****@users*****
argra****@users*****
2012年 5月 13日 (日) 15:58:37 JST
Index: docs/perl/5.16.0/perl5160delta.pod diff -u docs/perl/5.16.0/perl5160delta.pod:1.15 docs/perl/5.16.0/perl5160delta.pod:1.16 --- docs/perl/5.16.0/perl5160delta.pod:1.15 Sun May 13 15:36:19 2012 +++ docs/perl/5.16.0/perl5160delta.pod Sun May 13 15:58:37 2012 @@ -33,21 +33,47 @@ 5.12.0 ã®ãããªä»¥åã®ãªãªã¼ã¹ããæ´æ°ããå ´åã¯ãã¾ã 5.12.0 㨠5.14.0 ã®éãã«ã¤ãã¦è¨è¿°ãã¦ãã L<perl5140delta> ãèªãã§ãã ããã +=begin original + +Some of the bug fixes in this release have been backported to subsequent +releases of 5.14.x. Those are indicated with the 5.14.x version in +parentheses. + +=end original + +Some of the bug fixes in this release have been backported to subsequent +releases of 5.14.x. Those are indicated with the 5.14.x version in +parentheses. +(TBT) + =head1 Notice =begin original -As described in L<perlpolicy>, the release of Perl 5.16.0 marks the -official end of support for Perl 5.12. Users of Perl 5.12 or earlier -should consider upgrading to a more recent release of Perl. +With the release of Perl 5.16.0, the 5.12.x series of releases are now out of +their support period. There may be future 5.12.x releases, but only in the +event of a critical security issue. Users of Perl 5.12 or earlier should +consider upgrading to a more recent release of Perl. =end original -L<perlpolicy> ã«è¨è¿°ããã¦ããããã«ãPerl 5.16.0 ã«ãã£ã¦ Perl 5.12 ã® -ãµãã¼ããå ¬å¼ã«çµäºãã¾ãã +Perl 5.16.0 ã®ãªãªã¼ã¹ã«ãã£ã¦ã5.12.x ãªãªã¼ã¹ã·ãªã¼ãºã¯ãµãã¼ãæéã +çµäºãã¾ãã +å°æ¥ 5.12.x ãªãªã¼ã¹ãããããããã¾ããããããã¯é大ãªã»ãã¥ãªãã£åé¡ã +ãã£ãå ´åã®ã¿ã§ãã Perl 5.12 以åã®ã¦ã¼ã¶ã¼ã¯ããæ°ãã Perl ã«ã¢ããã°ã¬ã¼ããããã¨ã æ¤è¨ããã¹ãã§ãã +=begin original + +This policy is described in greater detail in +L<perlpolicy|perlpolicy/MAINTENANCE AND SUPPORT>. + +=end original + +ãã®ããªã·ã¼ã¯ L<perlpolicy|perlpolicy/MAINTENANCE AND SUPPORT> ã« +ãã詳細ã«è¨è¿°ããã¦ãã¾ãã + =head1 Core Enhancements (ã³ã¢ã®æ¡å¼µ) @@ -289,7 +315,7 @@ Since this change also allowed many bugs to be fixed (see L</The C<substr> operator>), and since the behaviour -of negative offsets has never been specified, so the +of negative offsets has never been specified, the change was deemed acceptable. =end original @@ -674,7 +700,7 @@ One-character non-ASCII non-punctuation variables (like C<$辿>) are now subject to "Used only once" warnings. They used to be exempt, as they -was treated as punctuation variables. +were treated as punctuation variables. =end original @@ -820,17 +846,17 @@ The XS-callable function C<is_utf8_char()>, when presented with malformed UTF-8 input, can read up to 12 bytes beyond the end of the -string. This cannot be fixed without changing its API. It is not -called from CPAN. The documentation now describes how to use it -safely. +string. This cannot be fixed without changing its API, and so its +use is now deprecated. Use C<is_utf8_char_buf()> (described just below) +instead. =end original XS å¼ã³åºãå¯è½ãªé¢æ° C<is_utf8_char()> ã¯ãä¸æ£ãª UTF-8 å ¥åãããã¨ã æååã®çµãããè¶ãã¦æ大 12 ãã¤ãèªãå¯è½æ§ãããã¾ãã -ãã㯠API ãå¤æ´ããã«ä¿®æ£ãããã¨ã¯ã§ãã¾ããã -ãã㯠CPAN ããã¯å¼ã³åºããã¾ããã -ææ¸ã«ã¯ãããå®å ¨ã«ä½¿ãæ¹æ³ãè¨è¿°ãã¦ãã¾ãã +ãã㯠API ãå¤æ´ããã«ä¿®æ£ãããã¨ã¯ã§ããªãã®ã§ããã®ä½¿ç¨ã¯ +éæ¨å¥¨ã«ãªãã¾ããã +代ããã« (ãã®å¾ã«è¨è¿°ãã¦ãã) C<is_utf8_char_buf()> ã使ã£ã¦ãã ããã =head3 Added C<is_utf8_char_buf()> @@ -1256,7 +1282,7 @@ itself to denial of service or arbitrary code execution attacks. There are no known exploits in the wild. The problem has been corrected by explicitly disabling all unsupported flags and setting unused function -pointers to null. Bug reported by Cl辿ment Lecigne. +pointers to null. Bug reported by Cl辿ment Lecigne. (5.14.2) =end original @@ -1267,7 +1293,7 @@ ä»ã®ã¨ããç¥ããã¦ããæ»æã¯ããã¾ããã ãã®åé¡ã¯ãæªå¯¾å¿ãã©ã°ãæ示çã«ç¡å¹ã«ãã¦ãæªä½¿ç¨é¢æ°ã®ãã¤ã³ã¿ã null ã«ãããã¨ã§ä¿®æ£ããã¾ããã -ãã°ã¯ ClE<eacute>ment Lecigne ã«ãã£ã¦å ±åããã¾ããã +ãã°ã¯ ClE<eacute>ment Lecigne ã«ãã£ã¦å ±åããã¾ããã(5.14.2) =head2 Privileges are now set correctly when assigning to C<$(> @@ -1278,14 +1304,14 @@ A hypothetical bug (probably non-exploitable in practice) due to the incorrect setting of the effective group ID while setting C<$(> has been fixed. The bug would only have affected systems that have C<setresgid()> -but not C<setregid()>, but no such systems are known of. +but not C<setregid()>, but no such systems are known to exist. =end original C<$(> ã®è¨å®ä¸ã®æå¹ã°ã«ã¼ã ID ã®è¨å®ãæ£ãããªããã¨ã«ãã仮説ä¸ã® (ããããå®éã«ã¯æ»æã§ããªã)ãã°ãä¿®æ£ããã¾ããã ãã®ãã°ã¯ C<setresgid()> ã¯ããããã©ã C<setregid()> ããªãã·ã¹ãã ã«ã®ã¿ -å½±é¿ãä¸ãã¾ããããã®ãããªã·ã¹ãã ã¯ç¥ããã¦ãã¾ããã +å½±é¿ãä¸ãã¾ããããã®ãããªã·ã¹ãã ã®åå¨ã¯ç¥ããã¦ãã¾ããã =head1 Deprecations @@ -1312,14 +1338,14 @@ =begin original Perl may at some point in the future change or remove the files. The -file most likely for applications to have used is +file which applications were most likely to have used is F<lib/unicore/ToDigit.pl>. L<Unicode::UCD/prop_invmap()> can be used to get at its data instead. =end original Perl ã¯å°æ¥ã®ããããã®æç¹ã§ãã¡ã¤ã«ãå¤æ´ã¾ãã¯åé¤ããããããã¾ããã -ã¢ããªã±ã¼ã·ã§ã³ããä¸çªä½¿ããã¦ããã§ããããã¡ã¤ã«ã¯ +ã¢ããªã±ã¼ã·ã§ã³ãä¸çªä½¿ã£ã¦ããã§ããããã¡ã¤ã«ã¯ F<lib/unicore/ToDigit.pl> ã§ãã 代ããã«ãã®ãã¼ã¿ãå¾ãããã« L<Unicode::UCD/prop_invmap()> ã使ãã¾ãã @@ -1395,7 +1421,11 @@ =item * -Pod::Parser, Pod::LaTeX +Pod::LaTeX + +=item * + +Pod::Parser =item * @@ -1562,6 +1592,32 @@ å¯è½ã«ãªãã¾ãã ä¾ã«ã¤ãã¦ã¯ L<perlre/Quantifiers> ãåç §ãã¦ãã ããã +=item * + +=begin original + +Revamping C<< "\Q" >> semantics in double-quotish strings when combined with other escapes + +=end original + +Revamping C<< "\Q" >> semantics in double-quotish strings when combined with other escapes +(TBT) + +=begin original + +There are a number of bugs and inconsistencies involving combinations +of C<\Q> and excapes like C<\x>, C<\L>, etc., within a C<\Q...\E> pair. +These need to be fixed, and doing so will necessarily change current +behavior. The changes have not yet been settled. + +=end original + +There are a number of bugs and inconsistencies involving combinations +of C<\Q> and excapes like C<\x>, C<\L>, etc., within a C<\Q...\E> pair. +These need to be fixed, and doing so will necessarily change current +behavior. The changes have not yet been settled. +(TBT) + =back =head1 Incompatible Changes @@ -1608,7 +1664,7 @@ 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 +a user of these, please see the instructions on how to restore them in L<perlxstypemap>. =end original @@ -1736,8 +1792,8 @@ and C<XS_INTERNAL(name)> macros to pick the desired linking behaviour. The ordinary C<XS(name)> declaration for XSUBs will continue to declare non-'static' XSUBs for compatibility, but the XS compiler, -C<ExtUtils::ParseXS> (C<xsubpp>) will emit 'static' XSUBs by default. -C<ExtUtils::ParseXS>'s behaviour can be reconfigured from XS using the +L<ExtUtils::ParseXS> (C<xsubpp>) will emit 'static' XSUBs by default. +L<ExtUtils::ParseXS>'s behaviour can be reconfigured from XS using the C<EXPORT_XSUB_SYMBOLS> keyword. See L<perlxs> for details. =end original @@ -1747,9 +1803,9 @@ ã¦ã¼ã¶ã¼ã¯æ±ãããªã³ã¯ã®æ¯ãèããå¾ãããã«æ°ãã C<XS_EXTERNAL(name)> ãã¯ã㨠C<XS_INTERNAL(name)> ãã¯ãã使ãã¾ãã XSUB ã®é常㮠C<XS(name)> 宣è¨ã¯äºææ§ã®ããã«é 'static' 㪠XSUB ã -宣è¨ããã¾ã¾ã§ãããXS ã³ã³ãã¤ã© C<ExtUtils::ParseXS> (C<xsubpp>) 㯠+宣è¨ããã¾ã¾ã§ãããXS ã³ã³ãã¤ã© L<ExtUtils::ParseXS> (C<xsubpp>) 㯠ããã©ã«ãã§ã¯ 'static' XSUB ãåºåãã¾ãã -C<ExtUtils::ParseXS> ã®æ¯ãèã㯠C<EXPORT_XSUB_SYMBOLS> ãã¼ã¯ã¼ãã +L<ExtUtils::ParseXS> ã®æ¯ãèã㯠C<EXPORT_XSUB_SYMBOLS> ãã¼ã¯ã¼ãã 使ã£ã XS ã«ãã£ã¦åè¨å®ã§ãã¾ãã 詳ãã㯠L<perlxs> ãåç §ãã¦ãã ããã @@ -1993,6 +2049,28 @@ =for comment Can this be compacted some? -- rjbs, 2012-02-20 +=begin original + +Matching a code point against a Unicode property is now done via a +binary search instead of linear. This means for example that the worst +case for a 1000 item property is 10 probes instead of 1000. This +inefficiency has been compensated for in the past by permanently storing +in a hash the results of a given probe plus the results for the adjacent +64 code points, under the theory that near-by code points are likely to +be searched for. A separate hash was used for each mention of a Unicode +property in each regular expression. Thus, C<qr/\p{foo}abc\p{foo}/> +would generate two hashes. Any probes in one instance would be unknown +to the other, and the hashes could expand separately to be quite large +if the regular expression were used on many different widely-separated +code points. +Now, however, there is just one hash shared by all instances of a given +property. This means that if C<\p{foo}> is matched against "A" in one +regular expression in a thread, the result will be known immediately to +all regular expressions, and the relentless march of using up memory is +slowed considerably. + +=end original + Matching a code point against a Unicode property is now done via a binary search instead of linear. This means for example that the worst case for a 1000 item property is 10 probes instead of 1000. This @@ -2004,12 +2082,13 @@ would generate two hashes. Any probes in one instance would be unknown to the other, and the hashes could expand separately to be quite large if the regular expression were used on many different widely-separated -code points. This can lead to running out of memory in extreme cases. +code points. Now, however, there is just one hash shared by all instances of a given property. This means that if C<\p{foo}> is matched against "A" in one regular expression in a thread, the result will be known immediately to all regular expressions, and the relentless march of using up memory is slowed considerably. +(TBT) =item * @@ -2163,16 +2242,6 @@ =begin original -C<study> is now a no-op. - -=end original - -C<study> ã¯ä½ãããªããªãã¾ããã - -=item * - -=begin original - Recursive calls to lvalue subroutines in lvalue scalar context use less memory. @@ -2229,11 +2298,11 @@ =begin original -C<PerlIO::mmap> 0.010 has been added to the Perl core. +L<PerlIO::mmap> 0.010 has been added to the Perl core. =end original -C<PerlIO::mmap> 0.010 ã Perl ã³ã¢ã«è¿½å ããã¾ããã +L<PerlIO::mmap> 0.010 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =begin original @@ -2251,11 +2320,536 @@ (æ´æ°ãããã¢ã¸ã¥ã¼ã«ã¨ãã©ã°ã) +=begin original + +This is only an overview of selected module updates. For a complete list of +updates, run: + +=end original + +This is only an overview of selected module updates. For a complete list of +updates, run: +(TBT) + + $ corelist --diff 5.14.0 5.16.0 + +=begin original + +You can substitute your favorite version in place of 5.14.0, too. + +=end original + +You can substitute your favorite version in place of 5.14.0, too. +(TBT) + +=over 4 + +=item * + +L<Archive::Extract> has been upgraded from version 0.48 to 0.58. + +Includes a fix for FreeBSD to only use C<unzip> if it is located in +C</usr/local/bin>, as FreeBSD 9.0 will ship with a limited C<unzip> in +C</usr/bin>. + +=item * + +L<Archive::Tar> has been upgraded from version 1.76 to 1.82. + +Adjustments to handle files >8gb (>0777777777777 octal) and a feature +to return the MD5SUM of files in the archive. + +=item * + +L<base> has been upgraded from version 2.16 to 2.18. + +C<base> no longer sets a module's C<$VERSION> to "-1" when a module it +loads does not define a C<$VERSION>. This change has been made because +"-1" is not a valid version number under the new "lax" criteria used +internally by C<UNIVERSAL::VERSION>. (See L<version> for more on "lax" +version criteria.) + +C<base> no longer internally skips loading modules it has already loaded +and instead relies on C<require> to inspect C<%INC>. This fixes a bug +when C<base> is used with code that clear C<%INC> to force a module to +be reloaded. + +=item * + +L<Carp> has been upgraded from version 1.20 to 1.26. + +It now includes last read filehandle info and puts a dot after the file +and line number, just like errors from C<die> [perl #106538]. + +=item * + +L<charnames> has been updated from version 1.18 to 1.30. + +L<charnames> can now be invoked with a new option, C<:loose>, +which is like the existing C<:full> option, but enables Unicode loose +name matching. Details are in L<charnames/LOOSE MATCHES>. + +=item * + +L<B::Deparse> has been upgraded from version 1.03 to 1.14. This fixes +numerous deparsing bugs. + +=item * + +L<CGI> has been upgraded from version 3.52 to 3.59. + +It uses the public and documented FCGI.pm API in CGI::Fast. CGI::Fast was +using an FCGI API that was deprecated and removed from documentation +more than ten years ago. Usage of this deprecated API with FCGI E<gt>= +0.70 or FCGI E<lt>= 0.73 introduces a security issue. +L<https://rt.cpan.org/Public/Bug/Display.html?id=68380> +L<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-2766> + +Things that may break your code: + +C<url()> was fixed to return C<PATH_INFO> when it is explicitly requested +with either the C<path=E<gt>1> or C<path_info=E<gt>1> flag. + +If your code is running under mod_rewrite (or compatible) and you are +calling C<self_url()> or you are calling C<url()> and passing +C<path_info=E<gt>1>, these methods will actually be returning +C<PATH_INFO> now, as you have explicitly requested or C<self_url()> +has requested on your behalf. + +The C<PATH_INFO> has been omitted in such URLs since the issue was +introduced in the 3.12 release in December, 2005. + +This bug is so old your application may have come to depend on it or +workaround it. Check for application before upgrading to this release. + +Examples of affected method calls: + + $q->url(-absolute => 1, -query => 1, -path_info => 1); + $q->url(-path=>1); + $q->url(-full=>1,-path=>1); + $q->url(-rewrite=>1,-path=>1); + $q->self_url(); + +We no longer read from STDIN when the Content-Length is not set, +preventing requests with no Content-Length from freezing in some cases. +This is consistent with the CGI RFC 3875, and is also consistent with +CGI::Simple. However, the old behavior may have been expected by some +command-line uses of CGI.pm. + +In addition, the DELETE HTTP verb is now supported. + +=item * + +L<Compress::Zlib> has been upgraded from version 2.035 to 2.048. + +IO::Compress::Zip and IO::Uncompress::Unzip now have support for LZMA +(method 14). There is a fix for a CRC issue in IO::Compress::Unzip and +it supports Streamed Stored context now. And fixed a Zip64 issue in +IO::Compress::Zip when the content size was exactly 0xFFFFFFFF. + +=item * + +L<Digest::SHA> has been upgraded from version 5.61 to 5.71. + +Added BITS mode to the addfile method and shasum. This makes +partial-byte inputs possible via files/STDIN and allows shasum to check +all 8074 NIST Msg vectors, where previously special programming was +required to do this. + +=item * + +L<Encode> has been upgraded from version 2.42 to 2.44. + +Missing aliases added, a deep recursion error fixed and various +documentation updates. + +Addressed 'decode_xs n-byte heap-overflow' security bug in Unicode.xs +(CVE-2011-2939). (5.14.2) + +=item * + +L<ExtUtils::CBuilder> updated from version 0.280203 to 0.280206. + +The new version appends CFLAGS and LDFLAGS to their Config.pm +counterparts. + +=item * + +L<ExtUtils::ParseXS> has been upgraded from version 2.2210 to 3.16. + +Much of L<ExtUtils::ParseXS>, the module behind the XS compiler C<xsubpp>, +was rewritten and cleaned up. It has been made somewhat more extensible +and now finally uses strictures. + +The typemap logic has been moved into a separate module, +L<ExtUtils::Typemaps>. See L</New Modules and Pragmata>, above. + +For a complete set of changes, please see the ExtUtils::ParseXS +changelog, available on the CPAN. + +=item * + +L<File::Glob> has been upgraded from version 1.12 to 1.17. + +On Windows, tilde (~) expansion now checks the C<USERPROFILE> environment +variable, after checking C<HOME>. + +It has a new C<:bsd_glob> export tag, intended to replace C<:glob>. Like +C<:glob> it overrides C<glob> with a function that does not split the glob +pattern into words, but, unlike C<:glob>, it iterates properly in scalar +context, instead of returning the last file. + +There are other changes affecting Perl's own C<glob> operator (which uses +File::Glob internally, except on VMS). See L</Performance Enhancements> +and L</Selected Bug Fixes>. + +=item * + +L<FindBin> updated from version 1.50 to 1.51. + +It no longer returns a wrong result if a script of the same name as the +current one exists in the path and is executable. + +=item * + +L<HTTP::Tiny> has been upgraded from version 0.012 to 0.017. + +Added support for using C<$ENV{http_proxy}> to set the default proxy host. + +Adds additional shorthand methods for all common HTTP verbs, +a C<post_form()> method for POST-ing x-www-form-urlencoded data and +a C<www_form_urlencode()> utility method. + +=item * + +L<IO> has been upgraded from version 1.25_04 to 1.25_06, and L<IO::Handle> +from version 1.31 to 1.33. + +Together, these upgrades fix a problem with IO::Handle's C<getline> and +C<getlines> methods. When these methods are called on the special ARGV +handle, the next file is automatically opened, as happens with the built-in +C<E<lt>E<gt>> and C<readline> functions. But, unlike the built-ins, these +methods were not respecting the caller's use of the L<open> pragma and +applying the approprate I/O layers to the newly-opened file +[rt.cpan.org #66474]. + +=item * + +L<IPC::Cmd> has been upgraded from version 0.70 to 0.76. + +Capturing of command output (both C<STDOUT> and C<STDERR>) is now supported +using L<IPC::Open3> on MSWin32 without requiring L<IPC::Run>. + +=item * + +L<IPC::Open3> has been upgraded from version 1.09 to 1.12. + =over 4 =item * -L<XXX> has been upgraded from version 0.69 to version 0.70. +Fixes a bug which prevented use of C<open3> on Windows when C<*STDIN>, +C<*STDOUT> or C<*STDERR> had been localized. + +=item * + +Fixes a bug which prevented duplicating numeric file descriptors on Windows. + +=item * + +C<open3> with "-" for the program name works once more. This was broken in +version 1.06 (and hence in Perl 5.14.0) [perl #95748]. + +=back + +=item * + +L<Locale::Codes> has been upgraded from version 3.16 to 3.21. + +Added Language Extension codes (langext) and Language Variation codes (langvar) +as defined in the IANA language registry. + +Added language codes from ISO 639-5 + +Added language/script codes from the IANA language subtag registry + +Fixed an uninitialized value warning [rt.cpan.org #67438]. + +Fixed the return value for the all_XXX_codes and all_XXX_names functions +[rt.cpan.org #69100]. + +Reorganized modules to move Locale::MODULE to Locale::Codes::MODULE to allow +for cleaner future additions. The original four modules (Locale::Language, +Locale::Currency, Locale::Country, Locale::Script) will continue to work, but +all new sets of codes will be added in the Locale::Codes namespace. + +The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions now +support retired codes. All codesets may be specified by a constant or +by their name now. Previously, they were specified only by a constant. + +The alias_code function exists for backward compatibility. It has been +replaced by rename_country_code. The alias_code function will be +removed some time after September, 2013. + +All work is now done in the central module (Locale::Codes). Previously, +some was still done in the wrapper modules (Locale::Codes::*). Added +Language Family codes (langfam) as defined in ISO 639-5. + +=item * + +L<Math::BigFloat> has been upgraded from version 1.993 to 1.997. + +The C<numify> method has been corrected to return a normalised Perl number +(the result of C<0 + $thing>), instead of a string [rt.cpan.org #66732]. + +=item * + +L<Math::BigInt> has been upgraded from version 1.994 to 1.998. + +It provides a new C<bsgn> method that complements the C<babs> method. + +It fixes the internal C<objectify> function's handling of "foreign objects" +so they are converted to the appropriate class (Math::BigInt or +Math::BigFloat). + +=item * + +L<Math::BigRat> has been upgraded from version 0.2602 to 0.2603. + +C<int()> on a Math::BigRat object containing -1/2 now creates a +Math::BigInt containing 0, rather than -0. L<Math::BigInt> does not even +support negative zero, so the resulting object was actually malformed +[perl #95530]. + +=item * + +L<Math::Complex> has been upgraded from version 1.56 to 1.59 +and L<Math::Trig> from version 1.2 to 1.22. + +Fixes include: correct copy constructor usage; fix polarwise formatting with +numeric format specifier; and more stable C<great_circle_direction> algorithm. + +=item * + +L<Module::CoreList> has been upgraded from version 2.51 to 2.66. + +The C<corelist> utility now understands the C<-r> option for displaying +Perl release dates and the C<--diff> option to print the set of modlib +changes between two perl distributions. + +=item * + +L<Module::Metadata> has been upgraded from version 1.000004 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 * + +L<ODBM_File> has been upgraded from version 1.10 to 1.12. + +The XS code is now compiled with C<PERL_NO_GET_CONTEXT>, which will aid +performance under ithreads. + +=item * + +L<open> has been upgraded from version 1.08 to 1.10. + +It no longer turns off layers on standard handles when invoked without the +":std" directive. Similarly, when invoked I<with> the ":std" directive, it +now clears layers on STDERR before applying the new ones, and not just on +STDIN and STDOUT [perl #92728]. + +=item * + +L<overload> has been upgraded from version 1.13 to 1.18. + +C<overload::Overloaded> no longer calls C<can> on the class, but uses +another means to determine whether the object has overloading. It was +never correct for it to call C<can>, as overloading does not respect +AUTOLOAD. So classes that autoload methods and implement C<can> no longer +have to account for overloading [perl #40333]. + +A warning is now produced for invalid arguments. See L</New Diagnostics>. + +=item * + +L<PerlIO::scalar> has been upgraded from version 0.11 to 0.14. + +(This is the module that implements C<< open $fh, '>', \$scalar >>.) + +It fixes a problem with C<< open my $fh, ">", \$scalar >> not working if +C<$scalar> is a copy-on-write scalar. (5.14.2) + +It also fixes a hang that occurs with C<readline> or C<< <$fh> >> if a +typeglob has been assigned to $scalar [perl #92258]. + +It no longer assumes during C<seek> that $scalar is a string internally. +If it didn't crash, it was close to doing so [perl #92706]. Also, the +internal print routine no longer assumes that the position set by C<seek> +is valid, but extends the string to that position, filling the intervening +bytes (between the old length and the seek position) with nulls +[perl #78980]. + +Printing to an in-memory handle now works if the $scalar holds a reference, +stringifying the reference before modifying it. References used to be +treated as empty strings. + +Printing to an in-memory handle no longer crashes if the $scalar happens to +hold a number internally, but no string buffer. + +Printing to an in-memory handle no longer creates scalars that confuse +the regular expression engine [perl #108398]. + +=item * + +L<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 * + +L<Pod::Html> has been upgraded from version 1.11 to 1.1502. + +This is an extensive rewrite of Pod::Html to use L<Pod::Simple> under +the hood. The output has changed significantly. + +=item * + +L<Pod::Perldoc> has been upgraded from version 3.15_03 to 3.17. + +It corrects the search paths on VMS [perl #90640]. (5.14.1) + +The B<-v> option now fetches the right section for C<$0>. + +This upgrade has numerous significant fixes. Consult its changelog on +the CPAN for more information. + +=item * + +L<POSIX> has been upgraded from version 1.24 to 1.30. + +L<POSIX> no longer uses L<AutoLoader>. Any code which was relying on this +implementation detail was buggy, and may fail as a result of this change. +The module's Perl code has been considerably simplified, roughly halving +the number of lines, with no change in functionality. The XS code has +been refactored to reduce the size of the shared object by about 12%, +with no change in functionality. More POSIX functions now have tests. + +C<sigsuspend> and C<pause> now run signal handlers before returning, as the +whole point of these two functions is to wait until a signal has +arrived, and then return I<after> it has been triggered. Delayed, or +"safe", signals were preventing that from happening, possibly resulting in +race conditions [perl #107216]. + +C<POSIX::sleep> is now a direct call into the underlying OS C<sleep> +function, instead of being a Perl wrapper on C<CORE::sleep>. +C<POSIX::dup2> now returns the correct value on Win32 (I<i.e.>, the file +descriptor). C<POSIX::SigSet> C<sigsuspend> and C<sigpending> and +C<POSIX::pause> now dispatch safe signals immediately before returning to +their caller. + +C<POSIX::Termios::setattr> now defaults the third argument to C<TCSANOW>, +instead of 0. On most platforms C<TCSANOW> is defined as 0, but on some +0 is not a valid parameter, which caused a call with defaults to fail. + +=item * + +L<Socket> has been upgraded from version 1.94 to 2.000. + +It has new functions and constants for handling IPv6 sockets: + + pack_ipv6_mreq + unpack_ipv6_mreq + IPV6_ADD_MEMBERSHIP + IPV6_DROP_MEMBERSHIP + IPV6_MTU + IPV6_MTU_DISCOVER + IPV6_MULTICAST_HOPS + IPV6_MULTICAST_IF + IPV6_MULTICAST_LOOP + IPV6_UNICAST_HOPS + IPV6_V6ONLY + +=item * + +L<Storable> has been upgraded from version 2.27 to 2.34. + +It no longer turns copy-on-write scalars into read-only scalars when +freezing and thawing. + +=item * + +L<Sys::Syslog> has been upgraded from version 0.27 to 0.29. + +This upgrade closes many outstanding bugs. + +=item * + +L<Term::ANSIColor> has been upgraded from version 3.00 to 3.01. + +Only interpret an initial array reference as a list of colors, not any initial +reference, allowing the colored function to work properly on objects with +stringification defined. + +=item * + +L<Term::ReadLine> has been upgraded from version 1.07 to 1.09. + +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 * + +L<threads::shared> has been upgraded from version 1.37 to 1.40. + +Destructors on shared objects used to be ignored sometimes if the objects +were referenced only by shared data structures. This has been mostly +fixed, but destructors may still be ignored if the objects still exist at +global destruction time [perl #98204]. + +=item * + +L<Unicode::Collate> has been upgraded from version 0.73 to 0.89. + +Updated to CLDR 1.9.1 + +Locales updated to CLDR 2.0: mk, mt, nb, nn, ro, ru, sk, sr, sv, uk, +zh__pinyin, zh__stroke + +Newly supported locales: bn, fa, ml, mr, or, pa, sa, si, si__dictionary, +sr_Latn, sv__reformed, ta, te, th, ur, wae. + +Tailored compatibility ideographs as well as unified ideographs for the +locales: ja, ko, zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke. + +Locale/*.pl files are now searched for in @INC. + +=item * + +L<Unicode::Normalize> has been upgraded from version 1.10 to 1.14. + +Fixes for the removal of F<unicore/CompositionExclusions.txt> from core. + +=item * + +L<Unicode::UCD> has been upgraded from version 0.32 to 0.43. + +This adds four new functions: C<prop_aliases()> and +C<prop_value_aliases()>, which are used to find all the Unicode-approved +synonyms for property names, or to convert from one name to another; +C<prop_invlist> which returns all the code points matching a given +Unicode binary property; and C<prop_invmap> which returns the complete +specification of a given Unicode property. + +=item * + +L<Win32API::File> has been upgraded from version 0.1101 to 0.1200. + +Added SetStdHandle and GetStdHandle functions =back @@ -2417,14 +3011,14 @@ =begin original -As an accident of history, C<open $fh, "<:", ...> applies the default +As an accident of history, C<open $fh, '<:', ...> applies the default layers for the platform (C<:raw> on Unix, C<:crlf> on Windows), ignoring whatever is declared by L<open.pm|open>. This seems such a useful feature it has been documented in L<perlfunc|perlfunc/open> and L<open>. =end original -æ´å²ä¸ã®å¶ç¶ã«ãããC<open $fh, "<:", ...> ã¯ãã©ãããã©ã¼ã ã®ããã©ã«ã層 +æ´å²ä¸ã®å¶ç¶ã«ãããC<open $fh, '<:', ...> ã¯ãã©ãããã©ã¼ã ã®ããã©ã«ã層 (Unix ã§ã¯ C<:raw>ãWindows ã§ã¯ C<:crlf>)ãé©ç¨ããL<open.pm|open> 㧠宣è¨ããã¦ãããã®ãç¡è¦ãã¦ãã¾ããã ããã¯æå¹ãªæ©è½ã«æããã®ã§ãL<perlfunc|perlfunc/open> 㨠L<open> ã« @@ -3678,12 +4272,12 @@ =begin original A fix to correct the socketsize now makes the test suite pass on HP-UX -PA-RISC for 64bitall builds. +PA-RISC for 64bitall builds. (5.14.2) =end original socketsize ã®ä¿®æ£ã¯ HP-UX PA-RISC ã® 64 ããããã«ãã®ãã¹ãã« -éãããã«ãªãã¾ããã +éãããã«ãªãã¾ããã(5.14.2) =back @@ -4035,6 +4629,29 @@ =begin original +The returned code point from the function C<utf8n_to_uvuni()> +when the input is malformed UTF-8, malformations are allowed, and +C<utf8> warnings are off is now the Unicode REPLACEMENT CHARACTER +whenever the malformation is such that no well-defined code point can be +computed. Previously the returned value was essentially garbage. The +only malformations that have well-defined values are a zero-length +string (0 is the return), and overlong UTF-8 sequences. + +=end original + +The returned code point from the function C<utf8n_to_uvuni()> +when the input is malformed UTF-8, malformations are allowed, and +C<utf8> warnings are off is now the Unicode REPLACEMENT CHARACTER +whenever the malformation is such that no well-defined code point can be +computed. Previously the returned value was essentially garbage. The +only malformations that have well-defined values are a zero-length +string (0 is the return), and overlong UTF-8 sequences. +(TBT) + +=item * + +=begin original + Padlists are now marked C<AvREAL>; i.e., reference-counted. They have always been reference-counted, but were not marked real, because F<pad.c> did its own clean-up, instead of using the usual clean-up code in F<sv.c>. @@ -4382,9 +4999,9 @@ Some core bugs affecting L<Hash::Util> have been fixed: locking a hash element that is a glob copy no longer causes subsequent assignment to it to -corrupt the glob, and unlocking a hash element that holds a copy-on-write -scalar no longer causes modifications to that scalar to modify other -scalars that were sharing the same string buffer. +corrupt the glob (5.14.2), and unlocking a hash element that holds a +copy-on-write scalar no longer causes modifications to that scalar to +modify other scalars that were sharing the same string buffer. =back @@ -4484,7 +5101,7 @@ C<utf8::decode> had a nasty bug that would modify copy-on-write scalars' string buffers in place (i.e., skipping the copy). This could result in -hashes having two elements with the same key [perl #91834]. +hashes having two elements with the same key [perl #91834]. (5.14.2) =item * @@ -4496,12 +5113,12 @@ Elements of restricted hashes (see the L<fields> pragma) containing copy-on-write values couldn't be deleted, nor could such hashes be cleared -(C<%hash = ()>). +(C<%hash = ()>). (5.14.2) =item * Localising a tied variable used to make it read-only if it contained a -copy-on-write string. +copy-on-write string. (5.14.2) =item * @@ -5100,7 +5717,7 @@ =item * -A regression introduced in 5.13.6 has +A regression introduced in 5.14.0 has been 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 @@ -5178,7 +5795,7 @@ A panic involving the combination of the regular expression modifiers C</aa> and the C<\b> escape sequence introduced in 5.14.0 has been -fixed [perl #95964]. +fixed [perl #95964]. (5.14.2) =item * @@ -5700,6 +6317,11 @@ =item * +C<study> is now a no-op, presumably fixing all outstanding bugs related to +study causing regex matches to behave incorrectly! + +=item * + When one writes C<open foo || die>, which used to work in Perl 4, a "Precedence problem" warning is produced. This warning used erroneously to apply to fully-qualified bareword handle names not followed by C<||>. This @@ -5835,7 +6457,7 @@ Perl 5.10.0 introduced some faulty logic that made "U*" in the middle of a pack template equivalent to "U0" if the input string was empty. This has -been fixed [perl #90160]. +been fixed [perl #90160]. (5.14.2) =item * @@ -5899,7 +6521,7 @@ C<caller> no longer leaks memory when called from the DB package if C<@DB::args> was assigned to after the first call to C<caller>. L<Carp> -was triggering this bug [perl #97010]. +was triggering this bug [perl #97010]. (5.14.2) =item * @@ -6009,9 +6631,57 @@ =head1 Acknowledgements -XXX Generate this with: +Perl 5.16.0 represents approximately 12 months of development since Perl +5.14.0 and contains approximately 590,000 lines of changes across 2,500 +files from 137 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.14.1: + +Aaron Crane, Abhijit Menon-Sen, Abigail, Alan Haggai Alavi, Alberto +Sim探es, Alexandr Ciornii, Andreas K旦nig, Andy Dougherty, Aristotle +Pagaltzis, Bo Johansson, Bo Lindbergh, brian d foy, Brian Fraser, Brian +Greenfield, Carl Hayter, Chas. Owens, Chia-liang Kao, Chip Salzenberg, +Chris 'BinGOs' Williams, Christian Hansen, Christopher J. Madsen, +chromatic, Claes Jacobsson, Claudio Ramirez, Craig A. Berry, Damian +Conway, Daniel Kahn Gillmor, Darin McBride, Dave Rolsky, David Cantrell, +David Golden, David Leadbeater, David Mitchell, Dee Newcum, Dennis +Kaarsemaker, Dominic Hargreaves, Douglas Christopher Wilson, Eric Brine, +Father Chrysostomos, Florian Ragwitz, Frederic Briere, George Greer, +Gerard Goossen, Gisle Aas, H.Merijn Brand, Hojung Youn, Ian Goodacre, +James E Keenan, Jan Dubois, Jerry D. Hedden, Jesse Luehrs, Jesse +Vincent, Jilles Tjoelker, Jim Cromie, Jim Meyering, Joel Berger, Johan +Vromans, Johannes Plunien, John Hawkinson, John P. Linderman, John +Peacock, Joshua ben Jore, Juerd Waalboer, Karl Williamson, Karthik +Rajagopalan, Keith Thompson, Kevin J. Woolley, Kevin Ryde, Laurent +Dami, Leo Lapworth, Leon Brocard, Leon Timmermans, Louis Strous, Lukas +Mai, Marc Green, Marcel Gr端nauer, Mark A. Stratman, Mark Dootson, Mark +Jason Dominus, Martin Hasch, Matthew Horsfall, Max Maischein, Michael G +Schwern, Michael Witten, Mike Sheldrake, Moritz Lenz, Nicholas Clark, +Niko Tyni, Nuno Carvalho, Pau Amma, Paul Evans, Paul Green, Paul +Johnson, Perlover, Peter John Acklam, Peter Martini, Peter Scott, Phil +Monsen, Pino Toscano, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, +Ricardo Signes, Robin Barker, Rodolfo Carvalho, Salvador Fandi単o, Sam +Kimbrel, Samuel Thibault, Shawn M Moore, Shigeya Suzuki, Shlomi Fish, +Sisyphus, Slaven Rezic, Spiros Denaxas, Steffen M端ller, Steffen +Schwigon, Stephen Bennett, Stephen Oberholtzer, Stevan Little, Steve +Hay, Steve Peters, Thomas Sibley, Thorsten Glaser, Timothe Litt, Todd +Rinaldo, Tom Christiansen, Tom Hukins, Tony Cook, Vadim Konovalov, +Vincent Pit, Vladimir Timofeev, Walt Mankowski, Yves Orton, Zefram, +Zsbán Ambrus, Ã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. - perl Porting/acknowledgements.pl v5.14.0..HEAD +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