d073b04ca9e0fbe52b0059bb3f079dea14572c33
[perl.git] / Todo
1 Must-have external packages
2         POSIX
3         X/Motif/whatever
4
5 Bugs
6         BEGIN { require 'perldb.pl' }
7         Make yyparse recursion longjmp() proof.
8         perl -c shell_script bug
9         fix the need for double ^D on $x
10         STDOUT->print("howdy\n");
11         %ENV not there
12         Make "delete $array{$key} while ($key) = each %array" safe
13         using unpack(P,$ref) shouldn't unref the ref
14         binary function is missing
15         wrong line reported for runtime elsif condition error
16         unreference variable warnings busted (but don't warn on $seen{$key}++)
17
18 Regexp extensions
19         /m  for multiline
20         /\Afoo/ (beginning of string, or where previous g match left off)
21         /foo\Z/ (end of string only)
22         negative regexp assertions?
23         /<>/x for grouping?
24         /f for fixed variable interpolation?
25         Rewrite regexp parser for better integrated optimization
26
27 Nice to have
28         Profiler
29         pack "(stuff)*"
30         lexperl
31         Bundled perl preprocessor
32         FILEHANDLE methods
33         Make $[ compile-time instead of run-time
34
35 Optimizations
36         Make specialized allocators
37         Optimize switch statements
38         Optimize foreach on array
39         Optimize foreach (1..1000000)
40         Set KEEP on constant split
41         Cache eval tree (unless lexical outer scope used (mark in &compiling?))
42         rcatmaybe
43         Shrink opcode tables via multiple implementations selected in peep
44         Cache hash value?
45         Optimize away @_ where possible
46         sfio?
47
48 Need to think more about
49         ref in list context
50         When does split() go to @_?
51         Figure out BEGIN { ... @ARGV ... }
52         Implement eval once?  (Unnecessary with cache?)
53         Detect inconsistent linkage when using -DDEBUGGING?
54         Populate %SIG at startup if appropriate
55         Multiple levels of warning
56
57 Vague possibilities
58         readonly variables
59         sub mysplice(@, $, $, ...)
60         data prettyprint function?  (or is it, as I suspect, a lib routine?)
61         Nested destructors
62         make tr/// return histogram in list context?
63         undef wantarray in void context
64         goto &replacement_routine
65         filehandle references
66         Loop control on do{} et al
67         Explicit switch statements
68         perl to C translator
69         multi-thread scheduling
70         built-in globbing
71         compile to real threaded code
72         structured types