X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperl591delta.pod;h=400f90f893580b3085a1bfaca2f33406b4cf3d7e;hb=8886331dd4b839d5227a0a7455922ad41c74f30f;hp=a120c319d831aecb2cb78c59ca2d03657e3e5370;hpb=3c1c0f694fdfa5db91a2d11b9623a4bcfb0f52ab;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perl591delta.pod b/pod/perl591delta.pod index a120c31..400f90f 100644 --- a/pod/perl591delta.pod +++ b/pod/perl591delta.pod @@ -4,8 +4,8 @@ perldelta - what is new for perl v5.9.1 =head1 DESCRIPTION -This document describes differences between the 5.9.0 release and -the 5.9.1 release. See L for the differences between +This document describes differences between the 5.9.0 and the 5.9.1 +development releases. See L for the differences between 5.8.0 and 5.9.0. =head1 Incompatible Changes @@ -15,7 +15,7 @@ the 5.9.1 release. See L for the differences between The lvalues returned by the three argument form of substr() used to be a "fixed length window" on the original string. In some cases this could cause surprising action at distance or other undefined behaviour. Now the -length of the window adjusts iself to the length of the string assigned to +length of the window adjusts itself to the length of the string assigned to it. =head2 The C<:unique> attribute is only meaningful for globals @@ -44,8 +44,8 @@ overriding the lexical declaration with C. =head2 Tied hashes in scalar context -As of perl 5.8.2, tied hashes did not return anything useful in scalar -context, for example when used as boolean tests: +As of perl 5.8.2/5.9.0, tied hashes did not return anything useful in +scalar context, for example when used as boolean tests: if (%tied_hash) { ... } @@ -127,11 +127,11 @@ The documentation has been revised in places to produce more standard manpages. The long-existing feature of C regexps setting C<$_> and pos() is now documented. +=head1 Performance Enhancements + Sorting arrays in place (C<@a = sort @a>) is now optimized to avoid making a temporary copy of the array. -=head1 Performance Enhancements - The operations involving case mapping on UTF-8 strings (uc(), lc(), C, etc.) have been greatly speeded up. @@ -171,9 +171,6 @@ Reading $^E now preserves $!. Previously, the C code implementing $^E did not preserve C, so reading $^E could cause C and therefore C<$!> to change unexpectedly. -Reentrant functions will (once more) work with C++. 5.8.2 introduced a bugfix -which accidentally broke the compilation of Perl extensions written in C++. - C wasn't in effect in regexp-eval blocks (C). =head1 New or Changed Diagnostics @@ -235,7 +232,7 @@ they are called for. Previously callbacks were only invoked in the C branch. This change should only affect platform maintainers writing configuration hints files. -The portability and clealiness of the Win32 makefiles has been improved. +The portability and cleanliness of the Win32 makefiles has been improved. =head1 Known Problems @@ -253,6 +250,9 @@ On some configurations on AIX 5, one test in F fails. When configured with long doubles, perl may fail tests 224-236 in F on the same platform. +For threaded builds, F has been reported to +fail some tests on HP-UX 10.20. + =head1 To-do for perl 5.10.0 This is a non-exhaustive, non-ordered, non-contractual and non-definitive @@ -261,22 +261,23 @@ list of things to do (or nice to have) for perl 5.10.0 : Clean up and finish support for assertions. See L. Reimplement the mechanism of lexical pragmas to be more extensible. Fix -current pragmas that don't work well with lexical scopes (C, for -example). MJD has ideas on this. +current pragmas that don't work well (or at all) with lexical scopes or in +run-time eval(STRING) (C, C, C for example). MJD has a +preliminary patch that implements this. + +Fix (or rewrite) the implementation of the C closures. Conversions from byte strings to UTF-8 currently map high bit characters to Unicode without translation (or, depending on how you look at it, by -implicitly assuming the byte strings are in Latin-1). This is wrong, -because perl assumes the C locale by default. Thus upgrading a string to -UTF-8 (esp. in place) may change the meaning of its contents regarding -character classes, case mapping, etc. Try to find a way to fix it without -breaking all the legacy code out there (and without making the life of the -XS coders miserable.) +implicitly assuming that the byte strings are in Latin-1). As perl assumes +the C locale by default, upgrading a string to UTF-8 may change the +meaning of its contents regarding character classes, case mapping, etc. +This should probably emit a warning (at least). Introduce a new special block, UNITCHECK, which is run at the end of a compilation unit (module, file, eval(STRING) block). This will correspond to the Perl 6 CHECK. Perl 5's CHECK cannot be changed or removed because the -O/B framework depends on it. +O.pm/B.pm backend framework depends on it. Study the possibility of adding a new prototype character, C<_>, meaning "this argument defaults to $_". @@ -290,7 +291,7 @@ C). Make threads more robust. -Make C and C work. +Make C and C work (opposite of C, etc.). A test suite for the B module would be nice. @@ -301,7 +302,7 @@ A ponie. If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at http://bugs.perl.org/ . There may also be -information at http://www.perl.com/ , the Perl Home Page. +information at http://www.perl.org/ , the Perl Home Page. If you believe you have an unreported bug, please run the B program included with your release. Be sure to trim your bug down