summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-11-05 22:19:40 +0000
committerNicholas Clark <nick@ccl4.org>2008-11-05 22:19:40 +0000
commitef98a97c6780190e32876ef0010a28445c10ba91 (patch)
treed2fb4ddbea1e95d30ed7d1cdc437e78d75e05c28
parent19cf888bb06b03d27f15050668ced1ab93fccc6c (diff)
downloadperl-ef98a97c6780190e32876ef0010a28445c10ba91.tar.gz
Try to order and group the "selected bug fixes"
p4raw-id: //depot/maint-5.8/perl@34741
-rw-r--r--pod/perl589delta.pod173
1 files changed, 80 insertions, 93 deletions
diff --git a/pod/perl589delta.pod b/pod/perl589delta.pod
index af705e563f..4da9546d22 100644
--- a/pod/perl589delta.pod
+++ b/pod/perl589delta.pod
@@ -1127,6 +1127,11 @@ already known, or by adopting or enhancing APIs that pass lengths.
C<index> is now faster if the search string is stored in UTF-8 but only contains
characters in the Latin-1 range.
+=item *
+
+The Unicode swatch cache inside the regexp engine is now used. (the lookup had
+a key mismatch, present since the initial implementation). [RT #42839]
+
=back
=head1 Installation and Configuration Improvements
@@ -1298,93 +1303,74 @@ The F<WinCE> directory has been merged into the F<Win32> directory.
=head1 Selected Bug Fixes
-=for FIXME
-
-=over
-
-=item *
-
-UTF-8
-
-Change 28169 - a lot of UTF-8 overloading
-And tie.
-$@
+=head2 Unicode
-=item *
+Many many bugs related to the internal Unicode implementation (UTF-8) have
+been fixed. In particular, long standing bugs related to returning Unicode
+via C<tie>, overloading or C<$@> are now gone, some of which were never
+reported.
-PerlIO fd reference counting. 30269
+C<unpack> will internally convert the string back from UTF-8 on numeric types.
+This is a compramise between the full consistency now in 5.10, and the current
+behaviour, which is often used as a "feature" on string types.
-Fixes inconsistencies. API now doesn't leak C<FILE *>
+Using C<:crlf> and C<UTF-16> IO layers together will now work.
-pushing :crlf after :utf8
+Fixed problems with C<split>, Unicode C</\s+/> and C</ \0/>.
-[ http://groups.google.com/group/perl.perl5.porters/browse_thread/thread/24f9169bd222c4e6/47fb435abc165e16#47fb435abc165e16 ]
+Fixed bug RT #40641 - encoding of Unicode characters in regular expressions.
-=item *
+Fixed a bug where using certain patterns in a regex led to a panic.
+[RT #45337]
-Calling CORE::require()
+=head2 PerlIO
-C<CORE::require> and C<CORE::do> were always parsed as C<require> and C<do>
-when they were overridden. This is now fixed.
+Inconsistencies have been fixed in the reference counting PerlIO uses to keep
+track of Unix file descriptors, and the API used by XS code to manage getting
+and releasing C<FILE *>s
-=item *
+=head2 Magic
-Magic
+Several bugs have been fixed in Magic, the internal system used to implement
+features such as C<tie> and threads sharing.
Some of the bitwise ops were not checking whether their arguments were magical
before using them. [RT #24816]
-Dave's copy fixes.
-
- [ 26569]
- add svt_local slot to magic vtable, and fix local $shared
- [ 26735]
- document svt_copy, svt_dup and svt_local vtable slots
-
-http://public.activestate.com/cgi-bin/perlbrowse/p/30232
-
-Stopped memory leak on long /etc/groups entries
+Magic is no longer invoked twice by the expression C<\&$x>
-=item *
+=head2 Other fixes
-Encoding neutral unpack on numeric types. 23966/27963
+=over
=item *
-while (my $x ...) { ...; redo } shouldn't undef $x.
-In the presence of 'my' in the conditional of a while(), until(),
-or for(;;) loop, add an extra scope to the body so that redo
-doesn't undef the lexical [24412/27978]
+The tokenizer no longer treats =cute (and other words beginning
+with =cut) as a synonym for =cut.
=item *
-strict propagates inside string evals.
+Calling CORE::require()
-IIRC no warnings 'subclass' works properly now too
+C<CORE::require> and C<CORE::do> were always parsed as C<require> and C<do>
+when they were overridden. This is now fixed.
=item *
-=for fixme
-
-Overloading flags are now stored on the referent instead of the reference.
-Previously taking a new, unrelated reference to an object could result in
-the original (blessed) reference being able to access the overload while
-the new reference could not. (Test added in 32016).
+Stopped memory leak on long F</etc/groups> entries.
=item *
-Reblessing an object from a class that doesn't use overloads to one
-that does (or vice versa) is now faster. (31996, 32019, 32025).
-
-
-=item *
+C<while (my $x ...) { ...; redo }> shouldn't C<undef $x>.
-C<encoding> pragma now correctly ignores anything following an C<@> character in
-the C<LC_ALL> and C<LANG> environment variables. (RT # 49646)
+In the presence of C<my> in the conditional of a C<while()>, C<until()>,
+or C<for(;;)> loop, we now add an extra scope to the body so that C<redo>
+doesn't C<undef> the lexical.
=item *
-Magic is no longer invoked twice by the expression C<\&$x>
+The C<encoding> pragma now correctly ignores anything following an C<@>
+character in the C<LC_ALL> and C<LANG> environment variables. [RT # 49646]
=item *
@@ -1393,7 +1379,7 @@ A segfault observed with some gcc 3.3 optimisations is resolved.
=item *
A possible segfault when L<unpack> used in scalar context with C<()> groups
-is resolved. (RT #50256)
+is resolved. [RT #50256]
=item *
@@ -1402,46 +1388,23 @@ a C<system()> call.
=item *
-Fixed problems with split, unicode /\s+/ and / \0/.
-
-=item *
-
Fixed bug RT #37886, unsafe dereferencations were allowed in the argument of
C<defined()> even under the influence of C<use strict 'refs'>.
=item *
-The tokenizer no longer treats =cute (and other words beginning
-with =cut) as a synonym for =cut.
-
-=item *
-
-Fixed bug RT #43207, where lc()/uc() inside sort affected the return
+Fixed bug RT #43207, where C<lc>/C<uc> inside C<sort> affected the return
value.
=item *
-Fixed bug RT #45337, where using certain UTF-8 patterns in a regex led
-to a panic.
-
-=item *
-
-Fixed bug RT #45607, where *{"BONK"} = \&{"BONK"} didn't work correctly.
-
-=item *
-
-The "Unrecognised character 'x'" error now specifies in which column the
-unrecognised character actually occurred.
+Fixed bug RT #45607, where C<*{"BONK"} = \&{"BONK"}> didn't work correctly.
=item *
-Fixed bug RT #35878, croaking from a XSUB called via goto &xsub corrupts perl
+Fixed bug RT #35878, croaking from a XSUB called via C<goto &xsub> corrupts perl
internals.
-=item *
-
-Fix descriptor leak caused by change (30633) to C<PerlIO_exportFILE> (32224)
-
=item *
Fixed bug RT #32539, C<DynaLoader.o> is moved into C<libperl.so> to avoid the need to
@@ -1450,32 +1413,39 @@ provides all codes needed to get a functional embedded perl interpreter runs.
=item *
-Fix bug 36267 so that assigning to a tied hash doesn't change the
-underlying hash (27636)
+Fix bug RT #36267 so that assigning to a tied hash doesn't change the
+underlying hash.
=item *
Fix bug RT #6006, regex replaces using large replacement variables fail some of
-the time, i.e. when substitution contains something like C<${10}> (note the
-bracket) instead of just C<$10> (29616 - 29619).
+the time, I<i.e.> when substitution contains something like C<${10}> (note the
+bracket) instead of just C<$10>.
=item *
-Fix bug RT #55302, a long existed bug when using C<B::CC> on threaded perl which
-uses eval will cause syntax error.
+Fix bug RT #45053, newCONSTSUB() is now thread safe.
=item *
-Fix bug #45053, newCONSTSUB() is now thread safe.
+strict propagates inside string evals.
+
+IIRC no warnings 'subclass' works properly now too
=item *
-Fix bug #42839 - the unicode swatch cache is now used (the lookup had a key
-mismatch).
+=for fixme
+
+Overloading flags are now stored on the referent instead of the reference.
+Previously taking a new, unrelated reference to an object could result in
+the original (blessed) reference being able to access the overload while
+the new reference could not. (Test added in 32016).
=item *
-Fix bug #40641 - fixed encoding of unicode characters in regular expressions.
+Reblessing an object from a class that doesn't use overloads to one
+that does (or vice versa) is now faster. (31996, 32019, 32025).
+
=back
@@ -1527,6 +1497,18 @@ may cause segmentation fault.
=back
+Magic
+
+
+Dave's copy fixes.
+
+ [ 26569]
+ add svt_local slot to magic vtable, and fix local $shared
+ [ 26735]
+ document svt_copy, svt_dup and svt_local vtable slots
+
+http://public.activestate.com/cgi-bin/perlbrowse/p/30232
+
=head3 VMS
=over 4
@@ -1741,12 +1723,17 @@ pragma (28903).
=head2 Invalid escape in the specified encoding in regex; marked by <-- HERE in m/%s/
New error, introduced as part of the fix to RT #40641 to handle encoding
-of unicode characters in regular expression comments.
+of Unicode characters in regular expression comments.
=head2 FETCHSIZE returned a negative value
New error indicating that a tied array has claimed to have a negative
-number of elements (31116).
+number of elements.
+
+=for fixme
+
+The "Unrecognised character 'x'" error now specifies in which column the
+unrecognised character actually occurred.
=head1 Changed Internals