summaryrefslogtreecommitdiff
path: root/Todo
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