|
1 | 1 | This file lists future projects and enhancements for gawk. Items are listed
|
2 | 2 | in roughly the order they will be done for a given release. This file is
|
3 |
| -mainly for use by the developer(s) to help keep themselves on track, please |
| 3 | +mainly for use by the developers to help keep themselves on track, please |
4 | 4 | don't bug us too much about schedules or what all this really means.
|
5 | 5 |
|
6 |
| -(An `x' indicates that some progress has been made, but that the feature is |
7 |
| -not complete yet.) |
| 6 | +With the 3.0 release, we are acknowledging that awk is not PERL, nor should |
| 7 | +it become PERL. (To paraphrase Dennis Ritchie, "If you want PERL, you |
| 8 | +know where to get it.") |
8 | 9 |
|
9 |
| -For 2.16 |
10 |
| -======== |
11 |
| -x Move to autoconf-based configure system. |
12 |
| - |
13 |
| -x Research awk `fflush' function. |
14 |
| - |
15 |
| -x Generalize IGNORECASE |
16 |
| - any value makes it work, not just numeric non-zero |
17 |
| - make it apply to *all* string comparisons |
| 10 | +The focus on the future is thus narrowed to performance and functional |
| 11 | +enhancements, with only minor plans for significant new features. |
18 | 12 |
|
19 |
| -In 2.17 |
| 13 | +For 3.0 |
20 | 14 | =======
|
21 |
| -x Allow RS to be a regexp. |
| 15 | + DONE: Move to autoconf-based configure system. |
22 | 16 |
|
23 |
| - RT variable to hold text of record terminator |
| 17 | + DONE: Allow RS to be a regexp. |
24 | 18 |
|
25 |
| - RECLEN variable for fixed length records |
| 19 | + DONE: RT variable to hold text of record terminator |
26 | 20 |
|
27 |
| - Feedback alloca.s changes to FSF |
| 21 | + DONE: split() with null string as third arg to split up strings |
28 | 22 |
|
29 |
| -x Split() with null string as third arg to split up strings |
| 23 | + DONE: Analogously, setting FS="" would split the input record into |
| 24 | + individual characters. |
30 | 25 |
|
31 |
| -x Analogously, setting FS="" would split the input record into individual |
32 |
| - characters. |
| 26 | + DONE: Generalize IGNORECASE |
| 27 | + - any value makes it work, not just numeric non-zero |
| 28 | + - make it apply to *all* string comparisons |
33 | 29 |
|
34 |
| -x Clean up code by isolating system-specific functions in separate files. |
| 30 | + DONE: Incorporate newer dfa.c and regex.c |
35 | 31 |
|
36 |
| - Undertake significant directory reorganization. |
| 32 | + DONE: Go to POSIX regexps |
37 | 33 |
|
38 |
| -x Extensive manual cleanup: |
39 |
| - Use of texinfo 2.0 features |
40 |
| - Lots more examples |
41 |
| - Document all of the above. |
| 34 | + DONE: Make regex + dfa less dependant on gawk header file includes |
42 | 35 |
|
43 |
| -x Go to POSIX regexps |
| 36 | + DONE: Source code formatting cleaned up and regularized |
44 | 37 |
|
45 |
| - Make regex + dfa less dependant on gawk header file includes |
| 38 | + DONE: Clean up code by isolating system-specific functions in |
| 39 | + separate files. |
46 | 40 |
|
47 |
| - Additional manual features: |
48 |
| - Document posix regexps |
49 |
| - Document use of dbm arrays |
50 |
| - ? Add an error messages section to the manual |
51 |
| - ? A section on where gawk is bounded |
52 |
| - regex |
53 |
| - i/o |
54 |
| - sun fp conversions |
| 41 | + DONE: General sub function: |
| 42 | + gensub(pat, sub, global_flag[, line]) |
| 43 | + that return the substituted strings and allow \1 etc. |
| 44 | + in the sub string. |
55 | 45 |
|
56 |
| -For 2.18 |
57 |
| -======== |
58 |
| - DBM storage of awk arrays. Try to allow multiple dbm packages |
| 46 | + DONE: Add AWKPATH to ENVIRON if it's not there |
59 | 47 |
|
60 |
| - General sub functions: |
61 |
| - edit(line, pat, sub) and gedit(line, pat, sub) |
62 |
| - that return the substituted strings and allow \1 etc. in the sub |
63 |
| - string. |
64 |
| - |
65 |
| - ? Have strftime() pay attention to the value of ENVIRON["TZ"] |
66 |
| - |
67 |
| -For 2.19 |
68 |
| -======== |
69 |
| - Add chdir and stat built-in functions. |
| 48 | + DONE: Undertake significant directory reorganization. |
70 | 49 |
|
71 |
| - Add function pointers as valid variable types. |
| 50 | + DONE: Extensive manual cleanup: |
| 51 | + Use of texinfo 2.0 features |
| 52 | + Lots more examples |
| 53 | + Document posix regexps |
| 54 | + Document all of the above. |
72 | 55 |
|
73 |
| - Add an `ftw' built-in function that takes a function pointer. |
| 56 | +In 3.1 |
| 57 | +====== |
| 58 | + A PROCINFO array to replace /dev/pid, /dev/user, et al. |
74 | 59 |
|
75 |
| - Do an optimization pass over parse tree? |
| 60 | + Use mmap to read input files on systems that support it. |
76 | 61 |
|
77 |
| -For 2.20 or later: |
78 |
| -================== |
79 |
| -Add variables similar to C's __FILE__ and __LINE__ for better diagnostics |
80 |
| -from within awk programs. |
| 62 | + Use a new or improved dfa. |
81 | 63 |
|
82 |
| -Add an explicit concatenation operator and assignment version. |
| 64 | + Integrate GNU NLS support. |
83 | 65 |
|
84 |
| -? Add a switch statement |
| 66 | + Bring out hooks for NLS support into gawk itself. |
85 | 67 |
|
86 |
| -Add the ability to seek on an open file and retrieve the current file position. |
| 68 | + DBM storage of awk arrays. Try to allow multiple dbm packages. |
87 | 69 |
|
88 |
| -Add lint checking everywhere, including check for use of builtin vars. |
89 |
| -only in new awk. |
| 70 | + Use GNU malloc. |
90 | 71 |
|
91 |
| -"restart" keyword |
| 72 | + Use rx instead of regex. |
92 | 73 |
|
93 |
| -Add |& |
| 74 | + Do a reference card. |
94 | 75 |
|
95 |
| -Make awk '/foo/' files... run at egrep speeds |
| 76 | + ? Have strftime() pay attention to the value of ENVIRON["TZ"] |
96 | 77 |
|
97 |
| -Do a reference card |
| 78 | + Additional manual features: |
| 79 | + Document use of dbm arrays |
| 80 | + Document NLS support |
| 81 | + ? Add exercises |
| 82 | + ? Add an error messages section to the manual |
| 83 | + ? A section on where gawk is bounded |
| 84 | + regex |
| 85 | + i/o |
| 86 | + sun fp conversions |
98 | 87 |
|
99 |
| -Allow OFMT and CONVFMT to be other than a floating point format. |
| 88 | +For 3.2 |
| 89 | +======= |
| 90 | + Add a lint check if the return value of a function is used but |
| 91 | + the function did not supply a value. |
100 | 92 |
|
101 |
| -Allow redefining of builtin functions? |
| 93 | + Do an optimization pass over parse tree? |
102 | 94 |
|
103 |
| -Make it faster and smaller. |
| 95 | + Make awk '/foo/' files... run at egrep speeds |
104 | 96 |
|
105 |
| -For 3.x: |
| 97 | +For 4.x: |
106 | 98 | ========
|
107 | 99 |
|
108 | 100 | Create a gawk compiler?
|
109 | 101 |
|
110 | 102 | Create a gawk-to-C translator? (or C++??)
|
111 | 103 |
|
112 | 104 | Provide awk profiling and debugging.
|
113 |
| - |
114 |
| - |
115 |
| - |
0 commit comments