X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperl5111delta.pod;h=87fb9dfbe0289075a44f2ed272f04a64c42594ca;hb=4ff31b786b9f6148fc8ea695db081861576d06a2;hp=7e8dc8920e274f05334e5b9c615d15809b6a016c;hpb=8f3d5996a665cf70e12a836b95e184e9ab628251;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perl5111delta.pod b/pod/perl5111delta.pod index 7e8dc89..87fb9df 100644 --- a/pod/perl5111delta.pod +++ b/pod/perl5111delta.pod @@ -1,30 +1,24 @@ =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 - -XXX Notice - =head1 Incompatible Changes =over -=item The boolkeys op moved to the group of hash ops. This breaks binary compatibility. +=item * +The boolkeys op moved to the group of hash ops. This breaks binary compatibility. + +=item * -=item C was replaced with a macro that calls C +C<\s> C<\w> and C<\d> once again have the semantics they had in Perl 5.8.x. -C was not part of the public API, and did not have a C -shortcut macro defined without C<-DPERL_CORE>. Neither codesearch.google.com nor -CPAN::Unpack show any users outside the Perl core. =back @@ -32,133 +26,107 @@ CPAN::Unpack show any users outside the Perl core. =head2 Add C 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 and similar constructs. E.g. package Foo::Bar 1.23; # $Foo::Bar::VERSION == 1.23 - There are several advantages to this: - - * VERSION is parsed in *exactly* the same way as 'use NAME VERSION' - - * $VERSION is set at compile time - - * Eliminates '$VERSION = ...' and 'eval $VERSION' clutter - - * 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 = ...' +There are several advantages to this: - * 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 +=over - 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'. +C<$VERSION> is parsed in I the same way as C - 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. +C<$VERSION> is set at compile time - 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. +=item * +Eliminates C<$VERSION = ...> and C clutter -=head1 Modules and Pragmata - -=over 4 +=item * -=item Upgrade to Test-Simple-0.94 +As it requires VERSION to be a numeric literal or v-string +literal, it can be statically parsed by toolchain modules +without C the way MM-Eparse_version does for C<$VERSION = ...> -=item Upgrade to Storable-2.21 +=item * -=item Upgrade to Pod-Simple-3.08 +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 -=item Upgrade to Parse-CPAN-Meta-1.40 +It does not break old code with only C, but code that uses +C will need to be restricted to perl 5.11.X or newer +This is analogous to the change to C 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 Upgrade to ExtUtils-Manifest-1.57 +=back -=item Upgrade to ExtUtils-CBuilder-0.260301 +=head1 Modules and Pragmata -=item Upgrade to CGI.pm-3.48 +=head2 Updated Modules -=item Update CPANPLUS to CPAN version 0.89_02 +=over 4 -=item Upgrade to threads::shared 1.32 +=item * -=item Update ExtUtils::ParseXS to 2.21 +Upgrade to Test-Simple 0.94 -=item Upgrade File::Path to 2.08 (and add taint.t test) +=item * -=item Upgrade Module::CoreList to 2.20 +Upgrade to Storable 2.21 -=item Updated Object-Accessor to CPAN version 0.36 +=item * -=back +Upgrade to Pod-Simple 3.08 -=head2 New Modules and Pragmata +=item * -=over 4 +Upgrade to Parse-CPAN-Meta 1.40 -=item C +=item * -XXX +Upgrade to ExtUtils-Manifest 1.57 -=back +=item * -=head2 Pragmata Changes +Upgrade to ExtUtils-CBuilder 0.260301 -=over 4 +=item * -=item C +Upgrade to CGI.pm-3.48 -XXX +=item * -=back +Upgrade CPANPLUS to CPAN version 0.89_02 -=head2 Updated Modules +=item * -=over 4 +Upgrade to threads::shared 1.32 -=item C +=item * -XXX +Upgrade ExtUtils::ParseXS to 2.21 -=back +=item * -=head1 Utility Changes +Upgrade File::Path to 2.08 (and add taint.t test) -XXX Changes to installed programs such as F and F go -here. Most of these are built within the directories F and F. +=item * -=over 4 +Upgrade Module::CoreList to 2.20 -=item F +=item * -XXX +Updated Object::Accessor to0.36 =back @@ -166,7 +134,10 @@ XXX =over 4 -=item L extends the "Social contract about contributed modules" into the beginnings of a document on Perl porting policies. +=item * + +L extends the "Social contract about contributed modules" into +the beginnings of a document on Perl porting policies. =back @@ -180,31 +151,13 @@ XXX =head1 Performance Enhancements -XXX Changes which enhance performance without changing behaviour go here. There -may well be none in a stable release. - =over 4 =item C has been optimized to be faster than C -XXX - =back -=head1 Installation and Configuration Improvements - -XXX Changes to F, F, F, and analogous tools -go here. - -=head2 Configuration improvements - -XXX - -=head2 Compilation improvements - -XXX - -=head2 Platform Specific Changes +=head1 Platform Specific Notes =over 4 @@ -212,10 +165,14 @@ XXX =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 @@ -224,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 @@ -232,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 @@ -241,40 +206,56 @@ on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). =head1 Selected Bug Fixes -XXX Important bug fixes in the core language are summarised here. -Bug fixes in files in F and F are best summarised in -L. - =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, C or C is used without an argument -=item C now fails properly if called without an argument and when no previous file was read +=item * + +C now fails properly if called without an argument and when no previous file was read C now returns C<-1>, and sets errno to C, thus restoring the 5.8.x behaviour -=item overload no longer implicitly unsets fallback on repeated 'use overload' lines +=item * + +overload no longer implicitly unsets fallback on repeated 'use overload' lines + +=item * + +POSIX::strftime() can now handle Unicode characters in the format string. + +=item * + +The Windows select() implementation now supports all empty Cs more correctly. =back =head1 New or Changed Diagnostics -XXX New or changed warnings emitted by the core's C code go here. - =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 * -=item "Unicode character is illegal" has been rephrased to be more accurate +Three fatal pack/unpack error messages have been normalized to "panic: %s" + +=item * + +"Unicode character is illegal" has been rephrased to be more accurate It now reads C 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 For information about which language features @@ -283,90 +264,69 @@ see L =back -=head1 Changed Internals - -XXX Changes which affect the interface available to C code go here. +=head1 Testing =over 4 =item * -XXX - -=back - -=head1 Testing +Significant cleanups to core tests to ensure that language and +interpreter features are not used before they're tested. -XXX Changes which create B files in F go here. Changes to -existing files in F aren't worth summarising, although the bugs that -they represent may be. +=item * -=over 4 +C now runs a number of important pre-commit checks which might be of use to anyone working on the Perl core. -=item Significant cleanups to core tests to ensure that language and -interpreter features are not used before they're tested. +=item * -=item F automatically checks the well-formedness of +F automatically checks the well-formedness of POD found in all .pl, .pm and .pod files in the F, other than in dual-lifed modules which are primarily maintained outside the Perl core. -=item F now tests that all files listed in MANIFEST are present. - -=back - -=head1 Known Problems - -XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any -tests that had to be Ced for the release would be noted here, unless -they were specific to a particular platform (see below). - -This is a list of some significant unfixed bugs, which are regressions -from either 5.10.1 or 5.11.0. - -=over 4 - =item * -XXX +F now tests that all files listed in MANIFEST are present. =back -=head1 Deprecations - -XXX Add any new known deprecations here. - -The following items are now deprecated. +=head1 Known Problems =over 4 -=item * - -XXX - -=back - -=head1 Platform Specific Notes +=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 Errata +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 +=back -k=item The Perl 5.11.0 release notes incorrectly described 'delete local' +=head1 Errata for 5.11.0 +=over -=head1 Obituary +=item The Perl 5.11.0 release notes incorrectly described 'delete local' -XXX If any significant core contributor has died, we've added a short obituary -here. +=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 @@ -403,41 +363,3 @@ The F file for general stuff. The F and F files for copyright information. =cut - -This is all changes through 704e1b1e - - - -commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1 -Author: Nicholas Clark -Date: Thu Oct 15 23:37:41 2009 +0100 - - POSIX::strftime() should be able to handle Unicode characters in the format string. - -commit e4d771f5006ebd70b76422437cce60e9ac40c830 -Author: Jan Dubois -Date: Tue Oct 13 16:46:58 2009 -0700 - - The winsock select() implementation doesn't support all empty 'fd_set's. - - The code already contained a workaround for the special case - - select(undef, undef, undef, $sleep); - - but didn't handle the case when actual bit vectors were passed in - that didn't have any bits set. - - Fixes http://rt.perl.org/rt3/Public/Bug/Display.html?id=54544 - - - - - - Add perltodo: write an XS cookbook - - Explain using git send-email for patches - - - - =TODO FOR RELENG GUIDE Make Module::Corelist recognise $] as a version number on 5.11.0 -