Upgrade to Encode 1.51, from Dan Kogai.
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index bb938cf..e8a8d30 100644 (file)
@@ -321,6 +321,13 @@ B<any subsequent file open>, is UTF-8.
 
 =back
 
+=head2 Restricted Hashes
+
+A restricted hash is restricted to a certain set of keys, no keys
+outside the set can be added.  Also individual keys can be restricted
+so that the key cannot be deleted and the value cannot be changed.
+No new syntax is involved: the Hash::Util module is the interface.
+
 =head2 Safe Signals
 
 Perl used to be fragile in that signals arriving at inopportune moments
@@ -349,7 +356,7 @@ and L<perlunicode> for details.
 =item *
 
 The Unicode Character Database coming with Perl has been upgraded
-to Unicode 3.1.1.  For more information, see http://www.unicode.org/.
+to Unicode 3.2.0.  For more information, see http://www.unicode.org/ .
 
 =item *
 
@@ -500,7 +507,7 @@ prototype(\[$@%&]) is now available to implicitly create references
 =item *
 
 A new command-line option, C<-t> is available.  It is the
-little brother of C<-T>: instead of dieing on taint violations,
+little brother of C<-T>: instead of dying on taint violations,
 lexical warnings are given.  B<This is only meant as a temporary
 debugging aid while securing the code of old legacy applications.
 This is not a substitute for -T.>
@@ -555,6 +562,17 @@ the <FILEHANDLE> angle bracket operator.
 The command-line options -s and -F are now recognized on the shebang
 (#!) line.
 
+=item *
+
+Use of the C</c> match modifier without an accompanying C</g> modifier
+elicits a new warning: C<Use of /c modifier is meaningless without /g>.
+
+Use of C</c> in substitutions, even with C</g>, elicits 
+C<Use of /c modifier is meaningless in s///>.  
+
+Use of C</g> with C<split> elicits C<Use of /g modifier is meaningless
+in split>.
+
 =back
 
 =head1 Modules and Pragmata
@@ -587,6 +605,12 @@ output is highly customisable.  See L<B::Concise>.
 
 =item *
 
+The new bignum, bigint, and bigrat pragmas implement transparent
+bignum support (using the Math::BigInt, Math::BigFloat, and
+Math::BigRat backends), by Tels.
+
+=item *
+
 C<Class::ISA> for reporting the search path for a class's ISA tree,
 by Sean Burke, has been added.  See L<Class::ISA>.
 
@@ -624,14 +648,15 @@ included since its further use is discouraged.
 
 =item *
 
-C<Encode>, by Nick Ing-Simmons and Dan Kogai, provides a mechanism to
-translate between different character encodings.  Support for Unicode,
-ISO-8859-1, and ASCII are compiled in to the module.  Several other
-encodings (like the rest of the ISO-8859, CP*/Win*, Mac, KOI8-R, three
-variants EBCDIC, Chinese, Japanese, and Korean encodings) are included
-and can be loaded at runtime.  (For space considerations, the largest
-Chinese encodings have been separated into their own CPAN module,
-Encode::HanExtra, which Encode will use if available).  See L<Encode>.
+C<Encode>, orginally by Nick Ing-Simmons and now maintained by Dan
+Kogai, provides a mechanism to translate between different character
+encodings.  Support for Unicode, ISO-8859-1, and ASCII are compiled in
+to the module.  Several other encodings (like the rest of the
+ISO-8859, CP*/Win*, Mac, KOI8-R, three variants EBCDIC, Chinese,
+Japanese, and Korean encodings) are included and can be loaded at
+runtime.  (For space considerations, the largest Chinese encodings
+have been separated into their own CPAN module, Encode::HanExtra,
+which Encode will use if available).  See L<Encode>.
 
 Any encoding supported by Encode module is also available to the
 ":encoding()" layer if PerlIO is used.
@@ -639,10 +664,7 @@ Any encoding supported by Encode module is also available to the
 =item *
 
 C<Hash::Util> is the interface to the new I<restricted hashes>
-feature.  A restricted hash is restricted to a certain set of keys,
-no keys outside the set can be added.  Also individual keys can be
-restricted so that the key cannot be deleted and the value cannot be
-changed.  (Implemented by Jeffrey Friedl, Nick Ing-Simmons, and
+feature.  (Implemented by Jeffrey Friedl, Nick Ing-Simmons, and
 Michael Schwern.)
 
 =item *
@@ -709,7 +731,8 @@ Ilya Zakharevich.
 
 L<libnet> is a collection of perl5 modules related to network
 programming, from Graham Barr.  See L<Net::FTP>, L<Net::NNTP>,
-L<Net::Ping>, L<Net::POP3>, L<Net::SMTP>, and L<Net::Time>.
+L<Net::Ping> (not part of libnet, but related), L<Net::POP3>,
+L<Net::SMTP>, and L<Net::Time>.
 
 Perl installation leaves libnet unconfigured, use F<libnetcfg> to configure.
 
@@ -720,10 +743,10 @@ sum(), min(), first(), and shuffle(), by Graham Barr.  See L<List::Util>.
 
 =item *
 
-C<Locale::Constants>, C<Locale::Country>, C<Locale::Currency>, and
-C<Locale::Language>, from Neil Bowers, have been added.  They provide the
-codes for various locale standards, such as "fr" for France, "usd" for
-US Dollar, and "jp" for Japanese.
+C<Locale::Constants>, C<Locale::Country>, C<Locale::Currency>
+C<Locale::Language>, and L<Locale::Script>, from Neil Bowers, have
+been added.  They provide the codes for various locale standards, such
+as "fr" for France, "usd" for US Dollar, and "ja" for Japanese.
 
     use Locale::Country;
 
@@ -742,6 +765,11 @@ Journal #13, republished here with kind permission.
 
 =item *
 
+C<Math::BigRat> for big rational numbers, to accompany Math::BigInt and
+Math::BigFloat, from Tels.
+
+=item *
+
 C<Memoize> can make your functions faster by trading space for time,
 from Mark-Jason Dominus.  See L<Memoize>.
 
@@ -1093,10 +1121,19 @@ Math::Complex handles inf, NaN etc., better.
 
 =item *
 
-Net::Ping has been muchly enhanced.  Multihoming is now supported.
-There is now "external" protocol which uses Net::Ping::External module
-which runs external ping(1) and parses the output.  A version of
-Net::Ping::External is available in CPAN.
+Net::Ping has been muchly enhanced: multihoming is now supported,
+Win32 functionality is better, there is now time measuring
+functionality (optionally high-resolution using Time::HiRes),
+and there is now "external" protocol which uses Net::Ping::External
+module which runs your external ping utility and parses the output.
+A version of Net::Ping::External is available in CPAN.
+
+Note that some of the Net::Ping tests are disabled when running
+under the Perl distribution since one cannot assume one or more
+of the following: enabled echo port at localhost, full Internet
+connectivity, or sympathetic firewalls.  You can set the environment
+variable PERL_TEST_Net_Ping to "1" (one) before running the Perl test
+suite to enable all the Net::Ping tests.
 
 =item *
 
@@ -1169,6 +1206,11 @@ F<emacs/e2ctags.pl> is now much faster.
 
 =item *
 
+C<enc2xs> is a tool for people adding their own encodings to the
+Encode module.
+
+=item *
+
 C<h2ph> now supports C trigraphs.
 
 =item *
@@ -1214,10 +1256,24 @@ for running any time after installing Perl.
 
 =item *
 
+C<piconv> is an implementation of the character conversion utility
+C<iconv>, demonstrating the new Encode module.
+
+=item *
+
 C<pod2html> now allows specifying a cache directory.
 
 =item *
 
+C<pod2html> now produces XHTML 1.0.
+
+=item *
+
+C<pod2html> now understands POD written using different line endings
+(PC-like CRLF versus UNIX-like LF versus MacClassic-like CR).
+
+=item *
+
 C<s2p> has been completely rewritten in Perl.  (It is in fact a full
 implementation of sed in Perl: you can use the sed functionality by
 using the C<psed> utility.)
@@ -1336,8 +1392,9 @@ confusion with the Perl POSIX module.
 
 =item *
 
-The documentation for the WinCE platform is called "CE", to avoid
-confusion with the perlwin32 documentation on 8.3-restricted filesystems.
+The documentation for the WinCE platform is called perlce (README.ce
+in the source code kit), to avoid confusion with the perlwin32
+documentation on 8.3-restricted filesystems.
 
 =back
 
@@ -1433,7 +1490,7 @@ exist, but they wouldn't have arrived in time to save quicksort.
 =item *
 
 Hashes now use Bob Jenkins "One-at-a-Time" hashing key algorithm
-(http://burtleburtle.net/bob/hash/doobs.html).  This algorithm is
+( http://burtleburtle.net/bob/hash/doobs.html ).  This algorithm is
 reasonably fast while producing a much better spread of values than
 the old hashing algorithm (originally by Chris Torek, later tweaked by
 Ilya Zakharevich).  Hash values output from the algorithm on a hash of
@@ -1656,7 +1713,7 @@ After a long pause, AmigaOS has been verified to be happy with Perl.
 
 =item *
 
-AtheOS (http://www.atheos.cx/) is a new platform.
+AtheOS ( http://www.atheos.cx/ ) is a new platform.
 
 =item *
 
@@ -2043,7 +2100,7 @@ UTF-16 (UCS-2) encoded Perl files should now be read correctly.
 
 =item *
 
-The character tables have been updated to Unicode 3.1.1.
+The character tables have been updated to Unicode 3.2.0.
 
 =item *
 
@@ -2545,7 +2602,7 @@ unfortunately, always possible.  The suidperl functionality is most
 probably going to be removed in Perl 5.10.  In any case, suidperl
 should only be used by security experts who know exactly what they are
 doing and why they are using suidperl instead of some other solution
-such as sudo (see http://www.courtesan.com/sudo/).
+such as sudo ( see http://www.courtesan.com/sudo/ ).
 
 =head1 New Tests
 
@@ -2609,6 +2666,13 @@ One cannot call Perl using the C<volume:> syntax, that is, C<perl -v>
 works, but for example C<bin:perl -v> doesn't.  The exact reason isn't
 known but the current suspect is the F<ixemul> library.
 
+=head2 FreeBSD Failing locale Test 117 For ISO8859-15 Locales
+
+The ISO8859-15 locales may fail the locale test 117 in FreeBSD.
+This is caused by the characters \xFF (y with diaeresis) and \xBE
+(Y with diaeresis) not behaving correctly when being matched
+case-insensitively.
+
 =head2 mod_perl 1.26 Doesn't Build With Threaded Perl
 
 Use mod_perl 1.27 or higher.
@@ -2630,6 +2694,10 @@ No known fix.
 
 =head2 Mac OS X
 
+Please remember to set your environment variable LC_ALL to "C"
+(setenv LC_ALL C) before running "make test" to avoid a lot of
+warnings about the broken locales of Mac OS X.
+
 The following tests are known to fail:
 
  Failed Test                 Stat Wstat Total Fail  Failed  List of Failed
@@ -2752,6 +2820,10 @@ as of 5.7.3:
  -------------------------------------------------------------------------
   ..\ext/threads/t/end.t                6    4  66.67%  3-6
 
+=head2 XML::Parser not working
+
+Use XML::Parser 2.31 or later.
+
 =head2 Localising a Tied Variable Leaks Memory
 
     use Tie::Hash;
@@ -2770,23 +2842,24 @@ z/OS has rather many test failures but the situation is actually
 better than it was in 5.6.0, it's just that so many new modules and
 tests have been added.
 
- Failed Test                 Stat Wstat Total Fail  Failed  List of Failed
- -------------------------------------------------------------------------
- ../ext/Data/Dumper/t/dumper.t              321    2   0.62%  311 314
+ Failed Test                   Stat Wstat Total Fail  Failed  List of Failed
+ -------------------------------------------------------------------------------
+ ../ext/Data/Dumper/t/dumper.t              339    8   2.36%  311 314 325 327
+                                                              331 333 337 339
  ../ext/IO/lib/IO/t/io_unix.t                 5    4  80.00%  2-5
+ ../ext/Storable/t/utf8hash.t    10  2560   148   10   6.76%  1 5 72 76 143-148
  ../lib/utf8.t                               94   13  13.83%  27 30-31 43 46 73
                                                               76 79 82 85 88 91
                                                               94
- ../lib/Benchmark.t               1   256   159    1   0.63%  75
- ../lib/ExtUtils/t/Constant.t                27   19  70.37%  5-23
+ ../lib/ExtUtils/t/Constant.t   121 30976    48   48 100.00%  1-48
  ../lib/ExtUtils/t/Embed.t                    9    9 100.00%  1-9
- op/pat.t                                   864    9   1.04%  242-243 665 776
+ op/pat.t                                   900    9   1.00%  242-243 665 776
                                                               785 832-834 845
  op/sprintf.t                               224    3   1.34%  98 100 136
  op/tr.t                                     97    5   5.15%  63 71-74
- uni/fold.t                                 767    8   1.04%  25-26 62 169 196
-                                                              648 697-698
- 60 tests and 384 subtests skipped.
+ run/fresh_perl.t                            94    3   3.19%  92-94
+ uni/fold.t                                 780    6   0.77%  61 169 196 661
+                                                              710-711
 
 =head2 Localising Tied Arrays and Hashes Is Broken
 
@@ -2853,8 +2926,8 @@ from the CPAN.
 
 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://bugs.perl.org.  There may also be
-information at http://www.perl.com/, the Perl Home Page.
+bug database at http://bugs.perl.org/  There may also be
+information at http://www.perl.com/ , the Perl Home Page.
 
 If you believe you have an unreported bug, please run the B<perlbug>
 program included with your release.  Be sure to trim your bug down