-=head1 Perl TO-DO List
+=head1 NAME
+
+perltodo - Perl TO-DO List
+
+=head1 DESCRIPTION
This is a list of wishes for Perl. It is maintained by Nathan
Torkington for the Perl porters. Send updates to
investigated them, none met our needs. Since then, Jitterbug has
matured, and may be worth reinvestigation.
-The system we've developed will eventually be recipient of perlbug
-mail. New bugs are entered into a mysql database, and sent on to
+The system we've developed is the recipient of perlbug mail, and any
+followups it generates from perl5-porters. New bugs are entered
+into a mysql database, and sent on to
perl5-porters with the subject line rewritten to include a "ticket
number" (unique ID for the new bug). If the incoming message already
had a ticket number in the subject line, then the message is logged
against that bug. There is a separate email interface (not forwarding
to p5p) that permits porters to claim, categorize, and close tickets.
-The next desire is a web interface. It is hoped that code can be
-reused between the mail and the web interfaces.
+There is also a web interface to the system at http://bugs.perl.org.
The current delay in implementation is caused by perl.org lockups.
One suspect is the mail handling system, possibly going into loops.
-We're probably going to need a bugmaster, someone who will look at
+We still desperately need a bugmaster, someone who will look at
every new "bug" and kill those that we already know about, those
that are not bugs at all, etc.
This value may or may not be accurate, but it certainly is
eye-catching. For some things perl5 is faster than perl4, but often
-the reliability and extensability have come at a cost of speed. The
+the reliability and extensibility have come at a cost of speed. The
benchmark suite that Gisle released earlier has been hailed as both a
fantastic solution and as a source of entirely meaningless figures.
Do we need to test "real applications"? Can you do so? Anyone have
=back
-=head2 Filenames
-
-Make filenames in the distribution and in the standard module set
-be 8.3 friendly where feasible. Good luck changing the standard
-modules, though. B<Done>.
-
=head1 Configure
Andy Dougherty maintain(ed|s) a list of "todo" items for the configure
stat(), or tell can fit into a perl number without losing precision.
Work with the perl-64bit mailing list on perl.org.
-=head2 Figure a way out of $^(capital letter)
-
-Figure out a clean way to extend $^(capital letter) beyond
-the 26 alphabets. (${^WORD} maybe?)
-
=head2 Prototypes
=over 4
=back
-=head2 Built-in globbing
-
-Currently the C<E<lt>*.cE<gt>> syntax calls the c shell. This causes
-problems on sites without csh, systems where fork() is expensive, and
-setuid environments. Decide between Glob::BSD and File::KGlob, move
-it into the core, and make Perl use it for globbing. Ben Holzman and
-Tye McQueen have claimed the pumpkin for this.
-
-=head2 Proper tied array support
-
-This was B<done> in 5.005 by Nick Ing-Simmons.
-
=head1 Perl Internals
=head2 magic_setisa
C<magic_setisa> should be made to update %FIELDS [???]
-=head2 Foreign lines
-
-Perl should be more generous in accepting foreign line terminations.
-Mostly B<done> in 5.005.
-
=head2 Garbage Collection
There was talk of a mark-and-sweep garbage collector at TPC2, but the
Yeah, I hope to implement it someday too. The points that were
raised in TPC2 were all to do with calling DESTROY() methods, but
-I think we can accomodate that by extending bless() to stash
+I think we can accommodate that by extending bless() to stash
extra information for objects so we track their lifetime accurately
for those that want their DESTROY() to be predictable (this will be
a speed hit, naturally, and will therefore be optional, naturally. :)
-
+
[N.B. Don't even ask me about this now! When I have the time to
write a cogent summary, I'll post it.]
=head2 Namespace cleanup
- symbol-space: "pl_" prefix for all global vars
- "Perl_" prefix for all functions
-
-B<Done>.
-
- CPP-space: restrict what we export from headers
- stop malloc()/free() pollution unless asked
+ CPP-space: restrict CPP symbols exported from headers
header-space: move into CORE/perl/
API-space: begin list of things that constitute public api
+ env-space: Configure should use PERL_CONFIG instead of CONFIG etc.
=head2 MULTIPLICITY
Ronald Kimball (rjk@linguist.dartmouth.edu) has volunteered.
+=back
+
=head2 Include a search tool
perldoc should be able to 'grep' fulltext indices of installed POD
No documentation for perl function `random stuff' found
The following entry in perlfunc.pod matches /random/a:
=item rand EXPR
-
+
=item rand
-
+
Returns a random fractional number greater than or equal to C<0> and less
than the value of EXPR. (EXPR should be positive.) If EXPR is
omitted, the value C<1> is used. Automatically calls C<srand()> unless
C<srand()> has already been called. See also C<srand()>.
-
+
(Note: If your rand function consistently returns numbers that are too
large or too small, then your version of Perl was probably compiled
with the wrong number of RANDBITS.)
=head2 Install ALL Documentation
Make the standard documentation kit include the VMS, OS/2, Win32,
-Threads, etc information.
+Threads, etc information. installperl and pod/Makefile should know
+enough to copy README.foo to perlfoo.pod before building everything,
+when appropriate.
=head2 Outstanding issues to be documented
get placed in the right places in the real manpages, either. This
needs work.
+=head2 Adapt www.linuxhq.com for Perl
+
+This should help glorify documentation and get more people involved in
+perl development.
+
=head2 Replace man with a perl program
Can we reimplement man in Perl? Tom has a start. I believe some of
We could use more work on helping people understand Perl's new
Unicode support that Larry has created.
-=head2 Explain tool
-
-Given a piece of Perl code, say what it does. B::Deparse is doing
-this. B<Done>.
-
=head1 Modules
=head2 Update the POSIX extension to conform with the POSIX 1003.1 Edition 2
Which modules should be added to the standard distribution? This ties
in with the SDK discussed on the perl-sdk list at perl.org.
-=head2 ISA.pm
-
-Rename and alter ISA.pm. B<Done>. It is now base.pm.
-
=head2 Profiler
Make the profiler (Devel::DProf) part of the standard release, and
=back
-=head2 Exceptions
-
-Figure out a coherent exception model, and implement it. Graham's
-Error.pm is an OO module that (I believe) requires core support.
-Are objects the right basis for this? Can it be done using the same
-text that the rest of Perl works on? The builtins will need to agree
-on a system.
-
=head2 Procedural options
Support procedural interfaces for the common cases of Perl's
=head1 Win32 Stuff
-=head2 Automate maintenance of most PERL_OBJECT code
-
-B<Done>, says Sarathy.
-
-=head2 Get PERL_OBJECT building under gcc
-
-B<Part done>, according to Sarathy. It builds under egcs on win32,
-but doesn't run for occult reasons. If anyone knows the right
-breed of chicken to sacrifice, please speak up.
-
=head2 Rename new headers to be consistent with the rest
=head2 Sort out the spawnvp() mess
=head2 Work out DLL versioning
-=head2 Get PERL_OBJECT building on non-win32
-
=head2 Style-check
=head1 Would be nice to have
=item Use posix calls internally where possible
-=item gettimeofday
-
-Joshua Pritikin sent patches to p5p in early December 1998.
-
=item format BOTTOM
-=item -iprefix.
-
-Added in 5.004_70. B<Done>
-
=item -i rename file only when successfully changed
=item All ARGV input should act like <>
=item support in perlmain to rerun debugger
-=item reference to compiled regexp
-
-B<done> This is the qr// support in 5.005.
-
=item lvalue functions
Tuomas Lukka, on behalf of the PDL project, greatly desires this and
=head2 constant function cache
-=head2 eval qw() at compile time
-
-qw() is presently compiled as a call to split. This means the split
-happens at runtime. Change this so qw() is compiled as a real list
-assignment. This also avoids surprises like:
-
- $a = () = qw(What will $a hold?);
-
-B<Done>. Tom Hughes submitted a patch that went into 5.005_55.
-
=head2 foreach(reverse...)
=head2 Cache eval tree
=item structured types
-=item autocroak?
-
-B<Done>. This is the Fatal.pm module, so any builtin that that does
-not return success automatically die()s. If you're feeling brave, tie
-this in with the unified exceptions scheme.
-
=item Modifiable $1 et al
The intent is for this to be a means of editing the matched portions of
=head2 Making my() work on "package" variables
Being able to say my($Foo::Bar), something that sounds ludicrous and
-the 5.006 pumpking has mocked.
+the 5.6 pumpking has mocked.
=head2 "or" testing defined not truth
but if the first argument was given and is "0", then it will be
considered false by C<||> and C<5> used instead. Really we want
-an C<||>-like construct that behaves like:
+an C<||>-like operator that behaves like:
$children = shift;
$children = 5 unless defined $children;
-Namely, a C<||> that tests defined-ness rather than truth. One
-was discussed, and a patch submitted, but the objections were many:
-
-=over 4
-
-=item Punctuation
-
-We're running out of punctuation. C<|||>, the suggested operator, is
-very very verbose.
-
-=item Orthogonality
-
-To work like the other logical operators, there'd need to be C<|||=>
-and "English" equivalents (as there is "or" for "||"). We couldn't
-settle on an equivalent we liked. Does there also have to be an "&&"
-that tests truth?
-
-=back
-
-While there were objections, many still feel the need.
+Namely, a C<||> that tests defined-ness rather than truth. One was
+discussed, and a patch submitted, but the objections were many. While
+there were objections, many still feel the need. At least it was
+decided that C<??> is the best name for the operator.
=head2 "dynamic" lexicals
Workarounds to help Win32 dynamic loading.
-=head2 Status variable
-
-$^C to track compiler/checker status. B<Done> in 5.005_54.
-
=head2 END blocks
-END blocks need saving in compiled output.
+END blocks need saving in compiled output, now that CHECK blocks
+are available.
=head2 _AUTOLOAD
Can we install modules as bytecode?
+=head1 Recently Finished Tasks
+
+=head2 Figure a way out of $^(capital letter)
+
+Figure out a clean way to extend $^(capital letter) beyond
+the 26 alphabets. (${^WORD} maybe?)
+
+Mark-Jason Dominus sent a patch which went into 5.005_56.
+
+=head2 Filenames
+
+Keep filenames in the distribution and in the standard module set
+be 8.3 friendly where feasible. Good luck changing the standard
+modules, though.
+
+=head2 Foreign lines
+
+Perl should be more generous in accepting foreign line terminations.
+Mostly B<done> in 5.005.
+
+=head2 Namespace cleanup
+
+ symbol-space: "pl_" prefix for all global vars
+ "Perl_" prefix for all functions
+
+ CPP-space: stop malloc()/free() pollution unless asked
+
+=head2 ISA.pm
+
+Rename and alter ISA.pm. B<Done>. It is now base.pm.
+
+=head2 gettimeofday
+
+See Time::HiRes.
+
+=head2 autocroak?
+
+This is the Fatal.pm module, so any builtin that does
+not return success automatically die()s. If you're feeling brave, tie
+this in with the unified exceptions scheme.
+
=cut