Fix for one of the problems in RC1 reported by M. E. O'Neill
[p5sagit/p5-mst-13.2.git] / Todo
CommitLineData
54aff467 1Always check out the latest perl5-porters discussions on these subjects
2before embarking on an implementation tour.
ed3f4a32 3
8990e307 4Tie Modules
5 VecArray Implement array using vec()
6 SubstrArray Implement array using substr()
7 VirtualArray Implement array using a file
8 ShiftSplice Defines shift et al in terms of splice method
93a17b20 9
8990e307 10Would be nice to have
55f6b6ec 11 pack "(stuff)*", "(stuff)?", "(stuff)+", "(stuff)4", ...
54aff467 12 contiguous bitfields in pack/unpack
463ee0b2 13 lexperl
55f6b6ec 14 bundled perl preprocessor/macro facility
15 this would solve many of the syntactic nice-to-haves
54aff467 16 use posix calls internally where possible
9cc29783 17 gettimeofday (possibly best left for a module?)
8990e307 18 format BOTTOM
2304df62 19 -i rename file only when successfully changed
54aff467 20 all ARGV input should act like <>
2304df62 21 report HANDLE [formats].
a0d0e21e 22 support in perlmain to rerun debugger
aa00cc68 23 regression tests using __DIE__ hook
aa00cc68 24 lexically scoped functions: my sub foo { ... }
55f6b6ec 25 wantlvalue? more generalized want()/caller()?
54aff467 26 named prototypes: sub foo ($foo, @bar) { ... } ?
7b8d334a 27 regression/sanity tests for suidperl
ed3f4a32 28 iterators/lazy evaluation/continuations/first/
29 first_defined/short-circuiting grep/??
30 This is a very thorny and hotly debated subject,
54aff467 31 tread carefully and do your homework first
54aff467 32 generalise Errno way of extracting cpp symbols and use that in
55f6b6ec 33 Errno, Fcntl, POSIX (ExtUtils::CppSymbol?)
54aff467 34 the _r-problem: for all the {set,get,end}*() system database
2607c2e4 35 calls (and a couple more: readdir, *rand*, crypt, *time,
36 tmpnam) there are in many systems the _r versions
54aff467 37 to be used in re-entrant (=multithreaded) code
24e11b2a 38 Icky things: the _r API is not standardized and
54aff467 39 the _r-forms require per-thread data to store their state
55f6b6ec 40 memory profiler: turn malloc.c:Perl_get_mstats() into
24e11b2a 41 an extension (Devel::MProf?) that would return the malloc
42 stats in a nice Perl datastructure (also a simple interface
54aff467 43 to return just the grand total would be good)
53c32ee0 44 a way to make << and >> to shift bitvectors instead of numbers
8990e307 45
a0d0e21e 46Possible pragmas
85e6fe83 47 debugger
54aff467 48 optimize (use less qw[memory cpu])
463ee0b2 49
50Optimizations
a0d0e21e 51 constant function cache
52 switch structures
a0d0e21e 53 foreach(reverse...)
54aff467 54 cache eval tree (unless lexical outer scope used (mark in &compiling?))
463ee0b2 55 rcatmaybe
54aff467 56 shrink opcode tables via multiple implementations selected in peep
57 cache hash value? (Not a win, according to Guido)
58 optimize away @_ where possible
55f6b6ec 59 tail recursion removal
8990e307 60 "one pass" global destruction
54aff467 61 rewrite regexp parser for better integrated optimization
aa00cc68 62 LRU cache of regexp: foreach $pat (@pats) { foo() if /$pat/ }
463ee0b2 63
a0d0e21e 64Vague possibilities
54aff467 65 ref function in list context?
463ee0b2 66 make tr/// return histogram in list context?
54aff467 67 loop control on do{} et al
68 explicit switch statements
463ee0b2 69 built-in globbing
70 compile to real threaded code
71 structured types
85e6fe83 72 autocroak?
54aff467 73 modifiable $1 et al