Re: [PATCH] Lighten up glob
[p5sagit/p5-mst-13.2.git] / pod / perltodo.pod
index fd2c244..f38ba88 100644 (file)
@@ -1,4 +1,8 @@
-=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
@@ -26,21 +30,21 @@ several, like gnats and the Debian system, but at the time we
 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.
 
@@ -81,7 +85,7 @@ We need regression/sanity tests for suidperl
 
 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
@@ -90,12 +94,6 @@ slower, and see if there's a way to make them faster.
 
 =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
@@ -113,21 +111,12 @@ problem for free.
 
 =head1 Perl Language
 
-=head2 our ($var)
-
-Declare global variables (lexically or otherwise).
-
 =head2 64-bit Perl
 
 Verify complete 64 bit support so that the value of sysseek, or C<-s>, or
 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
@@ -154,29 +143,12 @@ lexically-scoped subs, e.g. my sub
 
 =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
@@ -185,11 +157,11 @@ Sarathy, I believe, did the work.  Here's what he has to say:
 
 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.]
 
@@ -249,15 +221,10 @@ will be difficult.
 
 =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
 
@@ -318,6 +285,8 @@ subject on perl5-porters.
 
 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
@@ -348,14 +317,14 @@ We need something in the vicinity of:
   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.)
@@ -399,7 +368,9 @@ Make C<perldoc> tell users what they need to add to their .login or
 =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
 
@@ -412,6 +383,11 @@ to be that, but no longer.  The things in perldelta never seemed to
 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
@@ -423,11 +399,6 @@ perldoc to remove the unfeatures like "is slow" and "has no apropos".
 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
@@ -448,10 +419,6 @@ that we should be including?
 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
@@ -480,14 +447,6 @@ Defines shift et al in terms of splice method
 
 =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
@@ -569,14 +528,6 @@ Kurt Starsinic is working on h2ph.  mjd has fixed bugs in a2p in the
 past.  a2p apparently doesn't work on nawk and gawk extensions.
 Graham Barr has an Include module that does h2ph work at runtime.
 
-=head2 POD Converters
-
-Brad's PodParser code needs to become part of the core, and the Pod::*
-and pod2* programs rewritten to use this standard parser.  Currently
-the converters take different options, some behave in different
-fashions, and some are more picky than others in terms of the POD
-files they accept.
-
 =head2 pod2html
 
 A short-term fix: pod2html generates absolute HTML links.  Make it
@@ -622,24 +573,12 @@ pointed out that perllib_mangle() is good for this.
 
 =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
@@ -656,16 +595,8 @@ breed of chicken to sacrifice, please speak up.
 
 =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 <>
@@ -674,10 +605,6 @@ Added in 5.004_70.  B<Done>
 
 =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
@@ -697,16 +624,6 @@ not just subs.
 
 =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
@@ -756,12 +673,6 @@ with syntax, please.
 
 =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
@@ -777,7 +688,7 @@ criticized for being of questionable value.
 =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
 
@@ -793,31 +704,15 @@ which is almost (but not):
 
 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
 
@@ -901,13 +796,10 @@ Typed lexicals should affect B::CC::load_pad.
 
 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
 
@@ -922,4 +814,45 @@ from where newASSIGNOP steals the field).
 
 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