Even more Todo.
[p5sagit/p5-mst-13.2.git] / Todo
CommitLineData
8990e307 1Tie Modules
2 VecArray Implement array using vec()
3 SubstrArray Implement array using substr()
4 VirtualArray Implement array using a file
5 ShiftSplice Defines shift et al in terms of splice method
93a17b20 6
8990e307 7Would be nice to have
463ee0b2 8 pack "(stuff)*"
85e6fe83 9 Contiguous bitfields in pack/unpack
463ee0b2 10 lexperl
11 Bundled perl preprocessor
8990e307 12 Use posix calls internally where possible
9cc29783 13 gettimeofday (possibly best left for a module?)
8990e307 14 format BOTTOM
2304df62 15 -i rename file only when successfully changed
8990e307 16 All ARGV input should act like <>
2304df62 17 report HANDLE [formats].
a0d0e21e 18 support in perlmain to rerun debugger
aa00cc68 19 regression tests using __DIE__ hook
20 reference to compiled regexp
21 lexically scoped functions: my sub foo { ... }
22 lvalue functions
7b8d334a 23 regression/sanity tests for suidperl
2607c2e4 24 Full 64 bit support (i.e. "long long"). Things to consider:
25 how to store/retrieve 32+ integers into/from Perl scalars?
26 32+ constants in Perl code? (non-portable!)
27 32+ arguments/return values to/from system calls? (seek et al)
28 32+ bit ops (&|^~, currently explicitly disabled)
24e11b2a 29 Generalise Errno way of extracting cpp symbols and use that in
30 Errno and Fcntl (ExtUtils::CppSymbol?)
2607c2e4 31 The _r-problem: for all the {set,get,end}*() system database
32 calls (and a couple more: readdir, *rand*, crypt, *time,
33 tmpnam) there are in many systems the _r versions
34 to be used in re-entrant (=multithreaded) code.
24e11b2a 35 Icky things: the _r API is not standardized and
36 the _r-forms require per-thread data to store their state.
37 memory profiler: turn malloc.c:Perl_dump_mstats() into
38 an extension (Devel::MProf?) that would return the malloc
39 stats in a nice Perl datastructure (also a simple interface
40 to return just the grand total) would be good.
8990e307 41
a0d0e21e 42Possible pragmas
85e6fe83 43 debugger
a0d0e21e 44 optimize (use less memory, CPU)
463ee0b2 45
46Optimizations
a0d0e21e 47 constant function cache
48 switch structures
a0d0e21e 49 foreach(reverse...)
463ee0b2 50 Set KEEP on constant split
51 Cache eval tree (unless lexical outer scope used (mark in &compiling?))
52 rcatmaybe
53 Shrink opcode tables via multiple implementations selected in peep
a0d0e21e 54 Cache hash value? (Not a win, according to Guido)
ed6116ce 55 Optimize away @_ where possible
8990e307 56 "one pass" global destruction
a0d0e21e 57 Rewrite regexp parser for better integrated optimization
aa00cc68 58 LRU cache of regexp: foreach $pat (@pats) { foo() if /$pat/ }
463ee0b2 59
a0d0e21e 60Vague possibilities
8990e307 61 ref function in list context
463ee0b2 62 make tr/// return histogram in list context?
463ee0b2 63 Loop control on do{} et al
64 Explicit switch statements
463ee0b2 65 built-in globbing
66 compile to real threaded code
67 structured types
85e6fe83 68 autocroak?
a0d0e21e 69 Modifiable $1 et al
a0d0e21e 70