~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to FUTURES

  • Committer: Arnold D. Robbins
  • Date: 2010-07-16 09:41:09 UTC
  • Revision ID: git-v1:8c042f99cc7465c86351d21331a129111b75345d
Tags: gawk-3.0.0
Move to gawk-3.0.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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.)
8
 
 
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
18
 
 
19
 
In 2.17
 
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.")
 
9
 
 
10
The focus on the future is thus narrowed to performance and functional
 
11
enhancements, with only minor plans for significant new features.
 
12
 
 
13
For 3.0
20
14
=======
21
 
x       Allow RS to be a regexp.
22
 
 
23
 
        RT variable to hold text of record terminator
24
 
 
25
 
        RECLEN variable for fixed length records
26
 
 
27
 
        Feedback alloca.s changes to FSF
28
 
 
29
 
x       Split() with null string as third arg to split up strings
30
 
 
31
 
x       Analogously, setting FS="" would split the input record into individual
32
 
        characters.
33
 
 
34
 
x       Clean up code by isolating system-specific functions in separate files.
35
 
 
36
 
        Undertake significant directory reorganization.
37
 
 
38
 
x       Extensive manual cleanup:
 
15
        DONE: Move to autoconf-based configure system.
 
16
 
 
17
        DONE: Allow RS to be a regexp.
 
18
 
 
19
        DONE: RT variable to hold text of record terminator
 
20
 
 
21
        DONE: split() with null string as third arg to split up strings
 
22
 
 
23
        DONE: Analogously, setting FS="" would split the input record into
 
24
        individual characters.
 
25
 
 
26
        DONE: Generalize IGNORECASE
 
27
                - any value makes it work, not just numeric non-zero
 
28
                - make it apply to *all* string comparisons
 
29
 
 
30
        DONE: Incorporate newer dfa.c and regex.c
 
31
 
 
32
        DONE: Go to POSIX regexps
 
33
 
 
34
        DONE: Make regex + dfa less dependant on gawk header file includes
 
35
 
 
36
        DONE: Source code formatting cleaned up and regularized
 
37
 
 
38
        DONE: Clean up code by isolating system-specific functions in
 
39
        separate files.
 
40
 
 
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.
 
45
 
 
46
        DONE: Add AWKPATH to ENVIRON if it's not there
 
47
 
 
48
        DONE: Undertake significant directory reorganization.
 
49
 
 
50
        DONE: Extensive manual cleanup:
39
51
                Use of texinfo 2.0 features
40
52
                Lots more examples
 
53
                Document posix regexps
41
54
                Document all of the above.
42
55
 
43
 
x       Go to POSIX regexps
44
 
 
45
 
        Make regex + dfa less dependant on gawk header file includes
 
56
In 3.1
 
57
======
 
58
        A PROCINFO array to replace /dev/pid, /dev/user, et al.
 
59
 
 
60
        Use mmap to read input files on systems that support it.
 
61
 
 
62
        Use a new or improved dfa.
 
63
 
 
64
        Integrate GNU NLS support.
 
65
 
 
66
        Bring out hooks for NLS support into gawk itself.
 
67
 
 
68
        DBM storage of awk arrays. Try to allow multiple dbm packages.
 
69
 
 
70
        Use GNU malloc.
 
71
 
 
72
        Use rx instead of regex.
 
73
 
 
74
        Do a reference card.
 
75
 
 
76
        ? Have strftime() pay attention to the value of ENVIRON["TZ"]
46
77
 
47
78
        Additional manual features:
48
 
                Document posix regexps
49
79
                Document use of dbm arrays
 
80
                Document NLS support
 
81
                ? Add exercises
50
82
                ? Add an error messages section to the manual
51
83
                ? A section on where gawk is bounded
52
84
                        regex
53
85
                        i/o
54
86
                        sun fp conversions
55
87
 
56
 
For 2.18
57
 
========
58
 
        DBM storage of awk arrays. Try to allow multiple dbm packages
59
 
 
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.
70
 
 
71
 
        Add function pointers as valid variable types.
72
 
 
73
 
        Add an `ftw' built-in function that takes a function pointer.
 
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.
74
92
 
75
93
        Do an optimization pass over parse tree?
76
94
 
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.
81
 
 
82
 
Add an explicit concatenation operator and assignment version.
83
 
 
84
 
? Add a switch statement
85
 
 
86
 
Add the ability to seek on an open file and retrieve the current file position.
87
 
 
88
 
Add lint checking everywhere, including check for use of builtin vars.
89
 
only in new awk.
90
 
 
91
 
"restart" keyword
92
 
 
93
 
Add |&
94
 
 
95
 
Make    awk '/foo/' files...    run at egrep speeds
96
 
 
97
 
Do a reference card
98
 
 
99
 
Allow OFMT and CONVFMT to be other than a floating point format.
100
 
 
101
 
Allow redefining of builtin functions?
102
 
 
103
 
Make it faster and smaller.
104
 
 
105
 
For 3.x:
 
95
        Make    awk '/foo/' files...    run at egrep speeds
 
96
 
 
97
For 4.x:
106
98
========
107
99
 
108
100
Create a gawk compiler?
110
102
Create a gawk-to-C translator? (or C++??)
111
103
 
112
104
Provide awk profiling and debugging.
113
 
 
114
 
 
115