perlunifaq, uniintro: fix for 80 col display
[p5sagit/p5-mst-13.2.git] / pod / perl5113delta.pod
index d3016c0..5c4e196 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perldelta - what is new for perl v5.11.3
+perl5113delta - what is new for perl v5.11.3
 
 =head1 DESCRIPTION
 
@@ -13,22 +13,17 @@ the L<perl5112delta>, which describes differences between 5.11.1 and
 
 =head1 Incompatible Changes
 
-=over
-
-=item Filehandles are blessed directly into C<IO::Handle::>, as C<FileHandle> is merely a wrapper around C<IO::Handle>.
+=head2 Filehandles are blessed directly into C<IO::Handle>, as C<FileHandle> is merely a wrapper around C<IO::Handle>.
 
-The previous behaviour was to bless Filehandles into L<FileHandle/>
+The previous behaviour was to bless Filehandles into L<FileHandle>
 (an empty proxy class) if it was loaded into memory and otherwise
-to bless them into C<IO::Handle::>.
-
-
-=back
+to bless them into C<IO::Handle>.
 
 =head1 Core Enhancements
 
 =head2 Unicode version
 
-Perl is shipped with the latest Unicode version, 5.2, October 2009.  See
+Perl is shipped with the latest Unicode version, 5.2, dated October 2009.  See
 L<http://www.unicode.org/versions/Unicode5.2.0> for details about this release
 of Unicode.  See L<perlunicode> for instructions on installing and using
 older versions of Unicode.
@@ -55,23 +50,48 @@ now accepted.
 
 C<qr/\X/>, which matches a Unicode logical character, has been expanded to work
 better with various Asian languages.  It now is defined as an C<extended
-grapheme cluster>.  (See L<http://www.unicode.org/reports/tr29/>).  One change
-due to this is that C<\X> will match the whole sequence C<S<CR LF>>.  Another
-change is that C<\X> will match an isolated mark.  Marks generally come after a
-base character, but it is possible in Unicode to have them in isolation, and
-C<\X> will now handle that case.  Otherwise, this change should be transparent
-for non-affected languages.
+grapheme cluster>.  (See L<http://www.unicode.org/reports/tr29/>).
+Anything matched previously that made sense will continue to be matched.  But
+in addition:
+
+=over
+
+=item *
+
+C<\X> will now not break apart a C<S<CR LF>> sequence.
+
+=item *
+
+C<\X> will now match a sequence including the C<ZWJ> and C<ZWNJ> characters.
+
+=item *
+
+C<\X> will now always match at least one character, including an initial mark.
+Marks generally come after a base character, but it is possible in Unicode to
+have them in isolation, and C<\X> will now handle that case, for example at the
+beginning of a line or after a C<ZWSP>.  And this is the part where C<\X>
+doesn't match the things that it used to that don't make sense.  Formerly, for
+example, you could have the nonsensical case of an accented LF.
+
+=item *
+
+C<\X> will now match a (Korean) Hangul syllable sequence, and the Thai and Lao
+exception cases.
+
+=back
+
+Otherwise, this change should be transparent for the non-affected languages.
 
 C<\p{...}> matches using the Canonical_Combining_Class property were
 completely broken in previous Perls.  This is now fixed.
 
-In previous Perls, the Unicode Decomposition_Type=Compat property and a
+In previous Perls, the Unicode C<Decomposition_Type=Compat> property and a
 Perl extension had the same name, which led to neither matching all the
 correct values (with more than 100 mistakes in one, and several thousand
 in the other).  The Perl extension has now been renamed to be
-Decomposition_Type=Noncanonical (short: dt=noncanon).  It has the same
+C<Decomposition_Type=Noncanonical> (short: C<dt=noncanon>).  It has the same
 meaning as was previously intended, namely the union of all the
-non-canonical Decomposition types, with Unicode Compat being just one of
+non-canonical Decomposition types, with Unicode C<Compat> being just one of
 those.
 
 C<\p{Uppercase}> and C<\p{Lowercase}> have been brought into line with the
@@ -88,25 +108,25 @@ similar, plus Bi-directional controls.
 
 C<\p{Alpha}> now matches the same characters as C<\p{Alphabetic}>.  The Perl
 definition included a number of things that aren't really alpha (all
-marks), while omitting many that were.  The Unicode definition is
-clearly better, so we are switching to it.  As a direct consequence, the
+marks), while omitting many that were.  As a direct consequence, the
 definitions of C<\p{Alnum}> and C<\p{Word}> which depend on Alpha also change.
 
 C<\p{Word}> also now doesn't match certain characters it wasn't supposed
 to, such as fractions.
 
-C<\p{Print}> no longer matches the line control characters: tab, lf, cr,
-ff, vt, and nel.  This brings it in line with the documentation.
+C<\p{Print}> no longer matches the line control characters: Tab, LF, CR,
+FF, VT, and NEL.  This brings it in line with the documentation.
 
-C<\p{Decomposition_Type=Canonical}> now includes the Hangul syllables
+C<\p{Decomposition_Type=Canonical}> now includes the Hangul syllables.
 
 The Numeric type property has been extended to include the Unihan
 characters.
 
-There is a new Perl extension, the 'Present_In', or simply 'In'
+There is a new Perl extension, the 'Present_In', or simply 'In',
 property.  This is an extension of the Unicode Age property, but
-C<\p{In=5.0}> matches any code point whose usage has been determined as of
-Unicode version 5.0.  The C<\p{Age=5.0}> only matches code points added in 5.0.
+C<\p{In=5.0}> matches any code point whose usage has been determined
+I<as of> Unicode version 5.0.  The C<\p{Age=5.0}> only matches code points
+added in I<precisely> version 5.0.
 
 A number of properties did not have the correct values for unassigned
 code points.  This is now fixed.  The affected properties are
@@ -114,15 +134,14 @@ Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type,
 Hangul_Syllable_Type, Numeric_Type, and Line_Break.
 
 The Default_Ignorable_Code_Point, ID_Continue, and ID_Start properties
-have been updated to their current definitions.
+have been updated to their current Unicode definitions.
 
 Certain properties that are supposed to be Unicode internal-only were
 erroneously exposed by previous Perls.  Use of these in regular
-expressions will now generate a deprecated warning message, if those
-warnings are enabled.  The properties are: Other_Alphabetic,
-Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend,
-Other_ID_Continue, Other_ID_Start, Other_Lowercase, Other_Math, and
-Other_Uppercase.
+expressions will now generate, if enabled, a deprecated warning message.
+The properties are: Other_Alphabetic, Other_Default_Ignorable_Code_Point,
+Other_Grapheme_Extend, Other_ID_Continue, Other_ID_Start, Other_Lowercase,
+Other_Math, and Other_Uppercase.
 
 An installation can now fairly easily change which Unicode properties
 Perl understands.  As mentioned above, certain properties are by default
@@ -130,18 +149,17 @@ turned off.  These include all the Unihan properties (which should be
 accessible via the CPAN module Unicode::Unihan) and any deprecated or
 Unicode internal-only property that Perl has never exposed.
 
-XXX what does "files in the To directory" mean? -- dagolden, 2009-12-20
-
-The files in the To directory are now more clearly marked as being
-stable, directly usable by applications.  New hash entries in them give
-the format of the normal entries which allows for easier machine
-parsing.  Perl can generate files in this directory for any property,
-though most are suppressed.  An installation can choose to change which
-get written.   Instructions are in L<perluniprops>.
+The generated files in the C<lib/unicore/To> directory are now more
+clearly marked as being stable, directly usable by applications.
+New hash entries in them give the format of the normal entries,
+which allows for easier machine parsing.  Perl can generate files
+in this directory for any property, though most are suppressed.  An
+installation can choose to change which get written.  Instructions
+are in L<perluniprops>.
 
 =head2 Regular Expressions
 
-U+0FFFF is now a legal character in regular expressions
+U+0FFFF is now a legal character in regular expressions.
 
 =head1 Modules and Pragmata
 
@@ -193,15 +211,21 @@ Upgraded from version 0.34 to 0.36.
 
 =item C<CPAN>
 
-Upgraded from version 1.94_51 to 1.94_53.  Includes better bzip2 support,
-improved FirstTime experience with auto-selection of CPAN mirrors, proper
-handling of modules removed from the Perl core, and an updated 'cpan'
-utility script
+Upgraded from version 1.94_51 to 1.94_5301, which is 1.94_53 on CPAN
+plus some local fixes for bleadperl.
+
+Includes better bzip2 support, improved FirstTime experience with
+auto-selection of CPAN mirrors, proper handling of modules removed from the
+Perl core, and an updated 'cpan' utility script
 
 =item C<CPANPLUS>
 
 Upgraded from version 0.89_09 to 0.90.
 
+=item C<Encode>
+
+Upgraded from version 2.38 to 2.39.
+
 =item C<ExtUtils::MakeMaker>
 
 Upgraded from version 6.55_02 to 6.56.  Adds new BUILD_REQUIRES key to
@@ -226,8 +250,8 @@ Upgraded from version 2.23 to 2.24.
 
 =item C<POSIX>
 
-Upgraded from version 1.18 to 1.19. Error codes for C<getaddrinfo()> and C<getnameinfo()> are now
-available.
+Upgraded from version 1.18 to 1.19. Error codes for C<getaddrinfo()> and
+C<getnameinfo()> are now available.
 
 =item C<Pod::Simple>
 
@@ -264,18 +288,6 @@ conditional loading of modules despite the implicit BEGIN block around C<use>.
 
 =head1 Installation and Configuration Improvements
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
-
-=head2 Configuration improvements
-
-XXX
-
-=head2 Compilation improvements
-
-    Make distclean work again
-XXX
-
 =head2 Testing improvements
 
 =over 4
@@ -294,7 +306,7 @@ XXX
 
 =item *
 
-Always add a manifest resource to C<perl.exe> to specify the <trustInfo>
+Always add a manifest resource to C<perl.exe> to specify the C<trustInfo>
 settings for Windows Vista and later.  Without this setting Windows
 will treat C<perl.exe> as a legacy application and apply various
 heuristics like redirecting access to protected file system areas
@@ -338,10 +350,6 @@ no in answer to the interactive question.
 
 =head1 Selected Bug Fixes
 
-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>.
-
 =over 4
 
 =item *
@@ -380,12 +388,13 @@ device and printers like "lpt1".
 
 =item *
 
-Fixed a regression caused by commit fafafbaf which caused a panic during parameter passing [perl #70171]
-
+Fixed a regression caused by commit fafafbaf which caused a panic during
+parameter passing [perl #70171]
 
 =item *
 
-On systems which in-place edits without backup files, -i'*' now works as the documentation says it does [perl #70802]
+On systems which in-place edits without backup files, -i'*' now works as
+the documentation says it does [perl #70802]
 
 =item *
 
@@ -412,7 +421,7 @@ Numerous bugfixes catch small issues caused by the recently-added Lexer API.
 
 =item *
 
-Smart match against C<@_> sometimes gave false negatives negatives. [perl #71078]
+Smart match against C<@_> sometimes gave false negatives. [perl #71078]
 
 =item *
 
@@ -420,7 +429,8 @@ C<$@> may now be assigned a read-only value (without error or busting the stack)
 
 =item *
 
-C<sort> called recursively from within an active comparison subroutine no longer causes a bus error if run multiple times. [perl #71076]
+C<sort> called recursively from within an active comparison subroutine no
+longer causes a bus error if run multiple times. [perl #71076]
 
 =back
 
@@ -432,11 +442,10 @@ C<sort> called recursively from within an active comparison subroutine no longer
 
 C<split> now warns when called in void context
 
-
 =item *
 
-C<printf>-style functions called with too few arguments will now issue the warning C<"Missing argument in %s"> [perl #71000] 
-
+C<printf>-style functions called with too few arguments will now issue the
+warning C<"Missing argument in %s"> [perl #71000]
 
 =back
 
@@ -492,8 +501,23 @@ problems in the implementation of scopes.
 
 =head1 Acknowledgements
 
-XXX The list of people to thank goes here.
-
+Perl 5.11.3 represents approximately one month of development since
+Perl 5.11.2 and contains 61407 lines of changes across 396 files
+from 40 authors and committers:
+
+Abigail, Alex Davies, Alexandr Ciornii, Andrew Rodland, Andy
+Dougherty, Bram, brian d foy, Chip Salzenberg, Chris Williams, Craig
+A. Berry, Daniel Frederick Crisman, David Golden, Dennis Kaarsemaker,
+Eric Brine, Father Chrysostomos, Gene Sullivan, Gerard Goossen, H.
+Merijn Brand, Hugo van der Sanden, Jan Dubois, Jerry D. Hedden,
+Jesse Vincent, Jim Cromie, Karl Williamson, Leon Brocard, Max
+Maischein, Michael Breen, Moritz Lenz, Nicholas Clark, Rafael
+Garcia-Suarez, Reini Urban, Ricardo Signes, Stepan Kasal, Steve
+Hay, Steve Peters, Tim Bunce, Tony Cook, Vincent Pit and Zefram.
+
+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.
 
 =head1 Reporting Bugs