This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Whitespace fixes to perlvar
[perl5.git] / pod / perl5111delta.pod
index 6eb6d9d..4717374 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perldelta - what is new for perl v5.11.1
+perl5111delta - what is new for perl v5.11.1
 
 =head1 DESCRIPTION
 
@@ -11,9 +11,13 @@ the 5.11.1 release.
 
 =over 
 
-=item The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
+=item 
 
-=item C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
+The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
+
+=item *
+
+C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
 
 
 =back
@@ -22,60 +26,49 @@ the 5.11.1 release.
 
 =head2 Add C<package NAME VERSION> syntax
 
-    This patch adds support for setting the $VERSION of a namespace
-    when the namespace is declared with 'package'.  It eliminates the
-    need for 'our $VERSION = ...' and similar constructs.  E.g.
+This new syntax allows a module author to set the $VERSION of a namespace
+when the namespace is declared with 'package'.  It eliminates the need
+for C<our $VERSION = ...> and similar constructs.  E.g.
 
       package Foo::Bar 1.23;
       # $Foo::Bar::VERSION == 1.23
 
-    There are several advantages to this:
+There are several advantages to this:
+
+=over 
+
+=item *
 
-      * VERSION is parsed in *exactly* the same way as 'use NAME VERSION'
+C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION>
 
-      * $VERSION is set at compile time
+=item *
 
-      * Eliminates '$VERSION = ...' and 'eval $VERSION' clutter
+C<$VERSION> is set at compile time
 
-      * As it requires VERSION to be a numeric literal or v-string
-        literal, it can be statically parsed by toolchain modules
-        without 'eval' the way MM->parse_version does for '$VERSION = ...'
+=item *
 
-      * Alpha versions with underscores do not need to be quoted; static
-        parsing will preserve the underscore, but during compilation, Perl
-        will remove underscores as it does for all numeric literals
+Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter
 
-    During development of this, there was discussion on #corehackers and
-    elsewhere that this should also allow other metadata to be set such as
-    "status" (stable/alpha) or "author/authority".  On reflection, those
-    metadata are not very well defined yet and likely should never be
-    encoded into Perl core parsing so they can be freely changed in the
-    future.  (They could perhaps be achieved via a comment on the same line
-    as 'package NAME VERSION'.)
+=item *
 
-    Version numbers, however, already have a very specific definition and
-    use defined in the core through 'use NAME VERSION'.  This patch merely
-    provides appropriate symmetry for setting $VERSION with the exact same
-    parsing and semantics as 'use'.
+As it requires VERSION to be a numeric literal or v-string
+literal, it can be statically parsed by toolchain modules
+without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...>
 
-    It does not break old code with only 'package NAME', but code that
-    uses 'package NAME VERSION' will need to be restricted to perl 5.11.X.
-    This is analogous to the change to open() from two-args to three-args.
-    Users requiring the latest Perl will benefit, and perhaps N years from
-    now it will become standard practice when Perl 5.12 is targeted the
-    way that 5.6 is today.
+=item * 
 
-    The patch does not prevent 'package NAME VERSION' from being used
-    multiple times for the same package with different version numbers, but
-    nothing prevents $VERSION from being modified arbitrarily at runtime,
-    either, so I see no urgen reason to add limitations or warnings so
-    long as Perl uses a global $VERSION variable for package version
-    numbers.
+Alpha versions with underscores do not need to be quoted; static
+parsing will preserve the underscore, but during compilation, Perl
+will remove underscores as it does for all numeric literals
 
-    I am posting this patch to the p5p list for discussion and review.  If
-    there seems to be general assent (or lack of dissent), I will go ahead
-    and commit the patch to blead.
+It does not break old code with only C<package NAME>, but code that uses
+C<package NAME VERSION> will need to be restricted to perl 5.11.X or newer
+This is analogous to the change to C<open> from two-args to three-args.
+Users requiring the latest Perl will benefit, and perhaps N years from
+now it will become standard practice when Perl 5.12 is targeted the way
+that 5.6 is today.
 
+=back
 
 =head1 Modules and Pragmata
 
@@ -83,31 +76,57 @@ the 5.11.1 release.
 
 =over 4 
 
-=item Upgrade to Test-Simple-0.94
+=item *
+
+Upgrade to Test-Simple 0.94
+
+=item *
+
+Upgrade to Storable 2.21
+
+=item *
+
+Upgrade to Pod-Simple 3.08
+
+=item *
 
-=item Upgrade to Storable-2.21
+Upgrade to Parse-CPAN-Meta 1.40
 
-=item Upgrade to Pod-Simple-3.08
+=item *
 
-=item Upgrade to Parse-CPAN-Meta-1.40
+Upgrade to ExtUtils-Manifest 1.57
 
-=item Upgrade to ExtUtils-Manifest-1.57
+=item *
 
-=item Upgrade to ExtUtils-CBuilder-0.260301
+Upgrade to ExtUtils-CBuilder 0.260301
 
-=item Upgrade to CGI.pm-3.48
+=item *
 
-=item Update CPANPLUS to CPAN version 0.89_02
+Upgrade to CGI.pm-3.48
 
-=item Upgrade to threads::shared 1.32
+=item *
 
-=item Update ExtUtils::ParseXS to 2.21
+Upgrade CPANPLUS to CPAN version 0.89_02
 
-=item Upgrade File::Path to 2.08 (and add taint.t test)
+=item *
 
-=item Upgrade Module::CoreList to 2.20
+Upgrade to threads::shared 1.32
 
-=item Updated Object-Accessor to CPAN version 0.36
+=item *
+
+Upgrade ExtUtils::ParseXS to 2.21
+
+=item *
+
+Upgrade File::Path to 2.08 (and add taint.t test)
+
+=item *
+
+Upgrade Module::CoreList to 2.20
+
+=item *
+
+Updated Object::Accessor to0.36
 
 =back
 
@@ -115,7 +134,10 @@ the 5.11.1 release.
 
 =over 4
 
-=item L<pod/perlpolicy.pod> extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies.
+=item *
+
+L<perlpolicy> extends the "Social contract about contributed modules" into
+the beginnings of a document on Perl porting policies.
 
 =back
 
@@ -135,12 +157,7 @@ the 5.11.1 release.
 
 =back
 
-=head1 Installation and Configuration Improvements
-
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
-
-=head2 Platform Specific Changes
+=head1 Platform Specific Notes
 
 =over 4
 
@@ -148,10 +165,14 @@ go here.
 
 =over 4
 
-=item Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
+=item *
+
+Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
 as it's still buggy.
 
-=item Correct infelicities in the regexp used to identify buggy locales
+=item *
+
+Correct infelicities in the regexp used to identify buggy locales
 on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
 
 =back
@@ -160,7 +181,9 @@ on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
 
 =over 4
 
-=item Fix thread library selection [perl #69686]
+=item *
+
+Fix thread library selection [perl #69686]
 
 =back
 
@@ -168,7 +191,13 @@ on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
 
 =over 4
 
-=item Initial support for mingw64 is now available
+=item *
+
+Initial support for mingw64 is now available
+
+=item *
+
+Various bits of Perl's build infrastructure are no longer converted to win32 line endings at release time. If this hurts you, please speak up.
 
 =back
 
@@ -179,18 +208,28 @@ on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
 
 =over 4
 
-=item Perl now properly returns a syntax error instead of segfaulting
+=item *
+
+Perl now properly returns a syntax error instead of segfaulting
 if C<each>, C<keys> or C<values> is used without an argument
 
-=item C<tell()> now fails properly if called without an argument and when no previous file was read
+=item *
+
+C<tell()> now fails properly if called without an argument and when no previous file was read
 
 C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
 
-=item overload no longer implicitly unsets fallback on repeated 'use overload' lines
+=item *
 
-=item POSIX::strftime() can now handle Unicode characters in the format string.
+overload no longer implicitly unsets fallback on repeated 'use overload' lines
 
-=item The Windows select() implementation now supports all empty C<fd_set>s more correctly.
+=item *
+
+POSIX::strftime() can now handle Unicode characters in the format string.
+
+=item *
+
+The Windows select() implementation now supports all empty C<fd_set>s more correctly.
 
 =back
 
@@ -199,21 +238,29 @@ C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.
 =over 4
 
 
-=item The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
+=item *
+
+The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
+
+=item *
+
+Three fatal pack/unpack error messages have been normalized to "panic: %s"
 
-=item Three fatal pack/unpack error messages have been normalized to "panic: %s"
+=item *
 
-=item "Unicode character is illegal" has been rephrased to be more accurate
+"Unicode character is illegal" has been rephrased to be more accurate
 
 It now reads C<Unicode non-character is illegal in interchange> and the
 perldiag documentation has been expanded a bit.
 
-=item Perl now defaults to issuing a warning if a deprecated language feature is used.
+=item *
+
+Perl now defaults to issuing a warning if a deprecated language feature is used.
 
 To disable this feature in a given lexical scope, you should use C<no
 warnings 'deprecated';> For information about which language features
 are deprecated and explanations of various deprecation warnings, please
-see L<perldiag.pod>
+see L<perldiag>
 
 =back
 
@@ -221,14 +268,24 @@ see L<perldiag.pod>
 
 =over 4
 
-=item Significant cleanups to core tests to ensure that language and
+=item *
+
+Significant cleanups to core tests to ensure that language and
 interpreter features are not used before they're tested.
 
-=item F<t/porting/podcheck.t> automatically checks the well-formedness of
+=item *
+
+C<make test_porting> now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core.
+
+=item *
+
+F<t/porting/podcheck.t> automatically checks the well-formedness of
 POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in
 dual-lifed modules which are primarily maintained outside the Perl core.
 
-=item F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
+=item *
+
+F<t/porting/manifest.t> now tests that all files listed in MANIFEST are present.
 
 =back
 
@@ -247,7 +304,7 @@ With luck, that'll be sorted out for 5.11.2
 
 =back
 
-=head1 Errata
+=head1 Errata for 5.11.0
 
 =over
 
@@ -257,8 +314,19 @@ With luck, that'll be sorted out for 5.11.2
 
 =head1 Acknowledgements
 
-XXX The list of people to thank goes here.
+Perl 5.11.1 represents approximately 3 weeks development since Perl 5.11.0
+contains 22,000 lines of changes across 396 files from 26 authors and committers:
 
+Abigail, Alex Vandiver, brian d foy, Chris Williams, Craig A. Berry,
+David Fifield, David Golden, demerphq, Eric Brine, Geoffrey T. Dairiki,
+George Greer, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent,
+Josh ben Jore, Max Maischein, Nicholas Clark, Rafael Garcia-Suarez,
+Simon Schubert, Sisyphus, Smylers, Steve Hay, Steve Peters, Vincent Pit
+and Yves Orton.
+
+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
 
@@ -295,8 +363,3 @@ The F<README> file for general stuff.
 The F<Artistic> and F<Copying> files for copyright information.
 
 =cut
-
-This is all changes through 6609e0408cfa30e0d5c739e4c818f8591c88c0bc
-
-
-