In perl.git, the branch maint-5.10 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c09d26c405f109be79e3487f71a3b134d4f9bc04?hp=a725c5ec96926d5d481dff0fa79534be2769e27e>

- Log -----------------------------------------------------------------
commit c09d26c405f109be79e3487f71a3b134d4f9bc04
Author: Nicholas Clark <[email protected]>
Date:   Mon Jun 22 23:12:27 2009 +0100

    Tweak to eliminate many many "=item type mismatch" warnings from podchecker.

M       pod/perl5101delta.pod

commit 923f2bfc95b0e8c6d77e9fa4c72b1b595b2b58a4
Author: Nicholas Clark <[email protected]>
Date:   Mon Jun 22 23:11:10 2009 +0100

    Fix Pod error.

M       pod/perl5101delta.pod

commit f0a4aadf25c4510969b846ed3351a5ba8d76a970
Author: Nicholas Clark <[email protected]>
Date:   Mon Jun 22 23:09:28 2009 +0100

    Minor copy editing - s/RT # /RT #/, and remove a surplus blank line.

M       pod/perl5101delta.pod

commit c27a58b9479652538b4dec0c066c87fe9e1c1a7b
Author: Nicholas Clark <[email protected]>
Date:   Mon Jun 22 23:08:51 2009 +0100

    Add perldelta entries for changes that I'd tagged as "C bugfix".

M       pod/perl5101delta.pod
-----------------------------------------------------------------------

Summary of changes:
 pod/perl5101delta.pod |  161 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 151 insertions(+), 10 deletions(-)

diff --git a/pod/perl5101delta.pod b/pod/perl5101delta.pod
index 2aab672..eea620e 100644
--- a/pod/perl5101delta.pod
+++ b/pod/perl5101delta.pod
@@ -196,8 +196,6 @@ The Unicode NameAliases.txt database file has been added. 
This has the
 effect of adding some extra C<\N> character names that formerly wouldn't
 have been recognised; for example, C<"\N{LATIN CAPITAL LETTER GHA}">.
 
-=over 4
-
 =item C<overloading>
 
 See L</"The C<overloading> pragma"> above.
@@ -228,7 +226,9 @@ C<Parse::CPAN::Meta> has been added to the core (version 
1.39).
 
 =over
 
-=item C<feature>
+=item *
+
+C<feature>
 
 The meaning of the C<:5.10> and C<:5.10.X> feature bundles has
 changed slightly. The last component, if any (ie C<X>) is simply ignored.
@@ -569,6 +569,12 @@ be extracted from the git version control system.
 
 A new internal cache means that C<isa()> will often be faster.
 
+=item *
+
+Under C<use locale>, the locale-relevant information is now cached on read-only
+values, such as the list returned by C<keys %hash>. This makes operations such
+as <sort keys %hash> in the scope of C<use locale> much faster.
+
 =back
 
 =head1 Installation and Configuration Improvements
@@ -591,21 +597,41 @@ perl is built with  C<-Dusedevel>.
 
 hints now supports versions 5.*.
 
+=head3 Win32
+
+XXX: Don't know how to summarise
+"Give Win32 message windows proper window procedures"
+http://perl5.git.perl.org/perl.git/commit/099b16d3b50ccbb639491fa8bd48153ec3225450
 
+=head3 VMS
+
+Reads from C<PerlIO::Scalar>'s in-memory temporary files used to fail if C<$/>
+was set to a numeric reference, to signal record-style reads. This is now 
fixed.
 
 =head1 Selected Bug Fixes
 
+=over 4
+
+=item *
+
+5.10.0 inadvertently disabled an optimisation, causing a measurable performance
+drop in list assignment, such as is often used to assign function parameters
+from C<@_>. The optimisation has been re-instated, and the performance
+regression fixed.
+
+=back
+
 =head2 Other fixes
 
 =over
 
 =item *
 
-Fixed memory leak on C<while (1) { map 1, 1 }> [RT # 53038].
+Fixed memory leak on C<while (1) { map 1, 1 }> [RT #53038].
 
 =item *
 
-Some potential coredumps in PerlIO fixed [RT # 57322,54828].
+Some potential coredumps in PerlIO fixed [RT #57322,54828].
 
 =item *
 
@@ -616,17 +642,16 @@ The debugger now works with lvalue subroutines
 The debugger's C<m> command was broken on modules that defined constants
 [RT #61222].
 
-
 =item *
 
 C<crypt()> and string complement could return tainted values for untainted
-arguments [RT # 59998].
+arguments [RT #59998].
 
 =item *
 
 The C<-i.sufffix> command-line switch now recreates the file using
 restricted permissions, before changing its mode to match the original
-file. This eliminates a potential race condition.
+file. This eliminates a potential race condition. [RT #60904]
 
 =item *
 
@@ -636,7 +661,7 @@ On some UNIX systems, the value in C<$?> would not have the 
top bit set
 =item *
 
 Under some circumstances, $^R could incorrectly become undefined
-[RT # 57042].
+[RT #57042].
 
 =item *
 
@@ -653,6 +678,9 @@ key is utf8 might result in an incorrect lookup.
 C<$object->isa('Foo')> would report false if the package C<Foo> didn't
 exist, even if the object's C<@ISA> contained C<Foo>.
 
+Various bugs in the new-to 5.10.0 mro code, triggered by manipulating C<@ISA>,
+have been found and fixed.
+
 =item *
 
 Bitwise operations on references could crash the interpreter, e.g.
@@ -725,10 +753,87 @@ Assigning a format to a glob could corrupt the format; 
e.g.:
 
      *bar=*foo{FORMAT}; # foo format now bad
 
+=item *
+
+Attempting to coerce a typeglob to a string or number could cause an assertion
+failure. The correct error message is now generated, "Can't coerce GLOB to
+I<$type>".
+
+=item *
+
+Under C<use filetest 'access'> C<-x> was using the wrong access mode. This
+has been fixed [RT #49003].
+
+=item *
+
+C<length> on a tied scalar that returned a Unicode value would not be correct
+the first time. This has been fixed.
+
+=item *
+
+Using an array C<tie> inside in array C<tie> could SEGV. This has been fixed.
+[RT #51636]
+
+=item *
+
+A race condition inside C<PerlIOStdio_close()> has been identified and fixed.
+This used to cause various threading issues, including SEGVs.
+
+=item *
+
+In C<unpack>, C<()> groups in scalar context was internally placing a list on
+the interpreter's stack, which manifested in various ways, including SEGVs.
+This is now fixed. [RT #50256]
+
+=item *
+
+Magic was called twice in C<substr>, C<\&$x>, C<tie $x, $m> and C<chop>.
+These have all been fixed.
+
+=item *
+
+An optimisation to clear the temporary stack within the implicit loop of
+C<s///ge> has been reverted, as it turned out to be the cause of obscure
+bugs in seemingly unrelated parts of the interpreter. [Change ef0d4e17921ee3de]
+
+=item *
+
+The line numbers for warnings inside C<elsif> are now correct.
+
+=item *
+
+The C<..> operator now works correctly with ranges whose ends are at or close
+to the values of the smallest and largest integers.
+
+=item *
+
+C<binmode STDIN, ':raw'> could lead to segmentation faults on some platforms.
+This has been fixed [RT #54828]
+
+=item *
+
+An off-by-one error meant that C<index $str, ...> was effectively being 
executed
+as C<index "$str\0", ...>. This has been fixed [RT #53746]
+
+=item *
+
+Various leaks associated with named captures in regexs have been fixed.
+[RT #57024]
+
+=item *
+
+A weak reference to a hash would leak. This was affecting C<DBI>. [RT #56908]
+
 =back
 
 =head1 New or Changed Diagnostics
 
+=head2 panic: sv_chop %s
+
+This new fatal error occurs when the C routine C<Perl_sv_chop()> was passed a
+position that is not within the scalar's string buffer. This is caused by
+buggy XS code, and at this point recovery is not possible.
+
 =head2 Can't locate package %s for the parents of %s
 
 This warning has been removed. In general, it only got produced in
@@ -741,7 +846,9 @@ optimisation to be added.
 
 =item *
 
-C<vcroak()> now accepts a null first argument.
+C<vcroak()> now accepts a null first argument. A full audit was made of
+the "not NULL" compiler annotations, and those for several other internal
+functions were corrected.
 
 =item *
 
@@ -756,6 +863,11 @@ C<Perl_sv_insert>.
 
 =item *
 
+The function C<Perl_newSV_type(type)> has been added, equivalent to
+C<Perl_newSV()> followed by C<Perl_sv_upgrade(type)>.
+
+=item *
+
 The function C<Perl_croak_xs_usage> has been added as a wrapper to
 C<Perl_croak>.
 
@@ -764,6 +876,35 @@ C<Perl_croak>.
 The functions C<PerlIO_find_layer> and C<PerlIO_list_alloc> are now
 exported.
 
+=item *
+
+C<PL_na> has been exterminated from the core code, replaced by local STRLEN
+temporaries, or C<*_nolen()> calls. Either approach is faster than C<PL_na>,
+which is a pointer deference into the interpreter structure under ithreads,
+and a global variable otherwise.
+
+=item *
+
+C<Perl_mg_free()> used to leave freed memory accessible via SvMAGIC() on the
+scalar. It now updates the linked list to remove each piece of magic as it is
+freed.
+
+=item *
+
+Under ithreads, the regex in C<PL_reg_curpm> is now reference counted. This
+eliminates a lot of hackish work-arounds to cope with it not being reference
+counted.
+
+=item *
+
+C<Perl_mg_magical()> would sometimes incorrectly turn on C<SvRMAGICAL()>
+This has been fixed.
+
+=item *
+
+The B<public> IV and NV flags are now not set if the string value has trailing
+"garbage". This behaviour is consistent with not setting the public IV or NV
+flags if the value is out of range for the type.
 
 =back
 

--
Perl5 Master Repository

Reply via email to