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
9 Contiguous bitfields in pack/unpack
11 Bundled perl preprocessor
12 Use posix calls internally where possible
13 gettimeofday (possibly best left for a module?)
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 { ... }
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.
44 optimize (use less memory, CPU)
47 constant function cache
50 Set KEEP on constant split
51 Cache eval tree (unless lexical outer scope used (mark in &compiling?))
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/ }
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
66 compile to real threaded code