X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltodo.pod;h=c071e2a10c9d5ebacfc3acfba3a88ef5de37c7e8;hb=b37c2d43c8bccbefe3985273e9661833102148d0;hp=771bd8945720e5a378644805c5e1931dd0e9f395;hpb=0abe3f7c711f6721217c5d47ec581395dd1981da;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 771bd89..c071e2a 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -4,226 +4,324 @@ 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. +=item * -=head1 pragmata +C should be turned into a lexical pragma. +C should, too (probably). -=head2 lexical pragmas +=back -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. +=head2 Needed for a 5.9.5 release -=head2 use less 'memory' +=over -Investigate trade offs to switch out perl's choices on memory usage. -Particularly perl should be able to give memory back. +=item * +Implement L -=head1 prototypes and functions +=item * +Implement L -=head2 _ prototype character +=back -Study the possibility of adding a new prototype character, C<_>, meaning -"this argument defaults to $_". +=head2 Needed for a 5.9.6 release -=head2 inlining autoloaded constants +Stabilisation. If all goes well, this will be the equivalent of a 5.10-beta. -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. +=head1 Tasks that only need Perl knowledge -=head2 Finish off lvalue functions +=head2 common test code for timed bail out -The old perltodo notes "They don't work in the debugger, and they don't work for -list or hash slices." +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. -=head1 Unicode and UTF8 +=head2 POD -> HTML conversion in the core still sucks -=head2 Implicit Latin 1 => Unicode translation +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. -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 addition of C and its related modules may make this task +easier to complete. -=head2 UTF8 caching code +=head2 Parallel testing -The string position/offset cache is not optional. It should be. +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