Update spec to require automake >= 1.13
[platform/upstream/gawk.git] / NEWS
1    Copyright (C) 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
2    
3    Copying and distribution of this file, with or without modification,
4    are permitted in any medium without royalty provided the copyright
5    notice and this notice are preserved.
6
7 Changes from 4.1.0 to 4.1.1
8 ---------------------------
9
10 1. The "stat" extension now includes a "devbsize" element which indicates
11    the units for the "nblocks" element.
12
13 2. The extension facility now works on MinGW. Many of the extensions can be
14    built and used directly.
15
16 3. A number of bugs in the pretty-printing / profiling code have been fixed.
17
18 4. Sockets and two-way pipes now work under MinGW.
19
20 5. The debugger now lists source code correctly under Cygwin.
21
22 6. Configuration and building with the Mac OS X libreadline should work now.
23
24 7. The -O option now works again.
25
26 8. The --include option, documented since 4.0, now actually works.
27
28 9. Infrastructure updated to automake 1.13.4, bison 3.0.2, and
29    libtool 2.4.2.418.
30
31 10. The configure script now accepts a --disable-extensions option,
32     which disables checking for and building the extensions.
33
34 11. The VMS port has been considerably improved. In particular config.h
35     is now generated by a DCL script. Also, the extension facility works
36     and several of the extensions can be built and used. Currently, the
37     extension facility only works on Alpha and Itanium.
38
39 12. The API now provides functions pointers for malloc(), calloc(),
40     realloc() and free(), to insure that the same memory allocation
41     functions are always used. This bumps the minor version by one.
42
43 13. The printf quote flag now works correctly in locales with a different
44     decimal point character but without a thousands separator character.
45     If the thousands separator is a string, it will be correctly added
46     to decimal numbers.
47
48 14. The readfile extension now has an input parser that will read whole
49     files as a single record.
50
51 15. A number of bugs have been fixed. See the ChangeLog.
52
53 Changes from 4.0.2 to 4.1.0
54 ---------------------------
55
56 1. The three executables gawk, pgawk, and dgawk, have been merged into
57    one, named just gawk.  As a result:
58         * The -R option is gone
59         * Use -D to run the debugger. An optional file argument is a
60           list of commands to run first.
61         * Use -o to do pretty-printing only.
62         * Use -p to do profiling.
63    This considerably reduces gawk's "footprint" and eases the documentation
64    burden as well.
65
66 2. Gawk now supports high precision arithmetic with MPFR.  The default is
67    still double precision, but setting PREC changes things, or using
68    the -M / --bignum options.  This support is not compiled in if the MPFR
69    library is not available.
70
71 3. The new -i option (from xgawk) is used for loading awk library files.
72    This differs from -f in that the first non-option argument is treated
73    as a script.
74
75 4. The new -l option (from xgawk) is used for loading dynamic extensions.
76
77 5. The dynamic extension interface has been completely redone!  There is
78    now a defined API for C extensions to use.  A C extension acts like
79    a function written in awk, except that it cannot do everything that awk
80    code can. However, this allows interfacing to any facility that is
81    available from C.  This is a major development, see the doc, which has
82    a nice shiny new chapter describing everything.
83
84    This support is not compiled in if dynamic loading of shared libraries
85    is not supported.
86
87    The old extension mechanism is still supported for compatiblity, but
88    it will most definitely be removed at the next major release.
89
90 6. The "inplace" extension, built using the new facility, can be used to
91    simulate the GNU "sed -i" feature.
92
93 7. The and(), or() and xor() functions now take any number of arguments,
94    with a minimum of two.
95
96 8. New arrays: SYMTAB, FUNCTAB, and PROCINFO["identifiers"]. SYMTAB allows
97    indirect access to any defined variable or array; it is possible to
98    "walk" the symbol table, if that should be necessary.
99
100 9. Support for building gawk with a cross compiler has been improved.
101
102 10. Infrastructure upgrades: bison 2.7.1, gettext 0.18.2.1, automake 1.13.1,
103     libtool 2.4.2 for the extensions.
104
105 Changes from 4.0.1 to 4.0.2
106 ---------------------------
107
108 1. Infrastructure upgrades: Autoconf 2.69, Automake 1.12.6, bison 2.7.
109
110 2. `fflush()', `nextfile', and `delete array' are all now part of POSIX.
111
112 3. fflush() behavior changed to match BWK awk and for POSIX - now both
113    fflush() and fflush("") flush all open output redirections.
114
115 4. Various minor bug fixes and documentation updates.
116  
117 Changes from 4.0.0 to 4.0.1
118 ---------------------------
119
120 1. The default handling of backslash in sub() and gsub() has been reverted to
121    the behavior of 3.1. It was silly to think I could break compatibility that
122    way, even for standards compliance.
123
124 2. Completed the implementation of Rational Range Interpretation.
125
126 3. Failure to get the group set is no longer a fatal error.
127
128 4. Lots of minor bugs fixed and portability clean-ups along the way. See
129    the ChangeLog for details.
130
131 Changes from 3.1.8 to 4.0.0
132 ---------------------------
133
134 1. The special files /dev/pid, /dev/ppid, /dev/pgrpid and /dev/user are
135    now completely gone. Use PROCINFO instead.
136
137 2. The POSIX 2008 behavior for `sub' and `gsub' are now the default.
138    THIS CHANGES BEHAVIOR!!!!
139
140 3. The \s and \S escape sequences are now recognized in regular expressions.
141
142 4. The split() function accepts an optional fourth argument which is an array
143    to hold the values of the separators.
144
145 5. The new -b / --characters-as-bytes option means "hands off my data"; gawk
146    won't try to treat input as a multibyte string.
147
148 6. There is a new --sandbox option; see the doc.
149
150 7. Indirect function calls are now available.
151
152 8. Interval expressions are now part of default regular expressions for
153    GNU Awk syntax.
154
155 9. --gen-po is now correctly named --gen-pot.
156
157 10. switch / case is now enabled by default. There's no longer a need
158     for a configure-time option.
159
160 11. Gawk now supports BEGINFILE and ENDFILE. See the doc for details.
161
162 12. Directories named on the command line now produce a warning, not
163     a fatal error, unless --posix or --traditional.
164
165 13. The new FPAT variable allows you to specify a regexp that matches
166     the fields, instead of matching the field separator. The new patsplit()
167     function gives the same capability for splitting.
168
169 14. All long options now have short options, for use in `#!' scripts.
170
171 15. Support for IPv6 is added via the /inet6/... special file. /inet4/...
172     forces IPv4 and /inet chooses the system default (probably IPv4).
173
174 16. Added a warning for /[:space:]/ that should be /[[:space:]]/.
175
176 17. Merged with John Haque's byte code internals. Adds dgawk debugger and
177     possibly improved performance.
178
179 18. `break' and `continue' are no longer valid outside a loop, even with
180     --traditional.
181
182 19. POSIX character classes work with --traditional (BWK awk supports them).
183
184 20. Nuked redundant --compat, --copyleft, and --usage long options.
185
186 21. Arrays of arrays added. See the doc.
187
188 22. Per the GNU Coding Standards, dynamic extensions must now define
189     a global symbol indicating that they are GPL-compatible. See
190     the documentation and example extensions.
191     THIS CHANGES BEHAVIOR!!!!
192
193 23. In POSIX mode, string comparisons use strcoll/wcscoll.
194     THIS CHANGES BEHAVIOR!!!!
195
196 24. The option for raw sockets was removed, since it was never implemented.
197
198 25. Gawk now treats ranges of the form [d-h] as if they were in the C
199     locale, no matter what kind of regexp is being used, and even if
200     --posix.  The latest POSIX standard allows this, and the documentation
201     has been updated.  Maybe this will stop all the questions about
202     [a-z] matching uppercase letters.
203     THIS CHANGES BEHAVIOR!!!!
204
205 26. PROCINFO["strftime"] now holds the default format for strftime().
206
207 27. Updated to latest infrastructure: Autoconf 2.68, Automake 1.11.1,
208     Gettext 0.18.1, Bison 2.5.
209
210 28. Many code cleanups. Removed code for many old, unsupported systems:
211         - Atari
212         - Amiga
213         - BeOS
214         - Cray
215         - MIPS RiscOS
216         - MS-DOS with Microsoft Compiler
217         - MS-Windows with Microsoft Compiler
218         - NeXT
219         - SunOS 3.x, Sun 386 (Road Runner)
220         - Tandem (non-POSIX)
221         - Prestandard VAX C compiler for VAX/VMS
222         - Probably others that I've forgotten
223
224 29. If PROCINFO["sorted_in"] exists, for(iggy in foo) loops sort the
225     indices before looping over them.  The value of this element
226     provides control over how the indices are sorted before the loop
227     traversal starts. See the manual.
228
229 30. A new isarray() function exists to distinguish if an item is an array
230     or not, to make it possible to traverse multidimensional arrays.
231
232 31. asort() and asorti() take a third argument specifying how to sort.
233     See the doc.