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