X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltodo.pod;h=a8a6d797cc656c8d6a8f5f1ea164dd8c8c487de4;hb=3246d7a3ad86dfa806dd7e514ae5fd2dacd5c0ef;hp=28a9e31cd489b50281edd3848ae8b52e715dd59f;hpb=d7f8936a2fe7fc93635b0b501d1f941d30d3399f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 28a9e31..a8a6d79 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -4,204 +4,202 @@ perltodo - Perl TO-DO List =head1 DESCRIPTION -This is a list of wishes for Perl. Send updates to -I. If you want to work on any of these -projects, be sure to check the perl5-porters archives for past ideas, -flames, and propaganda. This will save you time and also prevent you -from implementing something that Larry has already vetoed. One set -of archives may be found at: +This is a list of wishes for Perl. The tasks we think are smaller or easier +are listed first. Anyone is welcome to work on any of these, but it's a good +idea to first contact I to avoid duplication of +effort. By all means contact a pumpking privately first if you prefer. + +Whilst patches to make the list shorter are most welcome, ideas to add to +the list are also encouraged. Check the perl5-porters archives for past +ideas, and any discussion about them. One set of archives may be found at: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ -=head1 assertions +What can we offer you in return? Fame, fortune, and everlasting glory? Maybe +not, but if your patch is incorporated, then we'll add your name to the +F file, which ships in the official distribution. How many other +programming languages offer you 1 line of immortality? -Clean up and finish support for assertions. See L. +=head1 The roadmap to 5.10 -=head1 iCOW +The roadmap to 5.10 envisages feature based releases, as various items in this +TODO are completed. -Sarathy and Arthur have a proposal for an improved Copy On Write which -specifically will be able to COW new ithreads. If this can be implemented -it would be a good thing. +=head2 Needed for a 5.9.4 release -=head1 (?{...}) closures in regexps +=over -Fix (or rewrite) the implementation of the C closures. +=item * -=head1 A re-entrant regexp engine +Review assertions. Review syntax to combine assertions. Assertions could take +advantage of the lexical pragmas work. L -This will allow the use of a regex from inside (?{ }), (??{ }) and -(?(?{ })|) constructs. +=back -=head1 pragmata +=head2 Needed for a 5.9.5 release -=head2 lexical pragmas +=over -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. +=item * +Implement L -=head2 use less 'memory' +=item * +Implement L -Investigate trade offs to switch out perl's choices on memory usage. -Particularly perl should be able to give memory back. +=back -=head1 prototypes and functions +=head2 Needed for a 5.9.6 release -=head2 _ prototype character +Stabilisation. If all goes well, this will be the equivalent of a 5.10-beta. -Study the possibility of adding a new prototype character, C<_>, meaning -"this argument defaults to $_". +=head1 Tasks that only need Perl knowledge -=head2 inlining autoloaded constants +=head2 common test code for timed bail out -Currently the optimiser can inline constants when expressed as subroutines -with prototype ($) that return a constant. Likewise, many packages wrapping -C libraries export lots of constants as subroutines which are AUTOLOADed on -demand. However, these have no prototypes, so can't be seen as constants by -the optimiser. Some way of cheaply (low syntax, low memory overhead) to the -perl compiler that a name is a constant would be great, so that it knows to -call the AUTOLOAD routine at compile time, and then inline the constant. +Write portable self destruct code for tests to stop them burning CPU in +infinite loops. This needs to avoid using alarm, as some of the tests are +testing alarm/sleep or timers. -=head2 Finish off lvalue functions +=head2 POD -> HTML conversion in the core still sucks -The old perltodo notes "They don't work in the debugger, and they don't work for -list or hash slices." +Which is crazy given just how simple POD purports to be, and how simple HTML +can be. It's not actually I simple as it sounds, particularly with the +flexibility POD allows for C<=item>, but it would be good to improve the +visual appeal of the HTML generated, and to avoid it having any validation +errors. See also L, as the layout of installation tree +is needed to improve the cross-linking. -=head1 Unicode and UTF8 +The addition of C and its related modules may make this task +easier to complete. -=head2 Implicit Latin 1 => Unicode translation +=head2 Parallel testing -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 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). +The core regression test suite is getting ever more comprehensive, which has +the side effect that it takes longer to run. This isn't so good. Investigate +whether it would be feasible to give the harness script the B