=head1 NAME perltodo - Perl TO-DO List =head1 DESCRIPTION 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 Tasks that only need Perl knowledge =head2 common test code for timed bail out 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 POD -> HTML conversion in the core still sucks 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. =head2 Make Schwern poorer We should have for everything. When all the core's modules are tested, Schwern has promised to donate to $500 to TPF. We may need volunteers to hold him upside down and shake vigorously in order to actually extract the cash. See F for the 3 remaining modules that need tests. =head2 Improve the coverage of the core tests Use Devel::Cover to ascertain the core's test coverage, then add tests that are currently missing. =head2 test B A full test suite for the B module would be nice. =head2 A decent benchmark perlbench seems impervious to any recent changes made to the perl core. It would be useful to have a reasonable general benchmarking suite that roughly represented what current perl programs do, and measurably reported whether tweaks to the core improve, degrade or don't really affect performance, to guide people attempting to optimise the guts of perl. Gisle would welcome new tests for perlbench. =head2 fix tainting bugs Fix the bugs revealed by running the test suite with the C<-t> switch (via C). =head2 Dual life everything As part of the "dists" plan, anything that doesn't belong in the smallest perl distribution needs to be dual lifed. Anything else can be too. Figure out what changes would be needed to package that module and its tests up for CPAN, and do so. Test it with older perl releases, and fix the problems you find. =head2 Improving C Investigate whether C could share aggregates properly with only Perl level changes to shared.pm =head2 POSIX memory footprint Ilya observed that use POSIX; eats memory like there's no tomorrow, and at various times worked to cut it down. There is probably still fat to cut out - for example POSIX passes Exporter some very memory hungry data structures. =head1 Tasks that need a little sysadmin-type knowledge Or if you prefer, tasks that you would learn from, and broaden your skills base... =head2 make HTML install work There is an C target in the Makefile. It's marked as "experimental". It would be good to get this tested, make it work reliably, and remove the "experimental" tag. This would include =over 4 =item 1 Checking that cross linking between various parts of the documentation works. In particular that links work between the modules (files with POD in F) and the core documentation (files in F) =item 2 Work out how to split perlfunc into chunks, preferably one per function group, preferably with general case code that could be used elsewhere. Challenges here are correctly identifying the groups of functions that go together, and making the right named external cross-links point to the right page. Things to be aware of are C<-X>, groups such as C to C, two or more C<=items> giving the different parameter lists, such as =item substr EXPR,OFFSET,LENGTH,REPLACEMENT =item substr EXPR,OFFSET,LENGTH =item substr EXPR,OFFSET and different parameter lists having different meanings. (eg C