blob: f561af4271cc1517e7f37f1397af28dfb68bd428 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
Must-have external packages
POSIX
X/Motif/whatever
Bugs
BEGIN { require 'perldb.pl' }
Make yyparse recursion longjmp() proof.
perl -c shell_script bug
fix the need for double ^D on $x
STDOUT->print("howdy\n");
Regexp extensions
/m for multiline
/\Afoo/ (beginning of string, or where previous g match left off)
/foo\Z/ (end of string only)
negative regexp assertions?
/<>/x for grouping?
/f for fixed variable interpolation?
Rewrite regexp parser for better integrated optimization
Nice to have
Profiler
pack "(stuff)*"
lexperl
Bundled perl preprocessor
FILEHANDLE methods
Optimizations
Make specialized allocators
Optimize switch statements
Optimize foreach on array
Optimize foreach (1..1000000)
Set KEEP on constant split
Cache eval tree (unless lexical outer scope used (mark in &compiling?))
rcatmaybe
Shrink opcode tables via multiple implementations selected in peep
Cache hash value?
sfio?
Need to think more about
ref in list context
When does split() go to @_?
Figure out BEGIN { ... @ARGV ... }
Implement eval once? (Unnecessary with cache?)
detect inconsistent linkage when using -DDEBUGGING?
Vague possibilities
sub mysplice(@, $, $, ...)
data prettyprint function? (or is it, as I suspect, a lib routine?)
Nested destructors
make tr/// return histogram in list context?
undef wantarray in void context
goto &replacement_routine
filehandle references
Loop control on do{} et al
Explicit switch statements
perl to C translator
multi-thread scheduling
built-in globbing
compile to real threaded code
structured types
|