Even more Todo.
[p5sagit/p5-mst-13.2.git] / Todo
1 Tie 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
6
7 Would be nice to have
8         pack "(stuff)*"
9         Contiguous bitfields in pack/unpack
10         lexperl
11         Bundled perl preprocessor
12         Use posix calls internally where possible
13         gettimeofday (possibly best left for a module?)
14         format BOTTOM
15         -i rename file only when successfully changed
16         All ARGV input should act like <>
17         report HANDLE [formats].
18         support in perlmain to rerun debugger
19         regression tests using __DIE__ hook
20         reference to compiled regexp
21         lexically scoped functions: my sub foo { ... }
22         lvalue functions
23         regression/sanity tests for suidperl
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)
29         Generalise Errno way of extracting cpp symbols and use that in
30             Errno and Fcntl (ExtUtils::CppSymbol?)
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.
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.
41
42 Possible pragmas
43         debugger
44         optimize (use less memory, CPU)
45
46 Optimizations
47         constant function cache
48         switch structures
49         foreach(reverse...)
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
54         Cache hash value?  (Not a win, according to Guido)
55         Optimize away @_ where possible
56         "one pass" global destruction
57         Rewrite regexp parser for better integrated optimization
58         LRU cache of regexp: foreach $pat (@pats) { foo() if /$pat/ }
59
60 Vague possibilities
61         ref function in list context
62         make tr/// return histogram in list context?
63         Loop control on do{} et al
64         Explicit switch statements
65         built-in globbing
66         compile to real threaded code
67         structured types
68         autocroak?
69         Modifiable $1 et al
70