This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
integrate cfgperl changes into mainline
[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
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
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
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
GS
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
e50bb9a1
GS
150=head1 Perl Internals
151
152=head2 magic_setisa
153
154C<magic_setisa> should be made to update %FIELDS [???]
155
e50bb9a1
GS
156=head2 Garbage Collection
157
158There was talk of a mark-and-sweep garbage collector at TPC2, but the
159(to users) unpredictable nature of its behaviour put some off.
160Sarathy, I believe, did the work. Here's what he has to say:
161
162Yeah, I hope to implement it someday too. The points that were
163raised in TPC2 were all to do with calling DESTROY() methods, but
164I think we can accomodate that by extending bless() to stash
165extra information for objects so we track their lifetime accurately
166for those that want their DESTROY() to be predictable (this will be
167a speed hit, naturally, and will therefore be optional, naturally. :)
c47ff5f1 168
e50bb9a1
GS
169[N.B. Don't even ask me about this now! When I have the time to
170write a cogent summary, I'll post it.]
171
172=head2 Reliable signals
173
174Sarathy and Dan Sugalski are working on this. Chip posted a patch
175earlier, but it was not accepted into 5.005. The issue is tricky,
176because it has the potential to greatly slow down the core.
177
178There are at least three things to consider:
179
180=over 4
181
182=item Alternate runops() for signal despatch
183
184Sarathy 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
192Is there some way to automatically build all/most of CPAN with
193the 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
207The qr// syntax added in 5.005 has solved this problem, but
208it needs more thorough documentation.
209
210=head2 Memory leaks from failed eval/regcomp
211
212The only known memory leaks in Perl are in failed code or regexp
213compilation. Fix this. Hugo Van Der Sanden will attempt this but
214won't have tuits until January 1999.
215
216=head2 Make XS easier to use
217
218There was interest in SWIG from porters, but nothing has happened
219lately.
220
221=head2 Make embedded Perl easier to use
222
223This is probably difficult for the same reasons that "XS For Dummies"
224will be difficult.
225
226=head2 Namespace cleanup
227
04c70446 228 CPP-space: restrict CPP symbols exported from headers
e50bb9a1
GS
229 header-space: move into CORE/perl/
230 API-space: begin list of things that constitute public api
766b5730 231 env-space: Configure should use PERL_CONFIG instead of CONFIG etc.
e50bb9a1
GS
232
233=head2 MULTIPLICITY
234
235Complete work on safe recursive interpreters C<Perl-E<gt>new()>.
236Sarathy says that a reference implementation exists.
237
238=head2 MacPerl
239
240Chris Nandor and Matthias Neeracher are working on better integrating
241MacPerl into the Perl distribution.
242
243=head1 Documentation
244
245There's a lot of documentation that comes with Perl. The quantity of
246documentation makes it difficult for users to know which section of
247which manpage to read in order to solve their problem. Tom
248Christiansen has done much of the documentation work in the past.
249
250=head2 A clear division into tutorial and reference
251
252Some manpages (e.g., perltoot and perlreftut) clearly set out to
253educate the reader about a subject. Other manpages (e.g., perlsub)
254are references for which there is no tutorial, or are references with
255a slight tutorial bent. If things are either tutorial or reference,
256then the reader knows which manpage to read to learn about a subject,
257and which manpage to read to learn all about an aspect of that
258subject. Part of the solution to this is:
259
260=head2 Remove the artificial distinction between operators and functions
261
262History shows us that users, and often porters, aren't clear on the
263operator-function distinction. The present split in reference
264material between perlfunc and perlop hinders user navigation. Given
265that perlfunc is by far the larger of the two, move operator reference
266into perlfunc.
267
268=head2 More tutorials
269
270More documents of a tutorial nature could help. Here are some
271candidates:
272
273=over 4
274
275=item Regular expressions
276
277Robin Berjon (r.berjon@ltconsulting.net) has volunteered.
278
279=item I/O
280
281Mark-Jason Dominus (mjd@plover.com) has an outline for perliotut.
282
283=item pack/unpack
284
285This is badly needed. There has been some discussion on the
286subject on perl5-porters.
287
288=item Debugging
289
290Ronald Kimball (rjk@linguist.dartmouth.edu) has volunteered.
291
a45bd81d
GS
292=back
293
e50bb9a1
GS
294=head2 Include a search tool
295
296perldoc should be able to 'grep' fulltext indices of installed POD
297files. This would let people say:
298
299 perldoc -find printing numbers with commas
300
301and get back the perlfaq entry on 'commify'.
302
303This solution, however, requires documentation to contain the keywords
304the user is searching for. Even when the users know what they're
305looking for, often they can't spell it.
306
307=head2 Include a locate tool
308
309perldoc should be able to help people find the manpages on a
310particular high-level subject:
311
312 perldoc -find web
313
314would tell them manpages, web pages, and books with material on web
315programming. Similarly C<perldoc -find databases>, C<perldoc -find
316references> and so on.
317
318We 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
c47ff5f1 324
e50bb9a1 325 =item rand
c47ff5f1 326
e50bb9a1
GS
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()>.
c47ff5f1 331
e50bb9a1
GS
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
362Perl should install 'manpages' for every function/operator into the
3633pl or 3p manual section. By default. The splitman program in the
364Perl source distribution does the work of turning big perlfunc into
365little 3p pages.
366
367=head2 Users can't find the manpages
368
369Make 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
374Make the standard documentation kit include the VMS, OS/2, Win32,
3724d6f4
JD
375Threads, etc information. installperl and pod/Makefile should know
376enough to copy README.foo to perlfoo.pod before building everything,
377when appropriate.
e50bb9a1
GS
378
379=head2 Outstanding issues to be documented
380
381Tom has a list of 5.005_5* features or changes that require
382documentation.
383
384Create one document that coherently explains the delta between the
385last camel release and the current release. perldelta was supposed
386to be that, but no longer. The things in perldelta never seemed to
387get placed in the right places in the real manpages, either. This
388needs work.
389
04c70446
GS
390=head2 Adapt www.linuxhq.com for Perl
391
392This should help glorify documentation and get more people involved in
393perl development.
394
e50bb9a1
GS
395=head2 Replace man with a perl program
396
397Can we reimplement man in Perl? Tom has a start. I believe some of
398the Linux systems distribute a manalike. Alternatively, build on
399perldoc to remove the unfeatures like "is slow" and "has no apropos".
400
401=head2 Unicode tutorial
402
403We could use more work on helping people understand Perl's new
404Unicode support that Larry has created.
405
e50bb9a1
GS
406=head1 Modules
407
408=head2 Update the POSIX extension to conform with the POSIX 1003.1 Edition 2
409
410The current state of the POSIX extension is as of Edition 1, 1991,
411whereas the Edition 2 came out in 1996. ISO/IEC 9945:1-1996(E),
412ANSI/IEEE Std 1003.1, 1996 Edition. ISBN 1-55937-573-6. The updates
413were legion: threads, IPC, and real time extensions.
414
415=head2 Module versions
416
417Automate the checking of versions in the standard distribution so
418it's easy for a pumpking to check whether CPAN has a newer version
419that we should be including?
420
421=head2 New modules
422
423Which modules should be added to the standard distribution? This ties
424in with the SDK discussed on the perl-sdk list at perl.org.
425
e50bb9a1
GS
426=head2 Profiler
427
428Make the profiler (Devel::DProf) part of the standard release, and
429document it well.
430
431=head2 Tie Modules
432
433=over 4
434
435=item VecArray
436
437Implement array using vec(). Nathan Torkington has working code to
438do this.
439
440=item SubstrArray
441
442Implement array using substr()
443
444=item VirtualArray
445
446Implement array using a file
447
448=item ShiftSplice
449
450Defines shift et al in terms of splice method
451
452=back
453
e50bb9a1
GS
454=head2 Procedural options
455
456Support procedural interfaces for the common cases of Perl's
457gratuitously OOO modules. Tom objects to "use IO::File" reading many
458thousands of lines of code.
459
460=head2 RPC
461
462Write a module for transparent, portable remote procedure calls. (Not
463core). This touches on the CORBA and ILU work.
464
465=head2 y2k localtime/gmtime
466
467Write a module, Y2k::Catch, which overloads localtime and gmtime's
468returned year value and catches "bad" attempts to use it.
469
470=head2 Export File::Find variables
471
472Make File::Find export C<$name> etc manually, at least if asked to.
473
474=head2 Ioctl
475
476Finish a proper Ioctl module.
477
478=head2 Debugger attach/detach
479
480Permit a user to debug an already-running program.
481
482=head2 Regular Expression debugger
483
484Create a visual profiler/debugger tool that stepped you through the
485execution of a regular expression point by point. Ilya has a module
486to color-code and display regular expression parses and executions.
487There's something at http://tkworld.org/ that might be a good start,
488it's a Tk/Tcl RE wizard, that builds regexen of many flavours.
489
490=head2 Alternative RE Syntax
491
492Make an alternative regular expression syntax that is accessed through
493a 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
506Newbies to regular expressions typically only use a subset of the full
507language. Perhaps you wouldn't have to implement the full feature set.
508
509=head2 Bundled modules
510
511Nicholas Clark (nick@flirble.org) had a patch for storing modules in
512zipped format. This needs exploring and concluding.
513
514=head2 Expect
515
516Adopt IO::Tty, make it as portable as Don Libes' "expect" (can we link
517against expect code?), and perfect a Perl version of expect. IO::Tty
518and expect could then be distributed as part of the core distribution,
519replacing Comm.pl and other hacks.
520
521=head2 GUI::Native
522
523A simple-to-use interface to native graphical abilities would
524be welcomed. Oh, Perl's access Tk is nice enough, and reasonably
525portable, but it's not particularly as fast as one would like.
526Simple access to the mouse's cut buffer or mouse-presses shouldn't
527required loading a few terabytes of Tk code.
528
529=head2 Update semibroken auxiliary tools; h2ph, a2p, etc.
530
531Kurt Starsinic is working on h2ph. mjd has fixed bugs in a2p in the
532past. a2p apparently doesn't work on nawk and gawk extensions.
533Graham Barr has an Include module that does h2ph work at runtime.
534
535=head2 POD Converters
536
537Brad's PodParser code needs to become part of the core, and the Pod::*
538and pod2* programs rewritten to use this standard parser. Currently
539the converters take different options, some behave in different
540fashions, and some are more picky than others in terms of the POD
541files they accept.
542
543=head2 pod2html
544
545A short-term fix: pod2html generates absolute HTML links. Make it
546generate relative links.
547
548=head2 Podchecker
549
550Something like lint for Pod would be good. Something that catches
551common errors as well as gross ones. Brad Appleton is putting
552together something as part of his PodParser work.
553
554=head1 Tom's Wishes
555
556=head2 Webperl
557
558Design a webperl environment that's as tightly integrated and as
559easy-to-use as Perl's current command-line environment.
560
561=head2 Mobile agents
562
563More work on a safe and secure execution environment for mobile
564agents would be neat; the Safe.pm module is a start, but there's a
565still a lot to be done in that area. Adopt Penguin?
566
567=head2 POSIX on non-POSIX
568
569Standard programming constructs for non-POSIX systems would help a
570lot of programmers stuck on primitive, legacy systems. For example,
571Microsoft still hasn't made a usable POSIX interface on their clunky
572systems, which means that standard operations such as alarm() and
573fork(), both critical for sophisticated client-server programming,
574must both be kludged around.
575
576I'm unsure whether Tom means to emulate alarm( )and fork(), or merely
577to provide a document like perlport.pod to say which features are
578portable and which are not.
579
580=head2 Portable installations
581
582Figure out a portable semi-gelled installation, that is, one without
583full paths. Larry has said that he's thinking about this. Ilya
584pointed out that perllib_mangle() is good for this.
585
586=head1 Win32 Stuff
587
e50bb9a1
GS
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
e50bb9a1
GS
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
e50bb9a1
GS
610=item format BOTTOM
611
e50bb9a1
GS
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
e50bb9a1
GS
620=item lvalue functions
621
622Tuomas Lukka, on behalf of the PDL project, greatly desires this and
623Ilya has a patch for it (probably against an older version of Perl).
624Tuomas points out that what PDL really wants is lvalue I<methods>,
625not 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
e50bb9a1
GS
639=head2 foreach(reverse...)
640
641=head2 Cache eval tree
642
643Unless lexical outer scope used (mark in &compiling?).
644
645=head2 rcatmaybe
646
647=head2 Shrink opcode tables
648
649Via multiple implementations selected in peep.
650
651=head2 Cache hash value
652
653Not a win, according to Guido.
654
655=head2 Optimize away @_ where possible
656
657=head2 Optimize sort by { $a <=> $b }
658
659Greg Bacon added several more sort optimizations. These have
660made it into 5.005_55, thanks to Hans Mulder.
661
662=head2 Rewrite regexp parser for better integrated optimization
663
664The 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
672This 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
680Nobody has yet managed to come up with a switch syntax that would
681allow for mixed hash, constant, regexp checks. Submit implementation
682with syntax, please.
683
684=item compile to real threaded code
685
686=item structured types
687
e50bb9a1
GS
688=item Modifiable $1 et al
689
690The intent is for this to be a means of editing the matched portions of
691the target string.
692
693=back
694
695=head1 To Do Or Not To Do
696
697These are things that have been discussed in the past and roundly
698criticized for being of questionable value.
699
700=head2 Making my() work on "package" variables
701
702Being able to say my($Foo::Bar), something that sounds ludicrous and
87275199 703the 5.6 pumpking has mocked.
e50bb9a1
GS
704
705=head2 "or" testing defined not truth
706
707We tell people that C<||> can be used to give a default value to a
708variable:
709
710 $children = shift || 5; # default is 5 children
711
712which is almost (but not):
713
714 $children = shift;
715 $children = 5 unless $children;
716
717but if the first argument was given and is "0", then it will be
718considered false by C<||> and C<5> used instead. Really we want
04c70446 719an C<||>-like operator that behaves like:
e50bb9a1
GS
720
721 $children = shift;
722 $children = 5 unless defined $children;
723
04c70446
GS
724Namely, a C<||> that tests defined-ness rather than truth. One was
725discussed, and a patch submitted, but the objections were many. While
726there were objections, many still feel the need. At least it was
727decided that C<??> is the best name for the operator.
e50bb9a1
GS
728
729=head2 "dynamic" lexicals
730
731 my $x;
732 sub foo {
733 local $x;
734 }
735
736Localizing, as Tim Bunce points out, is a separate concept from
737whether the variable is global or lexical. Chip Salzenberg had
738an implementation once, but Larry thought it had potential to
739confuse.
740
741=head2 "class"-based, rather than package-based "lexicals"
742
743This is like what the Alias module provides, but the variables would
744be lexicals reserved by perl at compile-time, which really are indices
745pointing into the pseudo-hash object visible inside every method so
746declared.
747
748=head1 Threading
749
750=head2 Modules
751
752Which of the standard modules are thread-safe? Which CPAN modules?
753How easy is it to fix those non-safe modules?
754
755=head2 Testing
756
757Threading is still experimental. Every reproducible bug identifies
758something else for us to fix. Find and submit more of these problems.
759
760=head2 $AUTOLOAD
761
762=head2 exit/die
763
764Consistent semantics for exit/die in threads.
765
766=head2 External threads
767
768Better support for externally created threads.
769
770=head2 Thread::Pool
771
772=head2 thread-safety
773
774Spot-check globals like statcache and global GVs for thread-safety.
775"B<Part done>", says Sarathy.
776
777=head2 Per-thread GVs
778
779According to Sarathy, this would make @_ be the same in threaded
780and 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
787The compiler's back-end code-generators for creating bytecode or
788compilable C code could use optimization work.
789
790=head2 Byteperl
791
792Figure out how and where byteperl will be built for the various
793platforms.
794
795=head2 Precompiled modules
796
797Save byte-compiled modules on disk.
798
799=head2 Executables
800
801Auto-produce executable.
802
803=head2 Typed lexicals
804
805Typed lexicals should affect B::CC::load_pad.
806
807=head2 Win32
808
809Workarounds to help Win32 dynamic loading.
810
e50bb9a1
GS
811=head2 END blocks
812
7d30b5c4 813END blocks need saving in compiled output, now that CHECK blocks
4f25aa18 814are available.
e50bb9a1
GS
815
816=head2 _AUTOLOAD
817
818_AUTOLOAD prodding.
819
820=head2 comppadlist
821
822Fix comppadlist (names in comppad_name can have fake SvCUR
823from where newASSIGNOP steals the field).
824
825=head2 Cached compilation
826
827Can we install modules as bytecode?
828
04c70446
GS
829=head1 Recently Finished Tasks
830
2b92dfce
GS
831=head2 Figure a way out of $^(capital letter)
832
833Figure out a clean way to extend $^(capital letter) beyond
834the 26 alphabets. (${^WORD} maybe?)
835
836Mark-Jason Dominus sent a patch which went into 5.005_56.
837
04c70446
GS
838=head2 Filenames
839
3a4b19e4 840Keep filenames in the distribution and in the standard module set
04c70446 841be 8.3 friendly where feasible. Good luck changing the standard
3a4b19e4 842modules, though.
04c70446
GS
843
844=head2 Foreign lines
845
846Perl should be more generous in accepting foreign line terminations.
847Mostly 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
04c70446
GS
856=head2 ISA.pm
857
858Rename and alter ISA.pm. B<Done>. It is now base.pm.
859
04c70446
GS
860=head2 gettimeofday
861
862See Time::HiRes.
863
04c70446
GS
864=head2 autocroak?
865
3a4b19e4 866This is the Fatal.pm module, so any builtin that that does
04c70446
GS
867not return success automatically die()s. If you're feeling brave, tie
868this in with the unified exceptions scheme.
869
e50bb9a1 870=cut