blob: 3fd0845426f1ed8f2c667afac9a6a6b85d3c0f80 (
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
|
Tie Modules
VecArray Implement array using vec()
SubstrArray Implement array using substr()
VirtualArray Implement array using a file
ShiftSplice Defines shift et al in terms of splice method
Would be nice to have
pack "(stuff)*"
Contiguous bitfields in pack/unpack
lexperl
Bundled perl preprocessor
Use posix calls internally where possible
gettimeofday (possibly best left for a module?)
format BOTTOM
-i rename file only when successfully changed
All ARGV input should act like <>
report HANDLE [formats].
support in perlmain to rerun debugger
regression tests using __DIE__ hook
reference to compiled regexp
lexically scoped functions: my sub foo { ... }
lvalue functions
regression/sanity tests for suidperl
Full 64 bit support (i.e. "long long")
Generalise Errno way of extracting cpp symbols and use that in
Errno and Fcntl (ExtUtils::CppSymbol?)
Possible pragmas
debugger
optimize (use less memory, CPU)
Optimizations
constant function cache
switch structures
eval qw() at compile time
foreach(reverse...)
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? (Not a win, according to Guido)
Optimize away @_ where possible
"one pass" global destruction
Rewrite regexp parser for better integrated optimization
LRU cache of regexp: foreach $pat (@pats) { foo() if /$pat/ }
Vague possibilities
ref function in list context
make tr/// return histogram in list context?
Loop control on do{} et al
Explicit switch statements
built-in globbing
compile to real threaded code
structured types
autocroak?
Modifiable $1 et al
|