diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2019-02-04 21:06:45 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2019-02-04 21:06:45 +0200 |
commit | fb0b9cacebb6dcbbd09bdc491156bf4bd0d2022e (patch) | |
tree | 2f2108a9bde5b233af66fa0655244f30bd212965 | |
parent | 1340f7150451f6b1d61b701c973fc0e3ba7f36da (diff) | |
download | egawk-fb0b9cacebb6dcbbd09bdc491156bf4bd0d2022e.tar.gz egawk-fb0b9cacebb6dcbbd09bdc491156bf4bd0d2022e.tar.bz2 egawk-fb0b9cacebb6dcbbd09bdc491156bf4bd0d2022e.zip |
Rotate NEWS into NEWS.1, start fresh NEWS.
-rwxr-xr-x | ChangeLog | 5 | ||||
-rw-r--r-- | NEWS | 477 | ||||
-rw-r--r-- | NEWS.1 | 480 |
3 files changed, 486 insertions, 476 deletions
@@ -1,3 +1,8 @@ +2019-02-04 Arnold D. Robbins <arnold@skeeve.com> + + * NEWS.1: Rotated in from NEWS. + * NEWS: Shortened to start over again with 5.0 changes. + 2019-02-03 Arnold D. Robbins <arnold@skeeve.com> * awkgram.y (snode): Disallow @/.../ as second param of index, also. @@ -1,5 +1,4 @@ - Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 - Free Software Foundation, Inc. + Copyright (C) 2019, Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -46,477 +45,3 @@ Changes from 4.2.1 to 5.0.0 XX. A number of bugs, some of them quite significant, have been fixed. See the ChangeLog for details. - -Changes from 4.2.0 to 4.2.1 ---------------------------- - -1. Support for OS/2 has been brought up to date. This support was - accidentally omitted from the initial 4.2 release, for which - we apologize. - -2. The manual received a number of updates to make it format better - for PDF. - -3. A new configure option, --enable-versioned-dir, causes the directory - holding extensions to include the API version in its name. - -4. extension/configure.ac has been improved considerably. - -5. In MPFR mode, When ROUNDMODE changes, string values for numerically - typed values will be redone. - -6. The various 'inplace' tests now pass on modern BSD systems. - -7. A number of bugs, some of them quite significant, have been fixed. - See the ChangeLog for details. - -Changes from 4.1.4 to 4.2.0 ---------------------------- - -1. If not in POSIX mode, changes to ENVIRON are reflected into - gawk's environment, affecting any programs run by system() - or for piped redirections. This can also affect built-in routines, such - as mktime(), which is typically influenced by the TZ environment variable. - -2. The series of numbers returned by rand() should now be "more - random" than previously. Gawk's rand() remains repeatable; you will - get the same series of numbers each time you call rand() repeatedly, - but this will be a different series than previously. - -3. Multiple changes related to the pretty printer: - - * The --pretty-print option no longer runs the program too. - - * Pretty printing now preserves comments and places them into the - pretty-printed file. - - * Pretty-printing now uses the original text of constant numeric values - for pretty-printing and profiling. - - * Pretty-printing now preserves parenthesized expressions as they - were in the source file. This solves several niggling corner cases - with such things. - -4. The igawk script and igawk.1 man page are no longer installed by - `make install'. They have been obsolete since gawk 4.0.0. - -5. Gawk can now be built with CMake. This is an alternative build - system for those who may want it; gawk is not going to switch off - use of the autotools anytime soon, if ever. - -6. Gawk now processes a maximum of two hexadecimal digits in \x - escape sequences inside strings. - -7. Setting PROCINFO["redirection", "NONFATAL"] to true makes I/O - errors for "redirection" not fatal, setting ERRNO. Setting - PROCINFO["NONFATAL"] makes all I/O nonfatal. See the manual. - -8. MirBSD is no longer supported. - -9. `make install' now installs shell startup files - $sysconfdir/profile.d/gawk.{csh,sh} containing shell functions to - manipulate the AWKPATH and AWKLIBPATH environment variables. On a Fedora - system, these files belong in /etc/profile.d, but the appropriate location - may be different on other platforms. - -10. Gawk now supports retryable I/O via PROCINFO[input-file, "RETRY"]; see - the manual. - -11. The C API has undergone changes that break binary compatibility with - the previous version. Thus the API version is now at 2.0. YOU WILL - NEED TO RECOMPILE YOUR EXTENSIONS to work with this version of gawk. - Source code compatibility remains intact, although you will get - compiler warnings if you do not revise your extensions. We strongly - recommend that you do so. Fortunately, the changes are fairly minor - and straightforward. - - See the manual for the new features. - -12. Revisions in the POSIX standard remove the special case for POSIX - mode when FS = " " where newline was not a field separator. The code - and doc have been updated. - -13. Gawk now supports strongly typed regexp constants. Such constants - look like @/.../. You can assign them to variables, pass them to - functions, use them in ~, !~ and the case part of a switch statement. - More details are provided in the manual. - -14. The new typeof() function can be used to indicate if a variable or - array element is an array, regexp, string or number. - -15. As promised when 4.1 was released, the old extension mechanism, - using the `extension' function, is now gone. - -16. Support for GNU/Linux on Alpha systems has been removed. - -17. Optimizations are now enabled by default. Use the new -s/--no-optimize - option(s) to disable them. Pretty-printing and profiling automatically - disable optimizations so that the output program is the same as the - original input program. - -18. Gawk now uses fwrite_unlocked if it's available. This yields a 7% - 18% - improvement in raw output speed (gawk '{ print }' on a large file). - -19. Passing negative operands to any of the bitwise functions now - produces a fatal error. - -20. Programs that toggle IGNORECASE a lot should now be noticeably faster. - -21. The mktime() function now accepts an optional second argument. If this - argument is present and is non-zero or non-null, the time will be converted - from UTC instead of from the local timezone. - -22. The FIELDWIDTHS parsing syntax has been enhanced to allow specifying - how many characters to skip before a field starts. It also allows - specifying '*' as the last character to mean "the rest of the record". - Field splitting with FIELDWIDTHS now sets NF correctly. The documentation - for FIELDWIDTHS in the manual has been considerably reorganized and - improved as well. - -23. The PROCINFO["argv"] array records all of gawk's command line arguments - as gawk received them (the values of the C level argv array). - -24. The DJGPP port has been revived and now has an official maintainer. - -25. The manual has been translated into Italian! The translation is - included in the distribution. - -Changes from 4.1.3 to 4.1.4 ---------------------------- - -1. Updated to GNU autoconf 2.69, automake 1.15, gettext 0.19.7, - texinfo 6.1, texinfo.tex 2016-02-05.07, libtool 2.4.6. - -2. z/OS support updated. - -3. At the beginning of each statement, the debugger now checks and - reports watchpoints that have fired before checking for breakpoints. - This gives more natural behavior to the user. - -4. The "exit" command has been added to the debugger as an alias - for "quit". - -5. AIX 7.1 should pass the test suite now. Similar for Minix. - -6. VMS support has been updated. - -7. The profiler / pretty-printer now chains else-if statements instead - of causing cascading elses. - -8. The return value of system() has been enhanced to convey more information. - See the doc. - -9. Attempting to write to the "to" end of a two-way pipe that has been - closed is now a fatal error. Similarly, so is reading from the "from" - end that has been closed. - -10. MinGW support has been updated. - -11. The -d option now allows -d- to print to standard output. - -12. Error messages for --help and in other instances should now get - translated correctly. - -13. A new environment variable GAWK_LOCALE_DIR may be set to locate the .mo - file for gawk itself. - -14. The DJGPP port is now officially deprecated. - -15. A number of bugs have been fixed. See the ChangeLog. - -Changes from 4.1.2 to 4.1.3 ---------------------------- - -1. Regexp parsing with extra brackets should now be working again. There - are several new tests to keep this stuff on track. - -2. Updated to latest config.guess and config.sub. - -3. A (small) number of bugs have been fixed. See the ChangeLog. - -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. - -13. The test suite should check for necessary locales and skip the tests - where it matters if support isn't what it should be. - -14. Gawk now expects to be compiled on a system with multibyte character - support. Systems without such support, at least at the C language - level, are so obsolete as to not be worth supporting anymore. - -15. 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. @@ -0,0 +1,480 @@ + Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 + 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.2.0 to 4.2.1 +--------------------------- + +1. Support for OS/2 has been brought up to date. This support was + accidentally omitted from the initial 4.2 release, for which + we apologize. + +2. The manual received a number of updates to make it format better + for PDF. + +3. A new configure option, --enable-versioned-dir, causes the directory + holding extensions to include the API version in its name. + +4. extension/configure.ac has been improved considerably. + +5. In MPFR mode, When ROUNDMODE changes, string values for numerically + typed values will be redone. + +6. The various 'inplace' tests now pass on modern BSD systems. + +7. A number of bugs, some of them quite significant, have been fixed. + See the ChangeLog for details. + +Changes from 4.1.4 to 4.2.0 +--------------------------- + +1. If not in POSIX mode, changes to ENVIRON are reflected into + gawk's environment, affecting any programs run by system() + or for piped redirections. This can also affect built-in routines, such + as mktime(), which is typically influenced by the TZ environment variable. + +2. The series of numbers returned by rand() should now be "more + random" than previously. Gawk's rand() remains repeatable; you will + get the same series of numbers each time you call rand() repeatedly, + but this will be a different series than previously. + +3. Multiple changes related to the pretty printer: + + * The --pretty-print option no longer runs the program too. + + * Pretty printing now preserves comments and places them into the + pretty-printed file. + + * Pretty-printing now uses the original text of constant numeric values + for pretty-printing and profiling. + + * Pretty-printing now preserves parenthesized expressions as they + were in the source file. This solves several niggling corner cases + with such things. + +4. The igawk script and igawk.1 man page are no longer installed by + `make install'. They have been obsolete since gawk 4.0.0. + +5. Gawk can now be built with CMake. This is an alternative build + system for those who may want it; gawk is not going to switch off + use of the autotools anytime soon, if ever. + +6. Gawk now processes a maximum of two hexadecimal digits in \x + escape sequences inside strings. + +7. Setting PROCINFO["redirection", "NONFATAL"] to true makes I/O + errors for "redirection" not fatal, setting ERRNO. Setting + PROCINFO["NONFATAL"] makes all I/O nonfatal. See the manual. + +8. MirBSD is no longer supported. + +9. `make install' now installs shell startup files + $sysconfdir/profile.d/gawk.{csh,sh} containing shell functions to + manipulate the AWKPATH and AWKLIBPATH environment variables. On a Fedora + system, these files belong in /etc/profile.d, but the appropriate location + may be different on other platforms. + +10. Gawk now supports retryable I/O via PROCINFO[input-file, "RETRY"]; see + the manual. + +11. The C API has undergone changes that break binary compatibility with + the previous version. Thus the API version is now at 2.0. YOU WILL + NEED TO RECOMPILE YOUR EXTENSIONS to work with this version of gawk. + Source code compatibility remains intact, although you will get + compiler warnings if you do not revise your extensions. We strongly + recommend that you do so. Fortunately, the changes are fairly minor + and straightforward. + + See the manual for the new features. + +12. Revisions in the POSIX standard remove the special case for POSIX + mode when FS = " " where newline was not a field separator. The code + and doc have been updated. + +13. Gawk now supports strongly typed regexp constants. Such constants + look like @/.../. You can assign them to variables, pass them to + functions, use them in ~, !~ and the case part of a switch statement. + More details are provided in the manual. + +14. The new typeof() function can be used to indicate if a variable or + array element is an array, regexp, string or number. + +15. As promised when 4.1 was released, the old extension mechanism, + using the `extension' function, is now gone. + +16. Support for GNU/Linux on Alpha systems has been removed. + +17. Optimizations are now enabled by default. Use the new -s/--no-optimize + option(s) to disable them. Pretty-printing and profiling automatically + disable optimizations so that the output program is the same as the + original input program. + +18. Gawk now uses fwrite_unlocked if it's available. This yields a 7% - 18% + improvement in raw output speed (gawk '{ print }' on a large file). + +19. Passing negative operands to any of the bitwise functions now + produces a fatal error. + +20. Programs that toggle IGNORECASE a lot should now be noticeably faster. + +21. The mktime() function now accepts an optional second argument. If this + argument is present and is non-zero or non-null, the time will be converted + from UTC instead of from the local timezone. + +22. The FIELDWIDTHS parsing syntax has been enhanced to allow specifying + how many characters to skip before a field starts. It also allows + specifying '*' as the last character to mean "the rest of the record". + Field splitting with FIELDWIDTHS now sets NF correctly. The documentation + for FIELDWIDTHS in the manual has been considerably reorganized and + improved as well. + +23. The PROCINFO["argv"] array records all of gawk's command line arguments + as gawk received them (the values of the C level argv array). + +24. The DJGPP port has been revived and now has an official maintainer. + +25. The manual has been translated into Italian! The translation is + included in the distribution. + +Changes from 4.1.3 to 4.1.4 +--------------------------- + +1. Updated to GNU autoconf 2.69, automake 1.15, gettext 0.19.7, + texinfo 6.1, texinfo.tex 2016-02-05.07, libtool 2.4.6. + +2. z/OS support updated. + +3. At the beginning of each statement, the debugger now checks and + reports watchpoints that have fired before checking for breakpoints. + This gives more natural behavior to the user. + +4. The "exit" command has been added to the debugger as an alias + for "quit". + +5. AIX 7.1 should pass the test suite now. Similar for Minix. + +6. VMS support has been updated. + +7. The profiler / pretty-printer now chains else-if statements instead + of causing cascading elses. + +8. The return value of system() has been enhanced to convey more information. + See the doc. + +9. Attempting to write to the "to" end of a two-way pipe that has been + closed is now a fatal error. Similarly, so is reading from the "from" + end that has been closed. + +10. MinGW support has been updated. + +11. The -d option now allows -d- to print to standard output. + +12. Error messages for --help and in other instances should now get + translated correctly. + +13. A new environment variable GAWK_LOCALE_DIR may be set to locate the .mo + file for gawk itself. + +14. The DJGPP port is now officially deprecated. + +15. A number of bugs have been fixed. See the ChangeLog. + +Changes from 4.1.2 to 4.1.3 +--------------------------- + +1. Regexp parsing with extra brackets should now be working again. There + are several new tests to keep this stuff on track. + +2. Updated to latest config.guess and config.sub. + +3. A (small) number of bugs have been fixed. See the ChangeLog. + +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. + +13. The test suite should check for necessary locales and skip the tests + where it matters if support isn't what it should be. + +14. Gawk now expects to be compiled on a system with multibyte character + support. Systems without such support, at least at the C language + level, are so obsolete as to not be worth supporting anymore. + +15. 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. |