In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/66d813ca37e809ee893f2444cd6319914ce913e0?hp=6d3f582d7a5b910929925bc7e39b7a3fc2d3f997>

- Log -----------------------------------------------------------------
commit 66d813ca37e809ee893f2444cd6319914ce913e0
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:42:09 2013 -0700

    perldelta: appease podcheck; tweak formatting

M       pod/perldelta.pod

commit 81ca6d444ce24ddd6636e325f27d5d0b1ab96314
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:39:28 2013 -0700

    perldelta for #118839/bf2614180a65

M       pod/perldelta.pod

commit 93c1eebbfff4f62df545b54a0de480a811b7086d
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:38:01 2013 -0700

    perldelta for #118567/50278ed0f

M       pod/perldelta.pod

commit e727f86abeb67e495fe486edf2eee5051595ffc1
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:36:37 2013 -0700

    perldelta for #89648/b23eb1831

M       pod/perldelta.pod

commit 02bef66e81596f051b00fd9edfe6c91cb84972ac
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:33:06 2013 -0700

    perldelta for #118627/4e917a04b78

M       pod/perldelta.pod

commit 57ae4db84e49c8d67f7334225ff909cd6945d4fe
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:30:37 2013 -0700

    perldelta for f791a21a2018

M       pod/perldelta.pod

commit e4d150f17a54a8ffb822508e69fb3894d0d2d7c1
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:28:36 2013 -0700

    perldiag: rewrap an entry for better splain output

M       pod/perldiag.pod

commit 1310e59048aba1c74c2db87a964ef93e2d7a7f86
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:23:13 2013 -0700

    perldelta for b54d603d2 (consistent proto warnings)

M       pod/perldelta.pod

commit 7f1d4316ed7050194a68a3a4c2568b748d534ee7
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:20:43 2013 -0700

    perldelta for a77c16f7c (*foo->bar)

M       pod/perldelta.pod

commit b5a80c26644601305c8048d3fc59e17da25c3a32
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:16:13 2013 -0700

    perldelta for #113932 (UNIVERSAL::can)

M       pod/perldelta.pod

commit 47a7c93d355fc8012b6d2b6f8b5b40f46069b6d4
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 16:13:02 2013 -0700

    perldelta for #117917/f5df269c5c

M       pod/perldelta.pod

commit 558673e6bc37e199a517c5c6e39dcf73c9a9affc
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:43:24 2013 -0700

    perldelta for fdf416b69a0 (utf8 cloned protos)

M       pod/perldelta.pod

commit 7395119525acc2e0a5002864a2b82c6e6fd38a5c
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:41:12 2013 -0700

    perldelta for 9700e2d38 (ambiguity warnings)

M       pod/perldelta.pod

commit 7e4f209b3aa7a41f8e4653f6a0093ab9382f116a
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:39:17 2013 -0700

    perldelta for e9d9e6f34 (list cx for sort args)

M       pod/perldelta.pod

commit f6b1d2f55451df803971c632a4c86af87a2957bc
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:37:38 2013 -0700

    perldelta for f65493df1c (lv sort args)

M       pod/perldelta.pod

commit 71b4007cf24edb6e832af3fc42b72221b490e555
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:35:49 2013 -0700

    perldelta for 20d5dc239 (fatal in-place sort)

M       pod/perldelta.pod

commit 07a522a526321341d2a83a852eda7f6fecb333c9
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:31:31 2013 -0700

    perldelta for bdbfc51a7b (undef constant my sub)

M       pod/perldelta.pod

commit 989e4501b070a4527c5b203f73ee58ab5a7a1aef
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:30:11 2013 -0700

    perldelta for 5e5128ba (@INC and scalarref docs)

M       pod/perldelta.pod

commit bfb4a93c2cc1dd3a99d8a1038cdb1786d33e8712
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:28:29 2013 -0700

    perldelta for ee3818ca2c5e (Can’t coerce readonly REF)

M       pod/perldelta.pod

commit b7bbd8b6c39172bf4a25a20634c578dbb96d161d
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:28:01 2013 -0700

    perldelta for c72a4eedf (sv_force_normal at compile time)

M       pod/perldelta.pod

commit 8be8cdec21eb9c193954fb8ea0e3cde946a7e6fc
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 14:17:16 2013 -0700

    perldelta for 9657ccb4f (@INC sub returning scalar ref)

M       pod/perldelta.pod

commit 52c411a5add10c8b4a528d14706153af56ded4e4
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:14:19 2013 -0700

    perldelta: typos; consistency tweaks

M       pod/perldelta.pod

commit 5e0164b286d6126982c81cabb1306a874431f825
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:13:21 2013 -0700

    perldelta for 310f4fdb24 (more index constant mangling)

M       pod/perldelta.pod

commit e11f653d34b4ff4b418ba41c67655d642e892fc0
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:09:45 2013 -0700

    perldelta for 948d23704 (index constant mangling)

M       pod/perldelta.pod

commit 0b023496c3c6ba501cfa33e71c193131f7335a82
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:08:47 2013 -0700

    perldelta for 60041a0991 (split constant mangling)

M       pod/perldelta.pod

commit ba90f48b375eac90241771eb6d764d059ec4aa07
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:06:24 2013 -0700

    perldelta for proto parsing changes

M       pod/perldelta.pod

commit aaf547722abf1a5f22b92d3fd938c1a8e76c75e6
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 12:06:15 2013 -0700

    perldelta for 8922e438 (BmRARE/PREVIOUS removal)

M       pod/perldelta.pod

commit 81d3ed5a0fa49c09ac57f7edc0917f345ff6b160
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 11:57:02 2013 -0700

    perldelta for #118305/88dbe4a

M       pod/perldelta.pod
-----------------------------------------------------------------------

Summary of changes:
 pod/perldelta.pod | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 pod/perldiag.pod  |   8 +--
 2 files changed, 172 insertions(+), 9 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index b53dfc5..24eebb9 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -25,7 +25,20 @@ XXX New core language features go here.  Summarize 
user-visible core language
 enhancements.  Particularly prominent performance optimisations could go
 here, but most should go in the L</Performance Enhancements> section.
 
-[ List each enhancement as a =head2 entry ]
+=head2 More consistent prototype parsing
+
+Multiple semicolons in subroutine prototypes have long been tolerated and
+treated as a single semicolon.  There was one case where this did not
+happen.  A subroutine whose prototype begins with "*" or ";*" can affect
+whether a bareword is considered a method name or sub call.  This now
+applies also to ";;;*".
+
+Whitespace has long been allowed inside subroutine prototypes, so
+C<sub( $ $ )> is equivalent to C<sub($$)>.  But it was stripped when the
+subroutine was parse.  Hence, whitespace was I<not> allowed in prototypes
+set by C<Scalar::Util::set_prototype>.  Now it is permitted, and the parser
+no longer strips whitespace.  This means C<prototype &mysub> returns the
+original prototype, whitespace and all.
 
 =head1 Security
 
@@ -199,6 +212,18 @@ also affects L<perlre> and L<perlsub>.)
 
 =back
 
+=head3 L<perlfunc>
+
+=over 4
+
+=item *
+
+Since Perl v5.10, it has been possible for subroutines in @INC to return
+a reference to a scalar holding initial source code to prepend to the file.
+This is now documented.
+
+=back
+
 =head1 Diagnostics
 
 The following additions or changes have been made to diagnostic output,
@@ -229,7 +254,11 @@ XXX L<message|perldiag/"message">
 
 =item *
 
-XXX L<message|perldiag/"message">
+L<Missing ']' in prototype for %s : %s|perldiag/"Missing ']' in prototype
+for %s : %s">
+
+(W illegalproto) A grouping was started with C<[> but never closed with
+C<]>.
 
 =back
 
@@ -241,7 +270,40 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =item *
 
-XXX Describe change here
+Under rare circumstances, one could get a "Can't coerce readonly REF to
+string" instead of the customary "Modification of a read-only value".  This
+alternate error message has been removed.
+
+=item *
+
+"Ambiguous use of * resolved as operator *": This and similar warnings
+about "%" and "&" used to occur in some circumstances where there was no
+operator of the type cited, so the warning was completely wrong.  This has
+been fixed [perl #117535, #76910].
+
+=item *
+
+Warnings about malformed subroutine prototypes are now more consistent in
+how the prototypes are rendered.  Some of these warnings would truncate
+prototypes containing nulls.  In other cases one warning would suppress
+another.  The warning about illegal characters in prototypes no longer says
+"after '_'" if the bad character came before the underscore.
+
+=item *
+
+L<Perl folding rules are not up-to-date for 0x%X; please use the perlbug
+utility to report; in regex; marked by <-- HERE in
+mE<sol>%sE<sol>|perldiag/"Perl folding rules are not up-to-date for 0x%X;
+please use the perlbug utility to report; in regex; marked by <-- HERE in
+m/%s/">
+
+This message is now only in the regexp category, and not in the deprecated
+category.  It is still a default (i.e., severe) warning [perl #89648].
+
+=item *
+
+The debugger's "n" command now respects lvalue subroutines and steps over
+them [perl #118839].
 
 =back
 
@@ -426,6 +488,18 @@ discover if the embedded Perl they are using needs the 
workaround by
 testing that the C preprocessor symbol C<HAS_SKIP_LOCALE_INIT> is not
 defined.  (RT #38193)
 
+=item *
+
+C<BmRARE> and C<BmPREVIOUS> have been removed.  They were not used anywhere
+and are not part of the API.  For XS modules, they are now #defined as 0.
+
+=item *
+
+C<sv_force_normal>, which usually croaks on read-only values, used to allow
+read-only values to be modified at compile time.  This has been changed to
+croak on read-only values regardless.  This change uncovered several core
+bugs.
+
 =back
 
 =head1 Selected Bug Fixes
@@ -439,16 +513,105 @@ files in F<ext/> and F<lib/> are best summarized in 
L</Modules and Pragmata>.
 
 =item *
 
-There have been several fixes related to Perl's handling of locales.  RT
+There have been several fixes related to Perl's handling of locales.  perl
 #38193 was described above in L</Internal Changes>.
 Also fixed is #112208 in which the error string in C<$!> displayed as
 garbage in many UTF-8 locales;
 #118197, where the radix (decimal point) character had to be an ASCII
 character (which doesn't work for some non-Western languages);
-and #115808] in which C<POSIX::setlocale()> on failure returned an
+and #115808, in which C<POSIX::setlocale()> on failure returned an
 C<undef> which didn't warn about not being defined even if those
 warnings were enabled.
 
+=item *
+
+The dtrace sub-entry probe now works with lexical subs, instead of
+crashing [perl #118305].
+
+=item *
+
+Compiling a C<split> operator whose third argument is a named constant
+evaulating to 0 no longer causes the constant's value to change.
+
+=item *
+
+A named constant used as the second argument to C<index> no longer gets
+coerced to a string if it is a reference, regular expression, dualvar, etc.
+
+=item *
+
+A named constant evaluating to the undefined value used as the second
+argument to C<index> no longer produces "uninitialized" warnings at compile
+time.  It will still produce them at run time.
+
+=item *
+
+When a scalar was returned from a subroutine in @INC, the referenced scalar
+was magically converted into an IO thingy, possibly resulting in "Bizarre
+copy" errors if that scalar continued to be used elsewhere.  Now Perl uses
+an internal copy of the scalar instead.
+
+=item *
+
+Undefining an inlinable lexical subroutine (C<my sub foo() { 42 } undef
+&foo>) would result in a crash if warnings were turned on.
+
+=item *
+
+Certain uses of the C<sort> operator are optimised to modify an array in
+place, such as C<@a = sort @a>.  During the sorting, the array is made
+read-only.  If a sort block should happen to die, then the array remained
+read-only even outside the C<sort>.  This has been fixed.
+
+=item *
+
+C<$a> and C<$b> inside a sort block are aliased to the actual arguments to
+C<sort>, so they can be modified through those two variables.  This did not
+always work, e.g., for lvalue subs and C<$#ary>, and probably many other
+operators.  It works now.
+
+=item *
+
+The arguments to C<sort> are now all in list context.  If the C<sort>
+itself were called in void or scalar context, then I<some>, but not all, of
+the arguments used to be in void or scalar context.
+
+=item *
+
+Subroutine prototypes with Unicode characters above U+00FF were getting
+mangled during closure cloning.  This would happen with subroutines closing
+over lexical variables declared outside, and with lexical subs.
+
+=item *
+
+In regular expressions containing multiple code blocks, the values of
+C<$1>, C<$2>, etc., set by nested regular expression calls would leak from
+one block to the next.  Now these variables always refer to the outer
+regular expression at the start of an embedded block [perl #117917].
+
+=item *
+
+C<UNIVERSAL::can> now treats its first argument the same way that method
+calls do: Typeglobs and glob references with non-empty IO slots are treated
+as handles, and strings are treated as filehandles, rather than packages,
+if a handle with that name exists [perl #113932].
+
+=item *
+
+Method calls on typeglobs (e.g., C<< *ARGV->getline >>) used to stringify
+the typeglob and then look it up again.  Combined with changes in Perl
+5.18.0, this allowed C<< *foo->bar >> to call methods on the "foo" package
+(like C<< foo->bar >>).  In some cases it could cause the method to be
+called on the wrong handle.  Now a typeglob argument is treated as a
+handle (just like C<< (\*foo)->bar >>), or, if its IO slot is empty, an
+error is raised.
+
+=item *
+
+Under copy-on-write builds (the default as of 5.19.1) C<${'_<-e'}[0]> no
+longer gets mangled.  This is the first line of input saved for the
+debugger's use for one-liners [perl #118627].
+
 =back
 
 =head1 Known Problems
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 1012507..5165599 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -2230,10 +2230,10 @@ offending digit.
 
 =item Illegal character after '_' in prototype for %s : %s
 
-(W illegalproto) An illegal character was found in a prototype declaration.
-The '_' in a prototype must be followed by a ';', indicating the rest of
-the parameters are optional, or one of '@' or '%', since those two will
-accept 0 or more final parameters.
+(W illegalproto) An illegal character was found in a prototype
+declaration.  The '_' in a prototype must be followed by a ';',
+indicating the rest of the parameters are optional, or one of '@'
+or '%', since those two will accept 0 or more final parameters.
 
 =item Illegal character \%o (carriage return)
 

--
Perl5 Master Repository

Reply via email to