summaryrefslogtreecommitdiffstats
path: root/contrib/awk/FUTURES
blob: 829f168386434351ae0dd0bbacbd9820a9bc93cf (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
This file lists future projects and enhancements for gawk.  Items are listed
in roughly the order they will be done for a given release.  This file is
mainly for use by the developers to help keep themselves on track, please
don't bug us too much about schedules or what all this really means.

With the 3.0 release, we are acknowledging that awk is not PERL, nor should
it become PERL.  (To paraphrase Dennis Ritchie, "If you want PERL, you
know where to get it.")

The focus on the future is thus narrowed to performance and functional
enhancements, with only minor plans for significant new features.

For 3.0
=======
	DONE: Move to autoconf-based configure system.

	DONE: Allow RS to be a regexp.

	DONE: RT variable to hold text of record terminator

	DONE: split() with null string as third arg to split up strings

	DONE: Analogously, setting FS="" would split the input record into
	individual characters.

	DONE: Generalize IGNORECASE
		- any value makes it work, not just numeric non-zero
		- make it apply to *all* string comparisons

	DONE: Incorporate newer dfa.c and regex.c

	DONE: Go to POSIX regexps

	DONE: Make regex + dfa less dependant on gawk header file includes

	DONE: Source code formatting cleaned up and regularized

	DONE: Clean up code by isolating system-specific functions in
	separate files.

	DONE: General sub function:
		gensub(pat, sub, global_flag[, line])
	that return the substituted strings and allow \1 etc.
	in the sub string.

	DONE: Add AWKPATH to ENVIRON if it's not there

	DONE: Undertake significant directory reorganization.

	DONE: Extensive manual cleanup:
		Use of texinfo 2.0 features
		Lots more examples
		Document posix regexps
		Document all of the above.

In 3.1
======
	A PROCINFO array to replace /dev/pid, /dev/user, et al.

	DONE: Use mmap to read input files on systems that support it.

	Add `abort' statement a la Thompson awk.

	Consider removing use of and/or need for the protos.h file.

	Use a new or improved dfa.

	Integrate GNU NLS support.

	Bring out hooks for NLS support into gawk itself.

	DBM storage of awk arrays. Try to allow multiple dbm packages.

	Use GNU malloc.

	DONE: Do a reference card.

	? Have strftime() pay attention to the value of ENVIRON["TZ"]

	Additional manual features:
		Document use of dbm arrays
		Document NLS support
		? Add exercises
		? Add an error messages section to the manual
		? A section on where gawk is bounded
			regex
			i/o
			sun fp conversions

For 3.2
=======
	Add a lint check if the return value of a function is used but
	the function did not supply a value.

	Do an optimization pass over parse tree?

	Make 	awk '/foo/' files...	run at egrep speeds

For 4.x:
========

Create a gawk compiler?

Create a gawk-to-C translator? (or C++??)

Provide awk profiling and debugging.
OpenPOWER on IntegriCloud