Remove Mac OS classic instructions from perlrun
[p5sagit/p5-mst-13.2.git] / pod / perl5110delta.pod
index 3db6f2e..838dd40 100644 (file)
@@ -1,3 +1,5 @@
+=encoding utf8
+
 =head1 NAME
 
 perl5110delta - what is new for perl v5.11.0
@@ -9,6 +11,61 @@ the 5.11.0 development release.
 
 =head1 Incompatible Changes
 
+=head2 Unicode interpretation of \w, \d, \s, and the POSIX character classes redefined.
+
+Previous versions of Perl tried to map POSIX style character class definitions onto
+Unicode property names so that patterns would "dwim" when matches were made against latin-1 or
+unicode strings. This proved to be a mistake, breaking character class negation, causing
+forward compatibility problems (as Unicode keeps updating their property definitions and adding
+new characters), and other problems.
+
+Therefore we have now defined a new set of artificial "unicode" property names which will be
+used to do unicode matching of patterns using POSIX style character classes and perl short-form
+escape character classes like \w and \d.
+
+The key change here is that \d will no longer match every digit in the unicode standard
+(there are thousands) nor will \w match every word character in the standard, instead they
+will match precisely their POSIX or Perl definition.
+
+Those needing to match based on Unicode properties can continue to do so by using the \p{} syntax
+to match whichever property they like, including the new artificial definitions.
+
+B<NOTE:> This is a backwards incompatible no-warning change in behaviour. If you are upgrading
+and you process large volumes of text look for POSIX and Perl style character classes and
+change them to the relevent property name (by removing the word 'Posix' from the current name).
+
+The following table maps the POSIX character class names, the escapes and the old and new
+Unicode property mappings:
+
+    POSIX  Esc  Class               New-Property  ! Old-Property
+    ----------------------------------------------+-------------
+    alnum       [0-9A-Za-z]         IsPosixAlnum  ! IsAlnum
+    alpha       [A-Za-z]            IsPosixAlpha  ! IsAlpha
+    ascii       [\000-\177]         IsASCII       = IsASCII
+    blank       [\011 ]             IsPosixBlank  !
+    cntrl       [\0-\37\177]        IsPosixCntrl  ! IsCntrl
+    digit   \d  [0-9]               IsPosixDigit  ! IsDigit
+    graph       [!-~]               IsPosixGraph  ! IsGraph
+    lower       [a-z]               IsPosixLower  ! IsLower
+    print       [ -~]               IsPosixPrint  ! IsPrint
+    punct       [!-/:-@[-`{-~]      IsPosixPunct  ! IsPunct
+    space       [\11-\15 ]          IsPosixSpace  ! IsSpace
+            \s  [\11\12\14\15 ]     IsPerlSpace   ! IsSpacePerl
+    upper       [A-Z]               IsPosixUpper  ! IsUpper
+    word    \w  [0-9A-Z_a-z]        IsPerlWord    ! IsWord
+    xdigit      [0-9A-Fa-f]         IsXDigit      = IsXDigit
+
+If you wish to build perl with the old mapping you may do so by setting
+
+       #define PERL_LEGACY_UNICODE_CHARCLASS_MAPPINGS 1
+
+in regcomp.h, and then setting
+
+       PERL_TEST_LEGACY_POSIX_CC
+
+to true your enviornment when testing.
+
+
 =head2 In @INC, move ARCHLIB and PRIVLIB after the current version's site_perl and vendor_perl.
 
 =head2 Switch statement changes
@@ -276,7 +333,7 @@ Some support for DTrace has been added. See "DTrace support" in F<INSTALL>.
 =head2 Support for C<configure_requires> in CPAN module metadata
 
 Both C<CPAN> and C<CPANPLUS> now support the C<configure_requires> keyword
-in the C<META.yml> metadata file included in most recent CPAN distributions.
+in the F<META.yml> metadata file included in most recent CPAN distributions.
 This allows distribution authors to specify configuration prerequisites that
 must be installed before running F<Makefile.PL> or F<Build.PL>.
 
@@ -835,7 +892,10 @@ Upgraded from 1.11 to 1.17.
 
 =item C<Socket>
 
-Upgraded from 1.80 to 1.82.
+Upgraded from 1.80 to 1.84.
+
+As of 1.84, C<Socket> can now handle abstract namespace sockets on Linux.
+(see unix(7)).
 
 =item C<Storable>
 
@@ -991,7 +1051,7 @@ subroutine stubs.
 
 =item F<perlbug>
 
-F<perlbug> now uses %Module::CoreList::bug_tracker to print out upstream bug
+F<perlbug> now uses C<%Module::CoreList::bug_tracker> to print out upstream bug
 tracker URLs.
 
 Where the user names a module that their bug report is about, and we know the
@@ -1055,18 +1115,12 @@ generated at build time, rather than being shipped as part of the release.
 
 =head2 Documented that when() treats specially most of the filetest operators
 
-=head2 Documented that DESTROY is subject to AUTOLOAD, and the related optimisations.
-
 =head2 Documented when as a syntax modifier
 
 =head2 Eliminated "Old Perl threads tutorial", which describes 5005 threads.
 
 pod/perlthrtut.pod is the same material reworked for ithreads.
 
-=head2 Removed a link to the attrs pragma, which has now been removed.
-
-=head2 update PERL_MEM_LOG in perlhack.pod
-
 =head2 Correct previous documentation: v-strings are not deprecated
 
 With version objects, we need them to use MODULE VERSION syntax.  This
@@ -1176,6 +1230,10 @@ On Cygwin we now strip the last number from the DLL. This has been the
 behaviour in the cygwin.com build for years. The hints files have been
 updated.
 
+=item DomainOS
+
+Support for Apollo DomainOS was removed in Perl 5.11.0
+
 =item FreeBSD
 
 The hints files now identify the correct threading libraries on FreeBSD 7
@@ -1191,6 +1249,10 @@ C<cc -E -> unfortunately goes into K&R mode, but C<cc -E file.c> doesn't.
 Patches from the Haiku maintainers have been merged in. Perl should now
 build on Haiku.
 
+=item MiNT
+
+Support for Atari MiNT was removed in Perl 5.11.0.
+
 =item MirOS BSD
 
 Perl should now build on MirOS BSD.
@@ -1236,9 +1298,9 @@ C<File::Copy> now detects Unix compatibility mode on VMS.
 
 =over 4
 
-=item 
+=item *
 
-=item C<-I> on shebang line now adds directories in front of @INC.
+C<-I> on shebang line now adds directories in front of @INC.
 as documented, and as does C<-I> when specified on the command-line.
 (Renée Bäcker)
 
@@ -1281,7 +1343,7 @@ arguments [RT #59998].
 
 =item *
 
-The C<-i.suffix> command-line switch now recreates the file using
+The C<-i>I<.suffix> command-line switch now recreates the file using
 restricted permissions, before changing its mode to match the original
 file. This eliminates a potential race condition [RT #60904].
 
@@ -1292,17 +1354,17 @@ On some UNIX systems, the value in C<$?> would not have the top bit set
 
 =item *
 
-Under some circumstances, $^R could incorrectly become undefined
+Under some circumstances, C<$^R> could incorrectly become undefined
 [RT #57042].
 
 =item *
 
-(XS) In various hash functions, passing a pre-computed hash to when the
-key is UTF-8 might result in an incorrect lookup.
+In the XS API, various hash functions, when passed a pre-computed hash where
+the key is UTF-8, might result in an incorrect lookup.
 
 =item *
 
-(XS) Including F<XSUB.h> before F<perl.h> gave a compile-time error
+XS code including F<XSUB.h> before F<perl.h> gave a compile-time error
 [RT #57176].
 
 =item *
@@ -1922,12 +1984,8 @@ Explicitely point to $. when it causes an uninitialized warning for ranges in sc
 
 =head1 Acknowledgements
 
-Some of the work in this release was funded by a TPF grant.
-
-Nicholas Clark officially retired from maintenance pumpking duty at the
-end of 2008; however in reality he has put much effort in since then to
-help get 5.10.1 into a fit state to be released, including writing a
-considerable chunk of this perldelta.
+Some of the work in this release was funded by a TPF grant funded by
+Dijkmat BV, The Netherlands.
 
 Steffen Mueller and David Golden in particular helped getting CPAN modules
 polished and synchronised with their in-core equivalents.
@@ -2287,3 +2345,6 @@ when creation of a temporary file in it fails
 =head2 Add a pluggable hook in op_free()
 
 
+
+
+