summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/perl/Todo
blob: 114a488691eb531718852d07eb21136b74043d13 (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
62
63
64
65
66
67
68
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
	Profiler
	pack "(stuff)*"
	Contiguous bitfields in pack/unpack
	lexperl
	Bundled perl preprocessor
	Use posix calls internally where possible
	const variables
	gettimeofday
	bytecompiler
	format BOTTOM
	$obj->can("method") to probe method inheritance
	-iprefix.
	-i rename file only when successfully changed
	All ARGV input should act like <>
	Multiple levels of warning
	report HANDLE [formats].
	tie(FILEHANDLE, ...)
	__DATA__
	support in perlmain to rerun debugger
	make 'r' print return value like gdb 'fini'
	regression tests using __WARN__ and __DIE__ hooks

Possible pragmas
	debugger
	optimize (use less memory, CPU)

Optimizations
	constant function cache
	switch structures
	eval qw() at compile time
	foreach (1..1000000)
	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
	sfio?
	"one pass" global destruction
	Optimize sort by { $a <=> $b }
	Rewrite regexp parser for better integrated optimization

Vague possibilities
	ref function in list context
	Populate %SIG at startup if appropriate
	data prettyprint function?  (or is it, as I suspect, a lib routine?)
	make tr/// return histogram in list context?
	undef wantarray in void context
	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
	paren counting in tokener to queue remote expectations
	autocroak?
	Modifiable $1 et al
	substr EXPR,OFFSET,LENGTH,STRING