From: Rafael Garcia-Suarez Date: Fri, 30 Dec 2005 15:10:41 +0000 (+0000) Subject: Update perltodo. First shot at perl593delta. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=78ef48ad54f3f3d026ec9b5e1065ffce87f99844;p=p5sagit%2Fp5-mst-13.2.git Update perltodo. First shot at perl593delta. p4raw-id: //depot/perl@26539 --- diff --git a/pod/perl593delta.pod b/pod/perl593delta.pod index b6f7b40..04ad625 100644 --- a/pod/perl593delta.pod +++ b/pod/perl593delta.pod @@ -15,18 +15,92 @@ L for the differences between 5.8.0 and 5.9.2. C<_> is now forced to be a bareword after a filetest operator. This solves a number of misparsing issues when a global C<_> subroutine is defined. +=head2 C + +C without arguments now defaults to C<$_>. + +=head2 Magic goto and eval + +The construct C is now disallowed. (Note that the +similar construct, but with C instead, was already forbidden.) + +=head2 C<$#> has been removed + +The deprecated C<$#> variable (output format for numbers) has been +removed. A new warning, C<$# is no longer supported>, has been added. + +=head2 C<:unique> + +The C<:unique> attribute has been made a now-op, since its current +implementation was fundamentally flawed and not threadsafe. + =head1 Core Enhancements +=head2 Switch and Smart Match operator + +=head2 C + +=head2 C + +Perl has now support for the C special subroutine. Like +C, C is called once per package; however, it is called +just before cloning starts, and in the context of the parent thread. If it +returns a true value, then no objects of that class will be cloned. See +L for details. + +=head2 C<${^CHILD_ERROR_NATIVE}> + +A new internal variable, C<${^CHILD_ERROR_NATIVE}>, gives the native +status returned by the last pipe close, backtick command, successful call +to wait() or waitpid(), or from the system() operator. See L for +details. + +=head2 Assertions + +The support for assertions, introduced in perl 5.9.0, has been improved. +The syntax for the C<-A> command-line switch has changed; it now accepts +an optional module name, defaulting to C. See +L and L. + +=head2 Unicode Character Database 4.1.0 + +The copy of the Unicode Character Database included in Perl 5.9 has +been updated to 4.1.0. + =head1 Modules and Pragmata +=head2 C + +=head2 C + +=head2 C + +=head2 C + +=head2 C + +=head2 C + =head1 Utility Changes +=head2 C + =head1 Documentation =head1 Performance Enhancements =head1 Installation and Configuration Improvements +=head2 New Or Improved Platforms + +Perl is being ported to Symbian OS. See L for more +information. + +=head2 Module auxiliary files + +README files and changelogs for CPAN modules bundled with perl are no +longer installed. + =head1 Selected Bug Fixes =head2 C @@ -43,10 +117,70 @@ SCALAR ref while "strict refs" in use>. (However, C and C are still allowed. Those constructs are discouraged anyway.) +=head2 Smaller fixes + +=over 4 + +=item * + +C now works better with directories where access rights are more +restrictive than usual. + +=item * + +Several memory leaks in ithreads were closed. + +=item * + +C now works better with non-default C<$/> settings. + +=item * + +You can now use the C operator to demultiply a C list. This used +to raise a syntax error. + +=back + +=head2 More Unicode Fixes + +=over 4 + +=item * + +chr() on a negative value now gives C<\x{FFFD}>, the Unicode replacement +character, unless when the C pragma is in effect, where the low +eight bytes of the value are used. + +=back + =head1 New or Changed Diagnostics +=head2 Attempt to set length of freed array + +This is a new warning, produced in situations like the following one: + + $r = do {my @a; \$#a}; + $$r = 503; + +=head2 Search pattern not terminated or ternary operator parsed as search pattern + +This syntax error indicates that the lexer couldn't find the final +delimiter of a C construct. Mentioning the ternary operator in +this error message makes syntax diagnostic easier. + =head1 Changed Internals +XXX consting + +XXX mathoms + +The C macro has been removed. + +=head2 B:: modules inheritance changed + +The inheritance hierarchy of C modules has changed; C now +inherits from C (it used to inherit from C). + =head1 Known Problems =head2 Platform Specific Problems diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 2ab61f3..a8a6d79 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -25,22 +25,14 @@ programming languages offer you 1 line of immortality? The roadmap to 5.10 envisages feature based releases, as various items in this TODO are completed. -=head2 Needed for a 5.9.3 release - -=over - -=item * -Implement L - -=back - =head2 Needed for a 5.9.4 release =over =item * -Review assertions. Review syntax to combine assertions. Can assertions take -advantage of the lexical pragams work? L + +Review assertions. Review syntax to combine assertions. Assertions could take +advantage of the lexical pragmas work. L =back @@ -544,10 +536,8 @@ or a willingness to learn. =head2 lexical pragmas -Reimplement the mechanism of lexical pragmas to be more extensible. Fix -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. +Document the new support for lexical pragmas in 5.9.3 and how %^H works. +Maybe C, C, maybe other pragmas could be made lexical. =head2 Attach/detach debugger from running program