This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
YA resync with mainstem, including VMS patches from others
[perl5.git] / pod / perltodo.pod
1 =head1 NAME
2
3 perltodo - Perl TO-DO List
4
5 =head1 DESCRIPTION
6
7 This is a list of wishes for Perl.  It is maintained by Nathan
8 Torkington for the Perl porters.  Send updates to
9 I<perl5-porters@perl.org>.  If you want to work on any of these
10 projects, be sure to check the perl5-porters archives for past ideas,
11 flames, and propaganda.  This will save you time and also prevent you
12 from implementing something that Larry has already vetoed.  One set
13 of archives may be found at:
14
15     http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/
16
17
18 =head1 Infrastructure
19
20 =head2 Mailing list archives
21
22 Chaim suggests contacting egroup and asking them to archive the other
23 perl.org mailing lists.  Probably not advocacy, but definitely
24 perl6-porters, etc.
25
26 =head2 Bug tracking system
27
28 Richard Foley I<richard@perl.org> is writing one.  We looked at
29 several, like gnats and the Debian system, but at the time we
30 investigated them, none met our needs.  Since then, Jitterbug has
31 matured, and may be worth reinvestigation.
32
33 The system we've developed is the recipient of perlbug mail, and any
34 followups it generates from perl5-porters.  New bugs are entered
35 into a mysql database, and sent on to
36 perl5-porters with the subject line rewritten to include a "ticket
37 number" (unique ID for the new bug).  If the incoming message already
38 had a ticket number in the subject line, then the message is logged
39 against that bug.  There is a separate email interface (not forwarding
40 to p5p) that permits porters to claim, categorize, and close tickets.
41
42 There is also a web interface to the system at http://bugs.perl.org.
43
44 The current delay in implementation is caused by perl.org lockups.
45 One suspect is the mail handling system, possibly going into loops.
46
47 We still desperately need a bugmaster, someone who will look at
48 every new "bug" and kill those that we already know about, those
49 that are not bugs at all, etc.
50
51 =head2 Regression Tests
52
53 The test suite for Perl serves two needs: ensuring features work, and
54 ensuring old bugs have not been reintroduced.  Both need work.
55
56 Brent LaVelle (lavelle@metronet.com) has stepped forward to work on
57 performance tests and improving the size of the test suite.
58
59 =over 4
60
61 =item Coverage
62
63 Do the tests that come with Perl exercise every line (or every block,
64 or ...)  of the Perl interpreter, and if not then how can we make them
65 do so?
66
67 =item Regression
68
69 No bug fixes should be made without a corresponding testsuite addition.
70 This needs a dedicated enforcer, as the current pumpking is either too
71 lazy or too stupid or both and lets enforcement wander all over the
72 map.  :-)
73
74 =item __DIE__
75
76 Tests that fail need to be of a form that can be readily mailed
77 to perlbug and diagnosed with minimal back-and-forth's to determine
78 which test failed, due to what cause, etc.
79
80 =item suidperl
81
82 We need regression/sanity tests for suidperl
83
84 =item The 25% slowdown from perl4 to perl5
85
86 This value may or may not be accurate, but it certainly is
87 eye-catching.  For some things perl5 is faster than perl4, but often
88 the reliability and extensibility have come at a cost of speed.  The
89 benchmark suite that Gisle released earlier has been hailed as both a
90 fantastic solution and as a source of entirely meaningless figures.
91 Do we need to test "real applications"?  Can you do so?  Anyone have
92 machines to dedicate to the task?  Identify the things that have grown
93 slower, and see if there's a way to make them faster.
94
95 =back
96
97 =head1 Configure
98
99 Andy Dougherty maintain(ed|s) a list of "todo" items for the configure
100 that comes with Perl.  See Porting/pumpkin.pod in the latest
101 source release.
102
103 =head2 Install HTML
104
105 Have "make install" give you the option to install HTML as well.  This
106 would be part of Configure.  Andy Wardley (certified Perl studmuffin)
107 will look into the current problems of HTML installation--is
108 'installhtml' preventing this from happening cleanly, or is pod2html
109 the problem?  If the latter, Brad Appleton's pod work may fix the
110 problem for free.
111
112 =head1 Perl Language
113
114 =head2 our ($var)
115
116 Declare global variables (lexically or otherwise).
117
118 =head2 64-bit Perl
119
120 Verify complete 64 bit support so that the value of sysseek, or C<-s>, or
121 stat(), or tell can fit into a perl number without losing precision.
122 Work with the perl-64bit mailing list on perl.org.
123
124 =head2 Prototypes
125
126 =over 4
127
128 =item Named prototypes
129
130 Add proper named prototypes that actually work usefully.
131
132 =item Indirect objects
133
134 Fix prototype bug that forgets indirect objects.
135
136 =item Method calls
137
138 Prototypes for method calls.
139
140 =item Context
141
142 Return context prototype declarations.
143
144 =item Scoped subs
145
146 lexically-scoped subs, e.g. my sub
147
148 =back
149
150 =head1 Perl Internals
151
152 =head2 magic_setisa
153
154 C<magic_setisa> should be made to update %FIELDS [???]
155
156 =head2 Garbage Collection
157
158 There was talk of a mark-and-sweep garbage collector at TPC2, but the
159 (to users) unpredictable nature of its behaviour put some off.
160 Sarathy, I believe, did the work.  Here's what he has to say:
161
162 Yeah, I hope to implement it someday too.  The points that were
163 raised in TPC2 were all to do with calling DESTROY() methods, but
164 I think we can accommodate that by extending bless() to stash
165 extra information for objects so we track their lifetime accurately
166 for those that want their DESTROY() to be predictable (this will be
167 a speed hit, naturally, and will therefore be optional, naturally. :)
168
169 [N.B. Don't even ask me about this now!  When I have the time to
170 write a cogent summary, I'll post it.]
171
172 =head2 Reliable signals
173
174 Sarathy and Dan Sugalski are working on this.  Chip posted a patch
175 earlier, but it was not accepted into 5.005.  The issue is tricky,
176 because it has the potential to greatly slow down the core.
177
178 There are at least three things to consider:
179
180 =over 4
181
182 =item Alternate runops() for signal despatch
183
184 Sarathy and Dan are discussed this on perl5-porters.
185
186 =item Figure out how to die() in delayed sighandler
187
188 =item Add tests for Thread::Signal
189
190 =item Automatic tests against CPAN
191
192 Is there some way to automatically build all/most of CPAN with
193 the new Perl and check that the modules there pass all the tests?
194
195 =back
196
197 =head2 Interpolated regex performance bugs
198
199   while (<>) {
200     $found = 0;
201     foreach $pat (@patterns) {
202       $found++ if /$pat/o;
203     }
204     print if $found;
205   }
206
207 The qr// syntax added in 5.005 has solved this problem, but
208 it needs more thorough documentation.
209
210 =head2 Memory leaks from failed eval/regcomp
211
212 The only known memory leaks in Perl are in failed code or regexp
213 compilation.  Fix this.  Hugo Van Der Sanden will attempt this but
214 won't have tuits until January 1999.
215
216 =head2 Make XS easier to use
217
218 There was interest in SWIG from porters, but nothing has happened
219 lately.
220
221 =head2 Make embedded Perl easier to use
222
223 This is probably difficult for the same reasons that "XS For Dummies"
224 will be difficult.
225
226 =head2 Namespace cleanup
227
228     CPP-space:    restrict CPP symbols exported from headers
229     header-space: move into CORE/perl/
230     API-space:    begin list of things that constitute public api
231     env-space:    Configure should use PERL_CONFIG instead of CONFIG etc.
232
233 =head2 MULTIPLICITY
234
235 Complete work on safe recursive interpreters C<Perl-E<gt>new()>.
236 Sarathy says that a reference implementation exists.
237
238 =head2 MacPerl
239
240 Chris Nandor and Matthias Neeracher are working on better integrating
241 MacPerl into the Perl distribution.
242
243 =head1 Documentation
244
245 There's a lot of documentation that comes with Perl.  The quantity of
246 documentation makes it difficult for users to know which section of
247 which manpage to read in order to solve their problem.  Tom
248 Christiansen has done much of the documentation work in the past.
249
250 =head2 A clear division into tutorial and reference
251
252 Some manpages (e.g., perltoot and perlreftut) clearly set out to
253 educate the reader about a subject.  Other manpages (e.g., perlsub)
254 are references for which there is no tutorial, or are references with
255 a slight tutorial bent.  If things are either tutorial or reference,
256 then the reader knows which manpage to read to learn about a subject,
257 and which manpage to read to learn all about an aspect of that
258 subject.  Part of the solution to this is:
259
260 =head2 Remove the artificial distinction between operators and functions
261
262 History shows us that users, and often porters, aren't clear on the
263 operator-function distinction.  The present split in reference
264 material between perlfunc and perlop hinders user navigation.  Given
265 that perlfunc is by far the larger of the two, move operator reference
266 into perlfunc.
267
268 =head2 More tutorials
269
270 More documents of a tutorial nature could help.  Here are some
271 candidates:
272
273 =over 4
274
275 =item Regular expressions
276
277 Robin Berjon (r.berjon@ltconsulting.net) has volunteered.
278
279 =item I/O
280
281 Mark-Jason Dominus (mjd@plover.com) has an outline for perliotut.
282
283 =item pack/unpack
284
285 This is badly needed.  There has been some discussion on the
286 subject on perl5-porters.
287
288 =item Debugging
289
290 Ronald Kimball (rjk@linguist.dartmouth.edu) has volunteered.
291
292 =back
293
294 =head2 Include a search tool
295
296 perldoc should be able to 'grep' fulltext indices of installed POD
297 files.  This would let people say:
298
299   perldoc -find printing numbers with commas
300
301 and get back the perlfaq entry on 'commify'.
302
303 This solution, however, requires documentation to contain the keywords
304 the user is searching for.  Even when the users know what they're
305 looking for, often they can't spell it.
306
307 =head2 Include a locate tool
308
309 perldoc should be able to help people find the manpages on a
310 particular high-level subject:
311
312   perldoc -find web
313
314 would tell them manpages, web pages, and books with material on web
315 programming.  Similarly C<perldoc -find databases>, C<perldoc -find
316 references> and so on.
317
318 We need something in the vicinity of:
319
320   % perl -help random stuff
321   No documentation for perl function `random stuff' found
322   The following entry in perlfunc.pod matches /random/a:
323     =item rand EXPR
324
325     =item rand
326
327     Returns a random fractional number greater than or equal to C<0> and less
328     than the value of EXPR.  (EXPR should be positive.)  If EXPR is
329     omitted, the value C<1> is used.  Automatically calls C<srand()> unless
330     C<srand()> has already been called.  See also C<srand()>.
331
332     (Note: If your rand function consistently returns numbers that are too
333     large or too small, then your version of Perl was probably compiled
334     with the wrong number of RANDBITS.)
335   The following pod pages seem to have /stuff/a:
336     perlfunc.pod        (7 hits)
337     perlfaq7.pod        (6 hits)
338     perlmod.pod         (4 hits)
339     perlsyn.pod         (3 hits)
340     perlfaq8.pod        (2 hits)
341     perlipc.pod         (2 hits)
342     perl5004delta.pod   (1 hit)
343     perl5005delta.pod   (1 hit)
344     perlcall.pod        (1 hit)
345     perldelta.pod       (1 hit)
346     perlfaq3.pod        (1 hit)
347     perlfaq5.pod        (1 hit)
348     perlhist.pod        (1 hit)
349     perlref.pod         (1 hit)
350     perltoc.pod         (1 hit)
351     perltrap.pod        (1 hit)
352   Proceed to open perlfunc.pod? [y] n
353   Do you want to speak perl interactively? [y] n
354   Should I dial 911? [y] n
355   Do you need psychiatric help? [y] y
356   <PELIZA> Hi, what bothers you today?
357            A Python programmer in the next cubby is driving me nuts!
358   <PELIZA> Hmm, thats fixable.  Just [rest censored]
359
360 =head2 Separate function manpages by default
361
362 Perl should install 'manpages' for every function/operator into the
363 3pl or 3p manual section.  By default.  The splitman program in the
364 Perl source distribution does the work of turning big perlfunc into
365 little 3p pages.
366
367 =head2 Users can't find the manpages
368
369 Make C<perldoc> tell users what they need to add to their .login or
370 .cshrc to set their MANPATH correctly.
371
372 =head2 Install ALL Documentation
373
374 Make the standard documentation kit include the VMS, OS/2, Win32,
375 Threads, etc information.  installperl and pod/Makefile should know
376 enough to copy README.foo to perlfoo.pod before building everything,
377 when appropriate.
378
379 =head2 Outstanding issues to be documented
380
381 Tom has a list of 5.005_5* features or changes that require
382 documentation.
383
384 Create one document that coherently explains the delta between the
385 last camel release and the current release.  perldelta was supposed
386 to be that, but no longer.  The things in perldelta never seemed to
387 get placed in the right places in the real manpages, either.  This
388 needs work.
389
390 =head2 Adapt www.linuxhq.com for Perl
391
392 This should help glorify documentation and get more people involved in
393 perl development.
394
395 =head2 Replace man with a perl program
396
397 Can we reimplement man in Perl?  Tom has a start.  I believe some of
398 the Linux systems distribute a manalike.  Alternatively, build on
399 perldoc to remove the unfeatures like "is slow" and "has no apropos".
400
401 =head2 Unicode tutorial
402
403 We could use more work on helping people understand Perl's new
404 Unicode support that Larry has created.
405
406 =head1 Modules
407
408 =head2 Update the POSIX extension to conform with the POSIX 1003.1 Edition 2
409
410 The current state of the POSIX extension is as of Edition 1, 1991,
411 whereas the Edition 2 came out in 1996.  ISO/IEC 9945:1-1996(E),
412 ANSI/IEEE Std 1003.1, 1996 Edition. ISBN 1-55937-573-6.  The updates
413 were legion: threads, IPC, and real time extensions.
414
415 =head2 Module versions
416
417 Automate the checking of versions in the standard distribution so
418 it's easy for a pumpking to check whether CPAN has a newer version
419 that we should be including?
420
421 =head2 New modules
422
423 Which modules should be added to the standard distribution?  This ties
424 in with the SDK discussed on the perl-sdk list at perl.org.
425
426 =head2 Profiler
427
428 Make the profiler (Devel::DProf) part of the standard release, and
429 document it well.
430
431 =head2 Tie Modules
432
433 =over 4
434
435 =item VecArray
436
437 Implement array using vec().  Nathan Torkington has working code to
438 do this.
439
440 =item SubstrArray
441
442 Implement array using substr()
443
444 =item VirtualArray
445
446 Implement array using a file
447
448 =item ShiftSplice
449
450 Defines shift et al in terms of splice method
451
452 =back
453
454 =head2 Procedural options
455
456 Support procedural interfaces for the common cases of Perl's
457 gratuitously OOO modules.  Tom objects to "use IO::File" reading many
458 thousands of lines of code.
459
460 =head2 RPC
461
462 Write a module for transparent, portable remote procedure calls.  (Not
463 core).  This touches on the CORBA and ILU work.
464
465 =head2 y2k localtime/gmtime
466
467 Write a module, Y2k::Catch, which overloads localtime and gmtime's
468 returned year value and catches "bad" attempts to use it.
469
470 =head2 Export File::Find variables
471
472 Make File::Find export C<$name> etc manually, at least if asked to.
473
474 =head2 Ioctl
475
476 Finish a proper Ioctl module.
477
478 =head2 Debugger attach/detach
479
480 Permit a user to debug an already-running program.
481
482 =head2 Regular Expression debugger
483
484 Create a visual profiler/debugger tool that stepped you through the
485 execution of a regular expression point by point.  Ilya has a module
486 to color-code and display regular expression parses and executions.
487 There's something at http://tkworld.org/ that might be a good start,
488 it's a Tk/Tcl RE wizard, that builds regexen of many flavours.
489
490 =head2 Alternative RE Syntax
491
492 Make an alternative regular expression syntax that is accessed through
493 a module.  For instance,
494
495   use RE;
496   $re = start_of_line()
497       ->literal("1998/10/08")
498       ->optional( whitespace() )
499       ->literal("[")
500       ->remember( many( or( "-", digit() ) ) );
501
502   if (/$re/) {
503     print "time is $1\n";
504   }
505
506 Newbies to regular expressions typically only use a subset of the full
507 language.  Perhaps you wouldn't have to implement the full feature set.
508
509 =head2 Bundled modules
510
511 Nicholas Clark (nick@flirble.org) had a patch for storing modules in
512 zipped format.  This needs exploring and concluding.
513
514 =head2 Expect
515
516 Adopt IO::Tty, make it as portable as Don Libes' "expect" (can we link
517 against expect code?), and perfect a Perl version of expect.  IO::Tty
518 and expect could then be distributed as part of the core distribution,
519 replacing Comm.pl and other hacks.
520
521 =head2 GUI::Native
522
523 A simple-to-use interface to native graphical abilities would
524 be welcomed.  Oh, Perl's access Tk is nice enough, and reasonably
525 portable, but it's not particularly as fast as one would like.
526 Simple access to the mouse's cut buffer or mouse-presses shouldn't
527 required loading a few terabytes of Tk code.
528
529 =head2 Update semibroken auxiliary tools; h2ph, a2p, etc.
530
531 Kurt Starsinic is working on h2ph.  mjd has fixed bugs in a2p in the
532 past.  a2p apparently doesn't work on nawk and gawk extensions.
533 Graham Barr has an Include module that does h2ph work at runtime.
534
535 =head2 POD Converters
536
537 Brad's PodParser code needs to become part of the core, and the Pod::*
538 and pod2* programs rewritten to use this standard parser.  Currently
539 the converters take different options, some behave in different
540 fashions, and some are more picky than others in terms of the POD
541 files they accept.
542
543 =head2 pod2html
544
545 A short-term fix: pod2html generates absolute HTML links.  Make it
546 generate relative links.
547
548 =head2 Podchecker
549
550 Something like lint for Pod would be good.  Something that catches
551 common errors as well as gross ones.  Brad Appleton is putting
552 together something as part of his PodParser work.
553
554 =head1 Tom's Wishes
555
556 =head2 Webperl
557
558 Design a webperl environment that's as tightly integrated and as
559 easy-to-use as Perl's current command-line environment.
560
561 =head2 Mobile agents
562
563 More work on a safe and secure execution environment for mobile
564 agents would be neat; the Safe.pm module is a start, but there's a
565 still a lot to be done in that area.  Adopt Penguin?
566
567 =head2 POSIX on non-POSIX
568
569 Standard programming constructs for non-POSIX systems would help a
570 lot of programmers stuck on primitive, legacy systems.  For example,
571 Microsoft still hasn't made a usable POSIX interface on their clunky
572 systems, which means that standard operations such as alarm() and
573 fork(), both critical for sophisticated client-server programming,
574 must both be kludged around.
575
576 I'm unsure whether Tom means to emulate alarm( )and fork(), or merely
577 to provide a document like perlport.pod to say which features are
578 portable and which are not.
579
580 =head2 Portable installations
581
582 Figure out a portable semi-gelled installation, that is, one without
583 full paths.  Larry has said that he's thinking about this.  Ilya
584 pointed out that perllib_mangle() is good for this.
585
586 =head1 Win32 Stuff
587
588 =head2 Rename new headers to be consistent with the rest
589
590 =head2 Sort out the spawnvp() mess
591
592 =head2 Work out DLL versioning
593
594 =head2 Style-check
595
596 =head1 Would be nice to have
597
598 =over 4
599
600 =item C<pack "(stuff)*">
601
602 =item Contiguous bitfields in pack/unpack
603
604 =item lexperl
605
606 =item Bundled perl preprocessor
607
608 =item Use posix calls internally where possible
609
610 =item format BOTTOM
611
612 =item -i rename file only when successfully changed
613
614 =item All ARGV input should act like <>
615
616 =item report HANDLE [formats].
617
618 =item support in perlmain to rerun debugger
619
620 =item lvalue functions
621
622 Tuomas Lukka, on behalf of the PDL project, greatly desires this and
623 Ilya has a patch for it (probably against an older version of Perl).
624 Tuomas points out that what PDL really wants is lvalue I<methods>,
625 not just subs.
626
627 =back
628
629 =head1 Possible pragmas
630
631 =head2 'less'
632
633 (use less memory, CPU)
634
635 =head1 Optimizations
636
637 =head2 constant function cache
638
639 =head2 foreach(reverse...)
640
641 =head2 Cache eval tree
642
643 Unless lexical outer scope used (mark in &compiling?).
644
645 =head2 rcatmaybe
646
647 =head2 Shrink opcode tables
648
649 Via multiple implementations selected in peep.
650
651 =head2 Cache hash value
652
653 Not a win, according to Guido.
654
655 =head2 Optimize away @_ where possible
656
657 =head2 Optimize sort by { $a <=> $b }
658
659 Greg Bacon added several more sort optimizations.  These have
660 made it into 5.005_55, thanks to Hans Mulder.
661
662 =head2 Rewrite regexp parser for better integrated optimization
663
664 The regexp parser was rewritten for 5.005.  Ilya's the regexp guru.
665
666 =head1 Vague possibilities
667
668 =over 4
669
670 =item ref function in list context
671
672 This seems impossible to do without substantially breaking code.
673
674 =item make tr/// return histogram in list context?
675
676 =item Loop control on do{} et al
677
678 =item Explicit switch statements
679
680 Nobody has yet managed to come up with a switch syntax that would
681 allow for mixed hash, constant, regexp checks.  Submit implementation
682 with syntax, please.
683
684 =item compile to real threaded code
685
686 =item structured types
687
688 =item Modifiable $1 et al
689
690 The intent is for this to be a means of editing the matched portions of
691 the target string.
692
693 =back
694
695 =head1 To Do Or Not To Do
696
697 These are things that have been discussed in the past and roundly
698 criticized for being of questionable value.
699
700 =head2 Making my() work on "package" variables
701
702 Being able to say my($Foo::Bar), something that sounds ludicrous and
703 the 5.6 pumpking has mocked.
704
705 =head2 "or" testing defined not truth
706
707 We tell people that C<||> can be used to give a default value to a
708 variable:
709
710     $children = shift || 5;             # default is 5 children
711
712 which is almost (but not):
713
714     $children = shift;
715     $children = 5 unless $children;
716
717 but if the first argument was given and is "0", then it will be
718 considered false by C<||> and C<5> used instead.  Really we want
719 an C<||>-like operator that behaves like:
720
721     $children = shift;
722     $children = 5 unless defined $children;
723
724 Namely, a C<||> that tests defined-ness rather than truth.  One was
725 discussed, and a patch submitted, but the objections were many.  While
726 there were objections, many still feel the need.  At least it was
727 decided that C<??> is the best name for the operator.
728
729 =head2 "dynamic" lexicals
730
731   my $x;
732   sub foo {
733     local $x;
734   }
735
736 Localizing, as Tim Bunce points out, is a separate concept from
737 whether the variable is global or lexical.  Chip Salzenberg had
738 an implementation once, but Larry thought it had potential to
739 confuse.
740
741 =head2 "class"-based, rather than package-based "lexicals"
742
743 This is like what the Alias module provides, but the variables would
744 be lexicals reserved by perl at compile-time, which really are indices
745 pointing into the pseudo-hash object visible inside every method so
746 declared.
747
748 =head1 Threading
749
750 =head2 Modules
751
752 Which of the standard modules are thread-safe?  Which CPAN modules?
753 How easy is it to fix those non-safe modules?
754
755 =head2 Testing
756
757 Threading is still experimental.  Every reproducible bug identifies
758 something else for us to fix.  Find and submit more of these problems.
759
760 =head2 $AUTOLOAD
761
762 =head2 exit/die
763
764 Consistent semantics for exit/die in threads.
765
766 =head2 External threads
767
768 Better support for externally created threads.
769
770 =head2 Thread::Pool
771
772 =head2 thread-safety
773
774 Spot-check globals like statcache and global GVs for thread-safety.
775 "B<Part done>", says Sarathy.
776
777 =head2 Per-thread GVs
778
779 According to Sarathy, this would make @_ be the same in threaded
780 and non-threaded, as well as helping solve problems like filehandles
781 (the same filehandle currently cannot be used in two threads).
782
783 =head1 Compiler
784
785 =head2 Optimization
786
787 The compiler's back-end code-generators for creating bytecode or
788 compilable C code could use optimization work.
789
790 =head2 Byteperl
791
792 Figure out how and where byteperl will be built for the various
793 platforms.
794
795 =head2 Precompiled modules
796
797 Save byte-compiled modules on disk.
798
799 =head2 Executables
800
801 Auto-produce executable.
802
803 =head2 Typed lexicals
804
805 Typed lexicals should affect B::CC::load_pad.
806
807 =head2 Win32
808
809 Workarounds to help Win32 dynamic loading.
810
811 =head2 END blocks
812
813 END blocks need saving in compiled output, now that CHECK blocks
814 are available.
815
816 =head2 _AUTOLOAD
817
818 _AUTOLOAD prodding.
819
820 =head2 comppadlist
821
822 Fix comppadlist (names in comppad_name can have fake SvCUR
823 from where newASSIGNOP steals the field).
824
825 =head2 Cached compilation
826
827 Can we install modules as bytecode?
828
829 =head1 Recently Finished Tasks
830
831 =head2 Figure a way out of $^(capital letter)
832
833 Figure out a clean way to extend $^(capital letter) beyond
834 the 26 alphabets.  (${^WORD} maybe?)
835
836 Mark-Jason Dominus sent a patch which went into 5.005_56.
837
838 =head2 Filenames
839
840 Keep filenames in the distribution and in the standard module set
841 be 8.3 friendly where feasible.  Good luck changing the standard
842 modules, though.
843
844 =head2 Foreign lines
845
846 Perl should be more generous in accepting foreign line terminations.
847 Mostly B<done> in 5.005.
848
849 =head2 Namespace cleanup
850
851     symbol-space: "pl_" prefix for all global vars
852                   "Perl_" prefix for all functions
853
854     CPP-space:    stop malloc()/free() pollution unless asked
855
856 =head2 ISA.pm
857
858 Rename and alter ISA.pm.  B<Done>.  It is now base.pm.
859
860 =head2 gettimeofday
861
862 See Time::HiRes.
863
864 =head2 autocroak?
865
866 This is the Fatal.pm module, so any builtin that does
867 not return success automatically die()s.  If you're feeling brave, tie
868 this in with the unified exceptions scheme.
869
870 =cut