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