This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PerlIO::Via: check arg is non-NULL before using it.
[perl5.git] / pod / perl5121delta.pod
index 8edc4f3..f1d8759 100644 (file)
@@ -2,7 +2,7 @@
 
 =head1 NAME
 
-perldelta - what is new for perl v5.12.1
+perl5121delta - what is new for perl v5.12.1
 
 =head1 DESCRIPTION
 
@@ -13,20 +13,15 @@ If you are upgrading from an earlier release such as 5.10.1, first read
 L<perl5120delta>, which describes differences between 5.10.1 and
 5.12.0.
 
-=head1 Notice
-
-XXX Any important notices here
-
 =head1 Incompatible Changes
 
-There are no changes intentionally incompatible with 5.12.0 If any
-exist, they are bugs and reports are welcome.
-
+There are no changes intentionally incompatible with 5.12.0. If any
+incompatibilities with 5.12.0 exist, they are bugs. Please report them.
 
 =head1 Core Enhancements
 
 Other than the bug fixes listed below, there should be no user-visible
-changes to the core langauge in this release.
+changes to the core language in this release.
 
 =head1 Modules and Pragmata
 
@@ -36,10 +31,10 @@ changes to the core langauge in this release.
 
 =item *
 
-We fixed exporting of C<version::is_strict> and C<version::is_lax>
+We fixed exporting of C<is_strict> and C<is_lax> from L<version>.
 
 These were being exported with a wrapper that treated them as method
-calls, which causes them to fail.  They are just functions, are
+calls, which caused them to fail.  They are just functions, are
 documented as such, and should never be subclassed, so this patch
 just exports them directly as functions without the wrapper.
 
@@ -59,6 +54,14 @@ introduced in the release we shipped with Perl 5.12.0.
 We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\>
 parsing.
 
+=item *
+
+We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure.
+
+=item *
+
+We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>.
+
 =back
 
 =head1 Changes to Existing Documentation
@@ -71,7 +74,8 @@ We added the new maintenance release policy to L<perlpolicy.pod>
 
 =item *
 
-We've clarified the multiple-angle-bracked construct in the spec for POD.
+We've clarified the multiple-angle-bracket construct in the spec for POD
+in L<perlpodspec>
 
 =item *
 
@@ -79,15 +83,15 @@ We added a missing explanation for a warning about C<:=> to L<perldiag.pod>
 
 =item *
 
-We removed a false claim that all text strings are Unicode strings in Perl.
+We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl.
 
 =item *
 
-GitHub's mirror is now at mirrors/perl, not github/perl
+We updated the Github mirror link in L<perlrepository> to mirrors/perl, not github/perl
 
 =item *
 
-We fixed a minor error in L<perl5114delta.pod>.
+We fixed a minor error in L<perl5114delta.pod>.
 
 =item * 
 
@@ -95,11 +99,11 @@ We replaced a mention of the now-obsolete L<Switch.pm> with F<given>/F<when>.
 
 =item *
 
-We improved documentation about F<$sitelibexp/sitecustomize.pl>.
+We improved documentation about F<$sitelibexp/sitecustomize.pl> in L<perlrun>.
 
 =item * 
 
-We corrected L<perlmodlib.pod> which had unintentionally ommitted a number of modules.
+We corrected L<perlmodlib.pod> which had unintentionally omitted a number of modules.
 
 =item * 
 
@@ -107,7 +111,7 @@ We updated the documentation for 'require' in L<perlfunc.pod> relating to puttin
 
 =item *
 
-We reinstated some erroneously-removed documentation about quotemeta.
+We reinstated some erroneously-removed documentation about quotemeta in L<perlfunc>.
 
 =item *
 
@@ -130,6 +134,17 @@ variable makes cluck generate stack backtraces.
 
 We fixed a number of typos in L<Pod::Functions>
 
+=item *
+
+We improved documentation of case-changing functions in L<perlfunc.pod>
+
+=item *
+
+We corrected L<perlgpl.pod> to contain the correct version of the GNU
+General Public License.
+
+
+
 =back
 
 =head1 Testing
@@ -158,31 +173,29 @@ F<perl5db.t>: Fix for test failures when C<Term::ReadLine::Gnu> is installed.
 
 =head1 Installation and Configuration Improvements
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
-
 =head2 Configuration improvements
 
 =over 
 
 =item * 
 
-We updated F<INSTALL> with notes aboute how to deal with broken F<dbm.h> on OpenSUSE (and possibly other platforms)
+We updated F<INSTALL> with notes about how to deal with broken F<dbm.h>
+on OpenSUSE (and possibly other platforms)
 
 =back
 
-=head1 Selected Bug Fixes
+=head1 Bug Fixes
 
 =over 4
 
 =item *
 
 A bug in how we process filetest operations could cause a segfault.
-Filetest don't always expect an op on the stack, so we now use
+Filetests don't always expect an op on the stack, so we now use
 TOPs only if we're sure that we're not stat'ing the _ filehandle.
 This is indicated by OPf_KIDS (as checked in ck_ftst).
 
-See also http://rt.perl.org/rt3/Public/Bug/Display.html?id=74542
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74542>
 
 =item *
 
@@ -195,37 +208,56 @@ prefix a package declaration.
 
 XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS
 
-See also http://rt.cpan.org/Public/Bug/Display.html?id=55049
+See also: L<http://rt.cpan.org/Public/Bug/Display.html?id=55049>
+
+=item * 
 
+utf8::is_utf8 now respects GMAGIC (e.g. $1)
 
 =item * 
 
-utf8::is_utf8 now respects respect GMAGIC (e.g. $1)
+XS code using C<fputc()> or C<fputs()>: on Windows could cause an error
+due to their arguments being swapped.
 
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704>
 
-=item * 
+=item *
 
-XS code using C<fputc()> or C<fputs()>: on Windows could cause an error due to their arguments being swapped.
+We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors
+in an obscure situation.  It happened when stuffing was performed on the
+last line of a file and the line ended with a statement that lacked a
+terminating semicolon.  
 
-See also: http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74006>
 
-=back
+=item *
 
-=head1 Changed Internals
+We fixed a bug that could cause \N{} constructs followed by a single . to
+be parsed incorrectly.
 
-XXX Changes which affect the interface available to C<XS> code go here.
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74978>
 
-=over 4
+=item *
+
+
+We fixed a bug that caused when(scalar) without an argument not to be
+treated as a syntax error.
+
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74114>
 
 =item *
 
-commit bd94fa25a8ae3c7107bd1aec68d4488d21c79b05
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Mon Apr 19 15:35:59 2010 +0100
+We fixed a regression in the handling of labels immediately before string
+evals that was introduced in Perl 5.12.0.
 
-    Possible undefined behaviour, spotted by gcc 4.5.0 and HP's updated compiler.
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=74290>
 
-XXX
+=item *
+
+We fixed a regression in case-insensitive matching of folded characters
+in regular expressions introduced in Perl 5.10.1.
+
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=72998>
 
 =back
 
@@ -294,10 +326,51 @@ interactively and explicitly answered no.
 
 =back
 
+=head1 Known Problems
+
+=over
+
+=item *
+
+C<List::Util::first> misbehaves in the presence of a lexical C<$_>
+(typically introduced by C<my $_> or implicitly by C<given>). The variable
+which gets set for each iteration is the package variable C<$_>, not the
+lexical C<$_>.
+
+A similar issue may occur in other modules that provide functions which
+take a block as their first argument, like
+
+    foo { ... $_ ...} list
+
+See also: L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=67694>
+
+=item *
+
+C<Module::Load::Conditional> and C<version> have an unfortunate
+interaction which can cause C<CPANPLUS> to crash when it encounters
+an unparseable version string.  Upgrading to C<CPANPLUS> 0.9004 or
+C<Module::Load::Conditional> 0.38 from CPAN will resolve this issue.
+
+=back
+
+
 =head1 Acknowledgements
 
-XXX The list of people to thank goes here.
+Perl 5.12.1 represents approximately four weeks of development since
+Perl 5.12.0 and contains approximately 4,000 lines of changes
+across 142 files from 28 authors.
+
+Perl continues to flourish into its third decade thanks to a vibrant
+community of users and developers.  The following people are known to
+have contributed the improvements that became Perl 5.12.1:
 
+Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry,
+David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand,
+Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois,
+Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael
+Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat,
+Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo,
+Vincent Pit and Zefram.
 
 =head1 Reporting Bugs
 
@@ -315,7 +388,8 @@ analysed by the Perl porting team.
 If the bug you are reporting has security implications, which make it
 inappropriate to send to a publicly archived mailing list, then please send
 it to perl5-security-report@perl.org. This points to a closed subscription
-unarchived mailing list, which includes all the core committers, who be able
+unarchived mailing list, which includes
+all the core committers, who will be able
 to help assess the impact of issues, figure out a resolution, and help
 co-ordinate the release of patches to mitigate or fix the problem across all
 platforms on which Perl is supported. Please only use this address for
@@ -335,6 +409,3 @@ The F<Artistic> and F<Copying> files for copyright information.
 
 =cut
 
-
-
-