In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/3526bd3e206f7db2c8cafbf4009283042a67004a?hp=9e53330546fde93d6e8fef3783ecd79bbe7b866c>

- Log -----------------------------------------------------------------
commit 3526bd3e206f7db2c8cafbf4009283042a67004a
Author: Florian Ragwitz <[email protected]>
Date:   Mon Sep 10 17:14:59 2012 -0400

    Remove some set but unused variables
    
    Thanks, gcc, for letting me know.

M       regcomp.c
M       toke.c

commit 5faa50e946a2f1d23a8b1978e7ad550aaf29635e
Author: Florian Ragwitz <[email protected]>
Date:   Mon Sep 10 13:22:10 2012 -0400

    Perldelta up to 9e533305

M       pod/perldelta.pod

commit a32652658c61d53b19542ac9948fb7ffe16f27d1
Author: Florian Ragwitz <[email protected]>
Date:   Sat May 26 23:15:43 2012 +0200

    Stop CPAN from indexing mad/

M       META.yml
M       Porting/makemeta
-----------------------------------------------------------------------

Summary of changes:
 META.yml          |    1 +
 Porting/makemeta  |    2 +-
 pod/perldelta.pod |  191 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 regcomp.c         |    2 -
 toke.c            |    3 +-
 5 files changed, 186 insertions(+), 13 deletions(-)

diff --git a/META.yml b/META.yml
index c4f2831..b401077 100644
--- a/META.yml
+++ b/META.yml
@@ -57,6 +57,7 @@ no_index:
     - dist/Tie-File
     - dist/XSLoader
     - lib/version
+    - mad
     - win32
   file:
     - autodoc.pl
diff --git a/Porting/makemeta b/Porting/makemeta
index 90ce9bf..1dd644c 100644
--- a/Porting/makemeta
+++ b/Porting/makemeta
@@ -25,7 +25,7 @@ my @CPAN  = grep { $Modules{$_}{CPAN} } keys %Modules;
 my @files = ('autodoc.pl', 'lib/unicore/mktables', 'TestInit.pm',
             'Porting/Maintainers.pm', 'Porting/perldelta_template.pod',
             map { get_module_files($_) } @CPAN);
-my @dirs  = ('cpan', 'win32', grep { -d $_ && $_  !~ /^cpan/ } map { 
get_module_pat($_) } @CPAN);
+my @dirs  = ('cpan', 'win32', 'mad', grep { -d $_ && $_  !~ /^cpan/ } map { 
get_module_pat($_) } @CPAN);
 
 my %dirs;
 @dirs{@dirs} = ();
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index d9b2cc6..b7d1864 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -38,6 +38,20 @@ characters.  6.2 does revise the C<\X> handling for the 
REGIONAL
 INDICATOR characters that were added in Unicode 6.0.  Perl now for the
 first time fully handles this revision.
 
+=head2 New DTrace probes
+
+The following new DTrace probes have been added:
+
+=over 4
+
+=item C<op-entry>
+
+=item C<loading-file>
+
+=item C<loaded-file>
+
+=back
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -80,6 +94,58 @@ largest gain is for C<\X>, the Unicode "extended grapheme 
cluster".  The
 gain for it is about 35% - 40%.  Bracketed character classes, e.g.,
 C<[0-9\x{100}]> containing code points above 255 are also now faster.
 
+=item *
+
+On platforms supporting it, several former macros are now implemented as static
+inline functions. This should speed things up slightly on non-GCC platforms.
+
+=item *
+
+Apply the optimisation of hashes in boolean context, such as in C<if> or 
C<and>,
+to constructs in non-void context.
+
+=item *
+
+Extend the optimisation of hashes in boolean context to C<scalar(%hash)>,
+C<%hash ? ... : ...>, and C<sub { %hash || ... | }>.
+
+=item *
+
+When making a copy of the string being matched against (so that $1, $& et al
+continue to show the correct value even if the original string is subsequently
+modified), only copy that substring of the original string needed for the
+capture variables, rather than copying the whole string.
+
+This is a big win for code like
+
+    $&;
+    $_ = 'x' x 1_000_000;
+    1 while /(.)/;
+
+Also, when pessimizing if the code contains C<$`>, C<$&> or C<$'>, record the
+presence of each variable separately, so that the determination of the 
substring
+range is based on each variable separately. So performance-wise,
+
+   $&; /x/
+
+is now roughly equivalent to
+
+   /(x)/
+
+whereas previously it was like
+
+   /^(.*)(x)(.*)$/
+
+and
+
+   $&; $'; /x/
+
+is now roughly equivalent to
+
+   /(x)(.*)$/
+
+etc.
+
 =back
 
 =head1 Modules and Pragmata
@@ -110,27 +176,88 @@ XXX
 
 =item *
 
+L<Archive::Tar> has been upgraded from version 1.88 to 1.90.  This adds
+documentation fixes.
+
+=item *
+
+L<B> has been upgraded from version 1.37 to 1.38.  This makes the module work
+with the new pad API.
+
+=item *
+
+L<B::Concise> has been upgraded from version 0.92 to 0.93.  This adds support
+for the new C<OpMAYBE_TRUEBOOL> and C<OPpTRUEBOOL> flags.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.16 to 1.17.  This suppresses
+trailing semicolons in formats.
+
+=item *
+
 L<DB_File> has been upgraded from version 1.826 to 1.827.  The main Perl module
 no longer uses the C<"@_"> construct.
 
 =item *
 
+L<Devel::Peek> has been upgraded from version 1.09 to 1.10.  This fixes
+compilation with C++ compilers and makes the module work with the new pad API.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.15 to 1.16.  This fixes warnings
+about using C<CODE> sections without an C<OUTPUT> section.
+
+=item *
+
+L<ExtUtils::ParseXS> has been upgraded from version 3.17 to 3.18.  This avoids 
a
+bogus warning for initialised XSUB non-parameters.
+
+=item *
+
 L<File::Copy> has been upgraded from version 2.23 to 2.24.  C<copy()> no longer
 zeros files when copying into the same directory, and also now fails (as it has
 long been documented to do) when attempting to copy a file over itself.
 
 =item *
 
+L<File::Find> has been upgraded from version 1.21 to 1.22.  This fixes
+inconsistent unixy path handling on VMS.
+
+=item *
+
 L<Locale::Codes> has been upgraded from version 3.22 to 3.23.  It includes some
 new codes.
 
 =item *
 
+L<Module::CoreList> has been upgraded from version 2.71 to 2.73.  This restores
+compatibility with older versions of perl and cleans up the corelist data for
+various modules.
+
+=item *
+
+L<Opcode> has been upgraded from version 1.23 to 1.24 to reflect the removal of
+the boolkeys opcode.
+
+=item *
+
 L<Socket> has been upgraded from version 2.004 to 2.006.
 C<unpack_sockaddr_in()> and C<unpack_sockaddr_in6()> now return just the IP
 address in scalar context, and C<inet_ntop()> now guards against incorrect
 length scalars being passed in.
 
+=item *
+
+L<threads::shared> has been upgraded from version 1.40 to 1.41.  This adds the
+option to warn about or ignore attempts to clone structures that can't be
+cloned, as opposed to just unconditionally dying in that case.
+
+=item *
+
+L<XSLoader> has been upgraded from version 0.15 to 0.16.
+
 =back
 
 =head2 Removed Modules and Pragmata
@@ -250,7 +377,8 @@ L</Platform Support> section, instead.
 
 =item *
 
-XXX
+F<Configure> will now correctly detect C<isblank()> when compiling with a C++
+compiler.
 
 =back
 
@@ -316,9 +444,18 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item XXX-some-platform
+=item Win32
 
-XXX
+A source of segfaults during global destruction has been fixed.
+
+=item Solaris
+
+In Configure, avoid running sed commands with flags not supported on Solaris.
+
+=item Darwin
+
+Stop hardcoding an alignment on 8 byte boundaries to fix builds using
+-Dusemorebits.
 
 =back
 
@@ -334,7 +471,13 @@ well.
 
 =item *
 
-XXX
+The APIs for accessing lexical pads have changed considerably.
+
+C<PADLIST>s are now longer C<AV>s, but their own type instead. C<PADLIST>s now
+contain a C<PAD> and a C<PADNAMELIST> of C<PADNAME>s, rather than C<AV>s for 
the
+pad and the list of pad names.  C<PAD>s, C<PADNAMELIST>s, and C<PADNAME>s are 
to
+be accessed as such though the newly added pad API instead of the plain C<AV>
+and C<SV> APIs.  See L<perlapi> for details.
 
 =back
 
@@ -343,13 +486,42 @@ XXX
 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
-[ List each fix as a =item entry ]
-
 =over 4
 
 =item *
 
-XXX
+Restore ‘Can’t localize through ref’ to lvalue subs.  This error had 
disappeared
+under certain conditions in version 5.16.0 and has now been restored.
+
+=item *
+
+The parsing of heredocs has been improved significantly, fixing several parsing
+bugs and correcting wrong subsequent line numbers under certain conditions.
+
+=item *
+
+Reset the utf8 position cache when accessing magical variables to avoid the
+string buffer and the utf8 position cache to get out of sync.
+
+=item *
+
+Various cases of get magic being called twice for magical utf8 strings have 
been
+fixed.
+
+=item *
+
+This code (when not in the presence of C<$&> etc)
+
+    $_ = 'x' x 1_000_000;
+    1 while /(.)/;
+
+used to skip the buffer copy for performance reasons, but suffered from C<$1>
+etc changing if the original string changed.  That's now been fixed.
+
+=item *
+
+Perl doesn't use PerlIO anymore to report out of memory messages, as PerlIO
+might attempt to allocate more memory.
 
 =back
 
@@ -365,7 +537,10 @@ platform specific bugs also go here.
 
 =item *
 
-XXX
+Changes in the lexical pad API break several CPAN modules.
+
+To avoid having to patch those modules again later if we change pads from AVs
+into their own types, APIs for accessing the contents of pads have been added.
 
 =back
 
diff --git a/regcomp.c b/regcomp.c
index a9e92e1..7f60e29 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -6800,7 +6800,6 @@ Perl_reg_numbered_buff_length(pTHX_ REGEXP * const r, 
const SV * const sv,
     struct regexp *const rx = (struct regexp *)SvANY(r);
     I32 i;
     I32 s1, t1;
-    I32 n = paren;
 
     PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH;
 
@@ -6839,7 +6838,6 @@ Perl_reg_numbered_buff_length(pTHX_ REGEXP * const r, 
const SV * const sv,
       case RX_BUFF_IDX_CARET_FULLMATCH: /* ${^MATCH} */
          if (!(rx->extflags & RXf_PMf_KEEPCOPY))
             goto warn_undef;
-        n = RX_BUFF_IDX_FULLMATCH;
         /*FALLTHROUGH*/
 
       /* $& / ${^MATCH}, $1, $2, ... */
diff --git a/toke.c b/toke.c
index 2b6cf61..b09f1f9 100644
--- a/toke.c
+++ b/toke.c
@@ -9616,7 +9616,7 @@ S_scan_heredoc(pTHX_ register char *s)
     /* inside a string eval or quote-like operator */
     if (!infile || PL_lex_inwhat) {
        SV *linestr;
-       char *bufptr, *bufend;
+       char *bufend;
        char * const olds = s;
        PERL_CONTEXT * const cx = &cxstack[cxstack_ix];
        /* These two fields are not set until an inner lexing scope is
@@ -9652,7 +9652,6 @@ S_scan_heredoc(pTHX_ register char *s)
            s = (char*)memchr((void*)s, '\n', PL_bufend - s);
            assert(s);
        }
-       bufptr = shared->ls_bufptr;
        linestr = shared->ls_linestr;
        bufend = SvEND(linestr);
        d = s;

--
Perl5 Master Repository

Reply via email to