summaryrefslogtreecommitdiff
path: root/NEWS
blob: 0df1f0cdbdff7dbdcb2ba048a1de8afa2342f014 (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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
   Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015,
   Free Software Foundation, Inc.
   
   Copying and distribution of this file, with or without modification,
   are permitted in any medium without royalty provided the copyright
   notice and this notice are preserved.

Changes from 4.1.1 to 4.1.2
---------------------------

1. The manual has been considerably improved.
	- Thoroughly reviewed and updated.
	- Out-of-date examples replaced.
	- Chapter 15 on MPFR reworked.
	- Summary sections added to all chapters.
	- Exercises added in several chapters.
	- Heavily proof-read and copyedited.

2. The debugger's "restart" command now works again.

3. Redirected getline is now allowed inside BEGINFILE/ENDFILE.

4. A number of bugs have been fixed in the MPFR code.

5. Indirect function calls now work for both built-in and extension functions.

6. Built-in functions are now included in FUNCTAB.

7. POSIX and historical practice require the exclusive use of the English
   alphabet in identifiers.  In non-English locales, it was accidentally
   possible to use "letters" beside those of the English alphabet.  This
   has been fixed. (isalpha and isalnum are NOT our friends.)

   If you feel that you must have this misfeature, use `configure --help'
   to see what option to use when configuring gawk to reenable it.

8. The "where" command has been added to the debugger as an alias
   for "backtrace". This will make life easier for long-time GDB users.

9. Gawk no longer explicitly checks the current directory after doing
   a path search of AWKPATH.  The default value continues to have "." at
   the front, so most people should not be affected.  If you have your own
   AWKPATH setting, be sure to put "." in it somewhere. The documentation
   has been updated and clarified.

10. Infrastructure upgrades: Automake 1.15, Gettext 0.19.4, Libtool 2.4.6,
    Bison 3.0.4.

11. If a user-defined function has a parameter with the same name as another
    user-defined function, it is no longer possible to call the second
    function from inside the first.

12. POSIX requires that the names of function parameters not be the
    same as any of the special built-in variables and also not conflict
    with the names of any functions. Gawk has checked for the former
    since 3.1.7. With --posix, it now also checks for the latter.

XX. A number of bugs have been fixed. See the ChangeLog.

Changes from 4.1.0 to 4.1.1
---------------------------

1. The "stat" extension now includes a "devbsize" element which indicates
   the units for the "nblocks" element.

2. The extension facility now works on MinGW. Many of the extensions can be
   built and used directly.

3. A number of bugs in the pretty-printing / profiling code have been fixed.

4. Sockets and two-way pipes now work under MinGW.

5. The debugger now lists source code correctly under Cygwin.

6. Configuration and building with the Mac OS X libreadline should work now.

7. The -O option now works again.

8. The --include option, documented since 4.0, now actually works.

9. Infrastructure updated to automake 1.13.4, bison 3.0.2, and
   libtool 2.4.2.418.

10. The configure script now accepts a --disable-extensions option,
    which disables checking for and building the extensions.

11. The VMS port has been considerably improved. In particular config.h
    is now generated by a DCL script. Also, the extension facility works
    and several of the extensions can be built and used. Currently, the
    extension facility only works on Alpha and Itanium.

12. The API now provides functions pointers for malloc(), calloc(),
    realloc() and free(), to insure that the same memory allocation
    functions are always used. This bumps the minor version by one.

13. The printf quote flag now works correctly in locales with a different
    decimal point character but without a thousands separator character.
    If the thousands separator is a string, it will be correctly added
    to decimal numbers.

14. The readfile extension now has an input parser that will read whole
    files as a single record.

15. A number of bugs have been fixed. See the ChangeLog.

Changes from 4.0.2 to 4.1.0
---------------------------

1. The three executables gawk, pgawk, and dgawk, have been merged into
   one, named just gawk.  As a result:
   	* The -R option is gone
	* Use -D to run the debugger. An optional file argument is a
	  list of commands to run first.
	* Use -o to do pretty-printing only.
	* Use -p to do profiling.
   This considerably reduces gawk's "footprint" and eases the documentation
   burden as well.

2. Gawk now supports high precision arithmetic with MPFR.  The default is
   still double precision, but setting PREC changes things, or using
   the -M / --bignum options.  This support is not compiled in if the MPFR
   library is not available.

3. The new -i option (from xgawk) is used for loading awk library files.
   This differs from -f in that the first non-option argument is treated
   as a script.

4. The new -l option (from xgawk) is used for loading dynamic extensions.

5. The dynamic extension interface has been completely redone!  There is
   now a defined API for C extensions to use.  A C extension acts like
   a function written in awk, except that it cannot do everything that awk
   code can. However, this allows interfacing to any facility that is
   available from C.  This is a major development, see the doc, which has
   a nice shiny new chapter describing everything.

   This support is not compiled in if dynamic loading of shared libraries
   is not supported.

   The old extension mechanism is still supported for compatiblity, but
   it will most definitely be removed at the next major release.

6. The "inplace" extension, built using the new facility, can be used to
   simulate the GNU "sed -i" feature.

7. The and(), or() and xor() functions now take any number of arguments,
   with a minimum of two.

8. New arrays: SYMTAB, FUNCTAB, and PROCINFO["identifiers"]. SYMTAB allows
   indirect access to any defined variable or array; it is possible to
   "walk" the symbol table, if that should be necessary.

9. Support for building gawk with a cross compiler has been improved.

10. Infrastructure upgrades: bison 2.7.1, gettext 0.18.2.1, automake 1.13.1,
    libtool 2.4.2 for the extensions.

Changes from 4.0.1 to 4.0.2
---------------------------

1. Infrastructure upgrades: Autoconf 2.69, Automake 1.12.6, bison 2.7.

2. `fflush()', `nextfile', and `delete array' are all now part of POSIX.

3. fflush() behavior changed to match BWK awk and for POSIX - now both
   fflush() and fflush("") flush all open output redirections.

4. Various minor bug fixes and documentation updates.
 
Changes from 4.0.0 to 4.0.1
---------------------------

1. The default handling of backslash in sub() and gsub() has been reverted to
   the behavior of 3.1. It was silly to think I could break compatibility that
   way, even for standards compliance.

2. Completed the implementation of Rational Range Interpretation.

3. Failure to get the group set is no longer a fatal error.

4. Lots of minor bugs fixed and portability clean-ups along the way. See
   the ChangeLog for details.

Changes from 3.1.8 to 4.0.0
---------------------------

1. The special files /dev/pid, /dev/ppid, /dev/pgrpid and /dev/user are
   now completely gone. Use PROCINFO instead.

2. The POSIX 2008 behavior for `sub' and `gsub' are now the default.
   THIS CHANGES BEHAVIOR!!!!

3. The \s and \S escape sequences are now recognized in regular expressions.

4. The split() function accepts an optional fourth argument which is an array
   to hold the values of the separators.

5. The new -b / --characters-as-bytes option means "hands off my data"; gawk
   won't try to treat input as a multibyte string.

6. There is a new --sandbox option; see the doc.

7. Indirect function calls are now available.

8. Interval expressions are now part of default regular expressions for
   GNU Awk syntax.

9. --gen-po is now correctly named --gen-pot.

10. switch / case is now enabled by default. There's no longer a need
    for a configure-time option.

11. Gawk now supports BEGINFILE and ENDFILE. See the doc for details.

12. Directories named on the command line now produce a warning, not
    a fatal error, unless --posix or --traditional.

13. The new FPAT variable allows you to specify a regexp that matches
    the fields, instead of matching the field separator. The new patsplit()
    function gives the same capability for splitting.

14. All long options now have short options, for use in `#!' scripts.

15. Support for IPv6 is added via the /inet6/... special file. /inet4/...
    forces IPv4 and /inet chooses the system default (probably IPv4).

16. Added a warning for /[:space:]/ that should be /[[:space:]]/.

17. Merged with John Haque's byte code internals. Adds dgawk debugger and
    possibly improved performance.

18. `break' and `continue' are no longer valid outside a loop, even with
    --traditional.

19. POSIX character classes work with --traditional (BWK awk supports them).

20. Nuked redundant --compat, --copyleft, and --usage long options.

21. Arrays of arrays added. See the doc.

22. Per the GNU Coding Standards, dynamic extensions must now define
    a global symbol indicating that they are GPL-compatible. See
    the documentation and example extensions.
    THIS CHANGES BEHAVIOR!!!!

23. In POSIX mode, string comparisons use strcoll/wcscoll.
    THIS CHANGES BEHAVIOR!!!!

24. The option for raw sockets was removed, since it was never implemented.

25. Gawk now treats ranges of the form [d-h] as if they were in the C
    locale, no matter what kind of regexp is being used, and even if
    --posix.  The latest POSIX standard allows this, and the documentation
    has been updated.  Maybe this will stop all the questions about
    [a-z] matching uppercase letters.
    THIS CHANGES BEHAVIOR!!!!

26. PROCINFO["strftime"] now holds the default format for strftime().

27. Updated to latest infrastructure: Autoconf 2.68, Automake 1.11.1,
    Gettext 0.18.1, Bison 2.5.

28. Many code cleanups. Removed code for many old, unsupported systems:
	- Atari
	- Amiga
	- BeOS
	- Cray
	- MIPS RiscOS
	- MS-DOS with Microsoft Compiler
	- MS-Windows with Microsoft Compiler
	- NeXT
	- SunOS 3.x, Sun 386 (Road Runner)
	- Tandem (non-POSIX)
	- Prestandard VAX C compiler for VAX/VMS
	- Probably others that I've forgotten

29. If PROCINFO["sorted_in"] exists, for(iggy in foo) loops sort the
    indices before looping over them.  The value of this element
    provides control over how the indices are sorted before the loop
    traversal starts. See the manual.

30. A new isarray() function exists to distinguish if an item is an array
    or not, to make it possible to traverse multidimensional arrays.

31. asort() and asorti() take a third argument specifying how to sort.
    See the doc.