This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Unicode-Collate to CPAN version 0.67
[perl5.git] / pod / perl5111delta.pod
index 5ac27ac..4717374 100644 (file)
 =head1 NAME
 
-[ Any text flagged as XXX needs to be processed before release. ]
-
-perldelta - what is new for perl v5.11.1
+perl5111delta - what is new for perl v5.11.1
 
 =head1 DESCRIPTION
 
 This document describes differences between the 5.11.0 release and
 the 5.11.1 release.
 
-=head1 Notice
+=head1 Incompatible Changes
+
+=over 
 
-XXX Notice
+=item * 
 
-=head1 Incompatible Changes
+The boolkeys op moved to the group of hash ops. This breaks binary compatibility.
 
-XXX For a release on a stable branch, this section aspires to be:
+=item *
+
+C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x.
 
-    There are no changes intentionally incompatible with 5.XXX.XXX. If any
-    exist, they are bugs and reports are welcome.
 
+=back
 
 =head1 Core Enhancements
 
-XXX New core language features go here. Summarise user-visible core language
-enhancements. Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
+=head2 Add C<package NAME VERSION> syntax
 
-=head1 New Platforms
+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.
 
-XXX List any platforms that this version of perl compiles on, that previous
-versions did not. These will either be enabled by new files in the F<hints/>
-directories, or new subdirectories and F<README> files at the top level of the
-source tree.
+      package Foo::Bar 1.23;
+      # $Foo::Bar::VERSION == 1.23
 
-=head1 Modules and Pragmata
+There are several advantages to this:
 
-XXX All changes to installed files in F<ext/> and F<lib/> go here, in a list
-ordered by distribution name. Minimally it should be the module version,
-but it's more useful to the end user to give a paragraph's summary of the
-module's changes. In an ideal world, dual-life modules would have a
-F<Changes> file that could be cribbed.
+=over 
 
-=head2 New Modules and Pragmata
+=item *
 
-=over 4
+C<$VERSION> is parsed in I<exactly> the same way as C<use NAME VERSION>
 
-=item C<XXX>
+=item *
 
-XXX
+C<$VERSION> is set at compile time
 
-=back
+=item *
 
-=head2 Pragmata Changes
+Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter
 
-=over 4
+=item *
 
-=item C<XXX>
+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 = ...>
 
-XXX
+=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
+
+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
+
 =head2 Updated Modules
 
-=over 4
+=over 4 
 
-=item C<XXX>
+=item *
 
-XXX
+Upgrade to Test-Simple 0.94
 
-=back
+=item *
 
-=head1 Utility Changes
+Upgrade to Storable 2.21
 
-XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
-here. Most of these are built within the directories F<utils> and F<x2p>.
+=item *
 
-=over 4
+Upgrade to Pod-Simple 3.08
+
+=item *
+
+Upgrade to Parse-CPAN-Meta 1.40
+
+=item *
 
-=item F<XXX>
+Upgrade to ExtUtils-Manifest 1.57
 
-XXX
+=item *
+
+Upgrade to ExtUtils-CBuilder 0.260301
+
+=item *
+
+Upgrade to CGI.pm-3.48
+
+=item *
+
+Upgrade CPANPLUS to CPAN version 0.89_02
+
+=item *
+
+Upgrade to threads::shared 1.32
+
+=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
 
 =head1 New Documentation
 
-XXX Changes which create B<new> files in F<pod/> go here.
-
 =over 4
 
-=item L<XXX>
+=item *
 
-XXX
+L<perlpolicy> extends the "Social contract about contributed modules" into
+the beginnings of a document on Perl porting policies.
 
 =back
 
 =head1 Changes to Existing Documentation
 
-XXX Changes which significantly change existing files in F<pod/> go here.
-Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
+=over 
 
+=item Documentation for C<$1> in perlvar.pod clarified
 
-=head1 Performance Enhancements
+=back
 
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
+=head1 Performance Enhancements
 
 =over 4
 
-=item *
-
-XXX
+=item C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>
 
 =back
 
-=head1 Installation and Configuration Improvements
+=head1 Platform Specific Notes
+
+=over 4
+
+=item Darwin (Mac OS X)
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
+=over 4
 
-=head2 Configuration improvements
+=item *
 
-XXX
+Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6),
+as it's still buggy.
 
-=head2 Compilation improvements
+=item *
 
-XXX
+Correct infelicities in the regexp used to identify buggy locales
+on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively).
 
-=head2 Platform Specific Changes
+=back
+
+=item DragonFly BSD
 
 =over 4
 
-=item XXX-some-platform
+=item *
 
-XXX
+Fix thread library selection [perl #69686]
 
 =back
 
-=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>.
+=item Win32
 
 =over 4
 
 =item *
 
-XXX
+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
 
-=head1 New or Changed Diagnostics
 
-XXX New or changed warnings emitted by the core's C<C> code go here.
+=back
+
+=head1 Selected Bug Fixes
 
 =over 4
 
-=item C<XXX>
+=item *
 
-XXX
+Perl now properly returns a syntax error instead of segfaulting
+if C<each>, C<keys> or C<values> is used without an argument
 
-=back
+=item *
 
-=head1 Changed Internals
+C<tell()> now fails properly if called without an argument and when no previous file was read
 
-XXX Changes which affect the interface available to C<XS> code go here.
+C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring the 5.8.x behaviour
 
-=over 4
+=item *
+
+overload no longer implicitly unsets fallback on repeated 'use overload' lines
 
 =item *
 
-XXX
+POSIX::strftime() can now handle Unicode characters in the format string.
 
-=back
+=item *
 
-=head1 New Tests
+The Windows select() implementation now supports all empty C<fd_set>s more correctly.
 
-XXX Changes which create B<new> files in F<t/> go here. Changes to
-existing files in F<t/> aren't worth summarising, although the bugs that
-they represent may be.
+=back
+
+=head1 New or Changed Diagnostics
 
 =over 4
 
-=item F<XXX>
 
-XXX
+=item *
 
-=back
+The 'syntax' category was removed from 5 warnings that should only be in 'deprecated'.
 
-=head1 Known Problems
+=item *
 
-XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
-tests that had to be C<TODO>ed for the release would be noted here, unless
-they were specific to a particular platform (see below).
+Three fatal pack/unpack error messages have been normalized to "panic: %s"
 
-This is a list of some significant unfixed bugs, which are regressions
-from either 5.10.1 or 5.11.0.
+=item *
 
-=over 4
+"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 *
 
-XXX
+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>
 
 =back
 
-=head1 Deprecations
+=head1 Testing
 
-XXX Add any new known deprecations here.
+=over 4
 
-The following items are now deprecated.
+=item *
 
-=over 4
+Significant cleanups to core tests to ensure that language and
+interpreter features are not used before they're tested.
 
 =item *
 
-XXX
+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.
 
 =back
 
-=head1 Platform Specific Notes
+=head1 Known Problems
+
+=over 4
+
+=item Untriaged test crashes on Windows 2000
 
-XXX Any changes specific to a particular platform. VMS and Win32 are the usual
-stars here. It's probably best to group changes under the same section layout
-as the main perldelta
+Several porters have reported mysterious crashes when Perl's entire test suite is run after a build on certain Windows 2000 systems.  When run by hand, the individual tests reportedly work fine.
 
+=item Known test failures on VMS
 
-=head1 Obituary
+Perl 5.11.1 fails a small set of core and CPAN tests as of this release.
+With luck, that'll be sorted out for 5.11.2
 
-XXX If any significant core contributor has died, we've added a short obituary
-here.
+=back
+
+=head1 Errata for 5.11.0
+
+=over
+
+=item The Perl 5.11.0 release notes incorrectly described 'delete local'
+
+=back
 
 =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