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