Commit | Line | Data |
8990e307 |
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 |
93a17b20 |
6 | |
8990e307 |
7 | Would 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 |
42 | Possible pragmas |
85e6fe83 |
43 | debugger |
a0d0e21e |
44 | optimize (use less memory, CPU) |
463ee0b2 |
45 | |
46 | Optimizations |
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 |
60 | Vague 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 | |