Blame NEWS

Packit Service f629e6
   Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
Packit Service f629e6
   Free Software Foundation, Inc.
Packit Service f629e6
   
Packit Service f629e6
   Copying and distribution of this file, with or without modification,
Packit Service f629e6
   are permitted in any medium without royalty provided the copyright
Packit Service f629e6
   notice and this notice are preserved.
Packit Service f629e6
Packit Service f629e6
Changes from 4.2.0 to 4.2.1
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. Support for OS/2 has been brought up to date.  This support was
Packit Service f629e6
   accidentally omitted from the initial 4.2 release, for which
Packit Service f629e6
   we apologize.
Packit Service f629e6
Packit Service f629e6
2. The manual received a number of updates to make it format better
Packit Service f629e6
   for PDF.
Packit Service f629e6
Packit Service f629e6
3. A new configure option, --enable-versioned-dir, causes the directory
Packit Service f629e6
   holding extensions to include the API version in its name.
Packit Service f629e6
Packit Service f629e6
4. extension/configure.ac has been improved considerably.
Packit Service f629e6
Packit Service f629e6
5. In MPFR mode, When ROUNDMODE changes, string values for numerically
Packit Service f629e6
   type values will be redone.
Packit Service f629e6
Packit Service f629e6
6. The various 'inplace' tests now pass on modern BSD systems.
Packit Service f629e6
Packit Service f629e6
7. A number of bugs, some of them quite significant, have been fixed.
Packit Service f629e6
   See the ChangeLog for details.
Packit Service f629e6
Packit Service f629e6
Changes from 4.1.4 to 4.2.0
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. If not in POSIX mode, changes to ENVIRON are reflected into
Packit Service f629e6
   gawk's environment, affecting any programs run by system()
Packit Service f629e6
   or for piped redirections. This can also affect built-in routines, such
Packit Service f629e6
   as mktime(), which is typically influenced by the TZ environment variable.
Packit Service f629e6
Packit Service f629e6
2. The series of numbers returned by rand() should now be "more
Packit Service f629e6
   random" than previously.  Gawk's rand() remains repeatable; you will
Packit Service f629e6
   get the same series of numbers each time you call rand() repeatedly,
Packit Service f629e6
   but this will be a different series than previously.
Packit Service f629e6
Packit Service f629e6
3. Multiple changes related to the pretty printer:
Packit Service f629e6
Packit Service f629e6
   * The --pretty-print option no longer runs the program too.
Packit Service f629e6
Packit Service f629e6
   * Pretty printing now preserves comments and places them into the
Packit Service f629e6
     pretty-printed file.
Packit Service f629e6
Packit Service f629e6
   * Pretty-printing now uses the original text of constant numeric values
Packit Service f629e6
     for pretty-printing and profiling.
Packit Service f629e6
Packit Service f629e6
   * Pretty-printing now preserves parenthesized expressions as they
Packit Service f629e6
     were in the source file. This solves several niggling corner cases
Packit Service f629e6
     with such things.
Packit Service f629e6
Packit Service f629e6
4. The igawk script and igawk.1 man page are no longer installed by
Packit Service f629e6
   `make install'.  They have been obsolete since gawk 4.0.0.
Packit Service f629e6
Packit Service f629e6
5. Gawk can now be built with CMake.  This is an alternative build
Packit Service f629e6
   system for those who may want it; gawk is not going to switch off
Packit Service f629e6
   use of the autotools anytime soon, if ever.
Packit Service f629e6
Packit Service f629e6
6. Gawk now processes a maximum of two hexadecimal digits in \x
Packit Service f629e6
   escape sequences inside strings.
Packit Service f629e6
Packit Service f629e6
7. Setting PROCINFO["redirection", "NONFATAL"] to true makes I/O
Packit Service f629e6
   errors for "redirection" not fatal, setting ERRNO. Setting
Packit Service f629e6
   PROCINFO["NONFATAL"] makes all I/O nonfatal. See the manual.
Packit Service f629e6
Packit Service f629e6
8. MirBSD is no longer supported.
Packit Service f629e6
Packit Service f629e6
9. `make install' now installs shell startup files
Packit Service f629e6
   $sysconfdir/profile.d/gawk.{csh,sh} containing shell functions to
Packit Service f629e6
   manipulate the AWKPATH and AWKLIBPATH environment variables.  On a Fedora
Packit Service f629e6
   system, these files belong in /etc/profile.d, but the appropriate location
Packit Service f629e6
   may be different on other platforms.
Packit Service f629e6
Packit Service f629e6
10. Gawk now supports retryable I/O via PROCINFO[input-file, "RETRY"]; see
Packit Service f629e6
    the manual.
Packit Service f629e6
Packit Service f629e6
11. The C API has undergone changes that break binary compatibility with
Packit Service f629e6
    the previous version. Thus the API version is now at 2.0.  YOU WILL
Packit Service f629e6
    NEED TO RECOMPILE YOUR EXTENSIONS to work with this version of gawk.
Packit Service f629e6
    Source code compatibility remains intact, although you will get
Packit Service f629e6
    compiler warnings if you do not revise your extensions. We strongly
Packit Service f629e6
    recommend that you do so.  Fortunately, the changes are fairly minor
Packit Service f629e6
    and straightforward.
Packit Service f629e6
Packit Service f629e6
    See the manual for the new features.
Packit Service f629e6
Packit Service f629e6
12. Revisions in the POSIX standard remove the special case for POSIX
Packit Service f629e6
    mode when FS = " " where newline was not a field separator. The code
Packit Service f629e6
    and doc have been updated.
Packit Service f629e6
Packit Service f629e6
13. Gawk now supports strongly typed regexp constants. Such constants
Packit Service f629e6
    look like @/.../.  You can assign them to variables, pass them to
Packit Service f629e6
    functions, use them in ~, !~ and the case part of a switch statement.
Packit Service f629e6
    More details are provided in the manual.
Packit Service f629e6
Packit Service f629e6
14. The new typeof() function can be used to indicate if a variable or
Packit Service f629e6
    array element is an array, regexp, string or number.
Packit Service f629e6
Packit Service f629e6
15. As promised when 4.1 was released, the old extension mechanism,
Packit Service f629e6
    using the `extension' function, is now gone.
Packit Service f629e6
Packit Service f629e6
16. Support for GNU/Linux on Alpha systems has been removed.
Packit Service f629e6
Packit Service f629e6
17. Optimizations are now enabled by default. Use the new -s/--no-optimize
Packit Service f629e6
    option(s) to disable them.  Pretty-printing and profiling automatically
Packit Service f629e6
    disable optimizations so that the output program is the same as the
Packit Service f629e6
    original input program.
Packit Service f629e6
Packit Service f629e6
18. Gawk now uses fwrite_unlocked if it's available. This yields a 7% - 18%
Packit Service f629e6
    improvement in raw output speed (gawk '{ print }' on a large file).
Packit Service f629e6
Packit Service f629e6
19. Passing negative operands to any of the bitwise functions now
Packit Service f629e6
    produces a fatal error.
Packit Service f629e6
Packit Service f629e6
20. Programs that toggle IGNORECASE a lot should now be noticeably faster.
Packit Service f629e6
Packit Service f629e6
21. The mktime function now accepts an optional second argument. If this
Packit Service f629e6
    argument is present and is non-zero or non-null, the time will be converted
Packit Service f629e6
    from UTC instead of from the local timezone.
Packit Service f629e6
Packit Service f629e6
22. The FIELDWIDTHS parsing syntax has been enhanced to allow specifying
Packit Service f629e6
    how many characters to skip before a field starts. It also allows
Packit Service f629e6
    specifying '*' as the last character to mean "the rest of the record".
Packit Service f629e6
    Field splitting with FIELDWIDTHS now sets NF correctly.  The documentation
Packit Service f629e6
    for FIELDWIDTHS in the manual has been considerably reorganized and
Packit Service f629e6
    improved as well.
Packit Service f629e6
Packit Service f629e6
23. The PROCINFO["argv"] array records all of gawk's command line arguments
Packit Service f629e6
    as gawk received them (the values of the C level argv array).
Packit Service f629e6
Packit Service f629e6
24. The DJGPP port has been revived and now has an official maintainer.
Packit Service f629e6
Packit Service f629e6
25. The manual has been translated into Italian!  The translation is
Packit Service f629e6
    included in the distribution.
Packit Service f629e6
Packit Service f629e6
Changes from 4.1.3 to 4.1.4
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. Updated to GNU autoconf 2.69, automake 1.15, gettext 0.19.7,
Packit Service f629e6
   texinfo 6.1, texinfo.tex 2016-02-05.07, libtool 2.4.6.
Packit Service f629e6
Packit Service f629e6
2. z/OS support updated.
Packit Service f629e6
Packit Service f629e6
3. At the beginning of each statement, the debugger now checks and
Packit Service f629e6
   reports watchpoints that have fired before checking for breakpoints.
Packit Service f629e6
   This gives more natural behavior to the user.
Packit Service f629e6
Packit Service f629e6
4. The "exit" command has been added to the debugger as an alias
Packit Service f629e6
   for "quit".
Packit Service f629e6
Packit Service f629e6
5. AIX 7.1 should pass the test suite now.  Similar for Minix.
Packit Service f629e6
Packit Service f629e6
6. VMS support has been updated.
Packit Service f629e6
Packit Service f629e6
7. The profiler / pretty-printer now chains else-if statements instead
Packit Service f629e6
   of causing cascading elses.
Packit Service f629e6
Packit Service f629e6
8. The return value of system() has been enhanced to convey more information.
Packit Service f629e6
   See the doc.
Packit Service f629e6
Packit Service f629e6
9. Attempting to write to the "to" end of a two-way pipe that has been
Packit Service f629e6
   closed is now a fatal error. Similarly, so is reading from the "from"
Packit Service f629e6
   end that has been closed.
Packit Service f629e6
Packit Service f629e6
10. MinGW support has been updated.
Packit Service f629e6
Packit Service f629e6
11. The -d option now allows -d- to print to standard output.
Packit Service f629e6
Packit Service f629e6
12. Error messages for --help and in other instances should now get
Packit Service f629e6
    translated correctly.
Packit Service f629e6
Packit Service f629e6
13. A new environment variable GAWK_LOCALE_DIR may be set to locate the .mo
Packit Service f629e6
    file for gawk itself.
Packit Service f629e6
Packit Service f629e6
14. The DJGPP port is now officially deprecated.
Packit Service f629e6
Packit Service f629e6
15. A number of bugs have been fixed. See the ChangeLog.
Packit Service f629e6
Packit Service f629e6
Changes from 4.1.2 to 4.1.3
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. Regexp parsing with extra brackets should now be working again. There
Packit Service f629e6
   are several new tests to keep this stuff on track.
Packit Service f629e6
Packit Service f629e6
2. Updated to latest config.guess and config.sub.
Packit Service f629e6
Packit Service f629e6
3. A (small) number of bugs have been fixed. See the ChangeLog.
Packit Service f629e6
Packit Service f629e6
Changes from 4.1.1 to 4.1.2
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. The manual has been considerably improved.
Packit Service f629e6
	- Thoroughly reviewed and updated.
Packit Service f629e6
	- Out-of-date examples replaced.
Packit Service f629e6
	- Chapter 15 on MPFR reworked.
Packit Service f629e6
	- Summary sections added to all chapters.
Packit Service f629e6
	- Exercises added in several chapters.
Packit Service f629e6
	- Heavily proof-read and copyedited.
Packit Service f629e6
Packit Service f629e6
2. The debugger's "restart" command now works again.
Packit Service f629e6
Packit Service f629e6
3. Redirected getline is now allowed inside BEGINFILE/ENDFILE.
Packit Service f629e6
Packit Service f629e6
4. A number of bugs have been fixed in the MPFR code.
Packit Service f629e6
Packit Service f629e6
5. Indirect function calls now work for both built-in and extension functions.
Packit Service f629e6
Packit Service f629e6
6. Built-in functions are now included in FUNCTAB.
Packit Service f629e6
Packit Service f629e6
7. POSIX and historical practice require the exclusive use of the English
Packit Service f629e6
   alphabet in identifiers.  In non-English locales, it was accidentally
Packit Service f629e6
   possible to use "letters" beside those of the English alphabet.  This
Packit Service f629e6
   has been fixed. (isalpha and isalnum are NOT our friends.)
Packit Service f629e6
Packit Service f629e6
   If you feel that you must have this misfeature, use `configure --help'
Packit Service f629e6
   to see what option to use when configuring gawk to reenable it.
Packit Service f629e6
Packit Service f629e6
8. The "where" command has been added to the debugger as an alias
Packit Service f629e6
   for "backtrace". This will make life easier for long-time GDB users.
Packit Service f629e6
Packit Service f629e6
9. Gawk no longer explicitly checks the current directory after doing
Packit Service f629e6
   a path search of AWKPATH.  The default value continues to have "." at
Packit Service f629e6
   the front, so most people should not be affected.  If you have your own
Packit Service f629e6
   AWKPATH setting, be sure to put "." in it somewhere. The documentation
Packit Service f629e6
   has been updated and clarified.
Packit Service f629e6
Packit Service f629e6
10. Infrastructure upgrades: Automake 1.15, Gettext 0.19.4, Libtool 2.4.6,
Packit Service f629e6
    Bison 3.0.4.
Packit Service f629e6
Packit Service f629e6
11. If a user-defined function has a parameter with the same name as another
Packit Service f629e6
    user-defined function, it is no longer possible to call the second
Packit Service f629e6
    function from inside the first.
Packit Service f629e6
Packit Service f629e6
12. POSIX requires that the names of function parameters not be the
Packit Service f629e6
    same as any of the special built-in variables and also not conflict
Packit Service f629e6
    with the names of any functions. Gawk has checked for the former
Packit Service f629e6
    since 3.1.7. With --posix, it now also checks for the latter.
Packit Service f629e6
Packit Service f629e6
13. The test suite should check for necessary locales and skip the tests
Packit Service f629e6
    where it matters if support isn't what it should be.
Packit Service f629e6
Packit Service f629e6
14. Gawk now expects to be compiled on a system with multibyte character
Packit Service f629e6
    support.  Systems without such support, at least at the C language
Packit Service f629e6
    level, are so obsolete as to not be worth supporting anymore.
Packit Service f629e6
Packit Service f629e6
15. A number of bugs have been fixed. See the ChangeLog.
Packit Service f629e6
Packit Service f629e6
Changes from 4.1.0 to 4.1.1
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. The "stat" extension now includes a "devbsize" element which indicates
Packit Service f629e6
   the units for the "nblocks" element.
Packit Service f629e6
Packit Service f629e6
2. The extension facility now works on MinGW. Many of the extensions can be
Packit Service f629e6
   built and used directly.
Packit Service f629e6
Packit Service f629e6
3. A number of bugs in the pretty-printing / profiling code have been fixed.
Packit Service f629e6
Packit Service f629e6
4. Sockets and two-way pipes now work under MinGW.
Packit Service f629e6
Packit Service f629e6
5. The debugger now lists source code correctly under Cygwin.
Packit Service f629e6
Packit Service f629e6
6. Configuration and building with the Mac OS X libreadline should work now.
Packit Service f629e6
Packit Service f629e6
7. The -O option now works again.
Packit Service f629e6
Packit Service f629e6
8. The --include option, documented since 4.0, now actually works.
Packit Service f629e6
Packit Service f629e6
9. Infrastructure updated to automake 1.13.4, bison 3.0.2, and
Packit Service f629e6
   libtool 2.4.2.418.
Packit Service f629e6
Packit Service f629e6
10. The configure script now accepts a --disable-extensions option,
Packit Service f629e6
    which disables checking for and building the extensions.
Packit Service f629e6
Packit Service f629e6
11. The VMS port has been considerably improved. In particular config.h
Packit Service f629e6
    is now generated by a DCL script. Also, the extension facility works
Packit Service f629e6
    and several of the extensions can be built and used. Currently, the
Packit Service f629e6
    extension facility only works on Alpha and Itanium.
Packit Service f629e6
Packit Service f629e6
12. The API now provides functions pointers for malloc(), calloc(),
Packit Service f629e6
    realloc() and free(), to insure that the same memory allocation
Packit Service f629e6
    functions are always used. This bumps the minor version by one.
Packit Service f629e6
Packit Service f629e6
13. The printf quote flag now works correctly in locales with a different
Packit Service f629e6
    decimal point character but without a thousands separator character.
Packit Service f629e6
    If the thousands separator is a string, it will be correctly added
Packit Service f629e6
    to decimal numbers.
Packit Service f629e6
Packit Service f629e6
14. The readfile extension now has an input parser that will read whole
Packit Service f629e6
    files as a single record.
Packit Service f629e6
Packit Service f629e6
15. A number of bugs have been fixed. See the ChangeLog.
Packit Service f629e6
Packit Service f629e6
Changes from 4.0.2 to 4.1.0
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. The three executables gawk, pgawk, and dgawk, have been merged into
Packit Service f629e6
   one, named just gawk.  As a result:
Packit Service f629e6
   	* The -R option is gone
Packit Service f629e6
	* Use -D to run the debugger. An optional file argument is a
Packit Service f629e6
	  list of commands to run first.
Packit Service f629e6
	* Use -o to do pretty-printing only.
Packit Service f629e6
	* Use -p to do profiling.
Packit Service f629e6
   This considerably reduces gawk's "footprint" and eases the documentation
Packit Service f629e6
   burden as well.
Packit Service f629e6
Packit Service f629e6
2. Gawk now supports high precision arithmetic with MPFR.  The default is
Packit Service f629e6
   still double precision, but setting PREC changes things, or using
Packit Service f629e6
   the -M / --bignum options.  This support is not compiled in if the MPFR
Packit Service f629e6
   library is not available.
Packit Service f629e6
Packit Service f629e6
3. The new -i option (from xgawk) is used for loading awk library files.
Packit Service f629e6
   This differs from -f in that the first non-option argument is treated
Packit Service f629e6
   as a script.
Packit Service f629e6
Packit Service f629e6
4. The new -l option (from xgawk) is used for loading dynamic extensions.
Packit Service f629e6
Packit Service f629e6
5. The dynamic extension interface has been completely redone!  There is
Packit Service f629e6
   now a defined API for C extensions to use.  A C extension acts like
Packit Service f629e6
   a function written in awk, except that it cannot do everything that awk
Packit Service f629e6
   code can. However, this allows interfacing to any facility that is
Packit Service f629e6
   available from C.  This is a major development, see the doc, which has
Packit Service f629e6
   a nice shiny new chapter describing everything.
Packit Service f629e6
Packit Service f629e6
   This support is not compiled in if dynamic loading of shared libraries
Packit Service f629e6
   is not supported.
Packit Service f629e6
Packit Service f629e6
   The old extension mechanism is still supported for compatiblity, but
Packit Service f629e6
   it will most definitely be removed at the next major release.
Packit Service f629e6
Packit Service f629e6
6. The "inplace" extension, built using the new facility, can be used to
Packit Service f629e6
   simulate the GNU "sed -i" feature.
Packit Service f629e6
Packit Service f629e6
7. The and(), or() and xor() functions now take any number of arguments,
Packit Service f629e6
   with a minimum of two.
Packit Service f629e6
Packit Service f629e6
8. New arrays: SYMTAB, FUNCTAB, and PROCINFO["identifiers"]. SYMTAB allows
Packit Service f629e6
   indirect access to any defined variable or array; it is possible to
Packit Service f629e6
   "walk" the symbol table, if that should be necessary.
Packit Service f629e6
Packit Service f629e6
9. Support for building gawk with a cross compiler has been improved.
Packit Service f629e6
Packit Service f629e6
10. Infrastructure upgrades: bison 2.7.1, gettext 0.18.2.1, automake 1.13.1,
Packit Service f629e6
    libtool 2.4.2 for the extensions.
Packit Service f629e6
Packit Service f629e6
Changes from 4.0.1 to 4.0.2
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. Infrastructure upgrades: Autoconf 2.69, Automake 1.12.6, bison 2.7.
Packit Service f629e6
Packit Service f629e6
2. `fflush()', `nextfile', and `delete array' are all now part of POSIX.
Packit Service f629e6
Packit Service f629e6
3. fflush() behavior changed to match BWK awk and for POSIX - now both
Packit Service f629e6
   fflush() and fflush("") flush all open output redirections.
Packit Service f629e6
Packit Service f629e6
4. Various minor bug fixes and documentation updates.
Packit Service f629e6
 
Packit Service f629e6
Changes from 4.0.0 to 4.0.1
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. The default handling of backslash in sub() and gsub() has been reverted to
Packit Service f629e6
   the behavior of 3.1. It was silly to think I could break compatibility that
Packit Service f629e6
   way, even for standards compliance.
Packit Service f629e6
Packit Service f629e6
2. Completed the implementation of Rational Range Interpretation.
Packit Service f629e6
Packit Service f629e6
3. Failure to get the group set is no longer a fatal error.
Packit Service f629e6
Packit Service f629e6
4. Lots of minor bugs fixed and portability clean-ups along the way. See
Packit Service f629e6
   the ChangeLog for details.
Packit Service f629e6
Packit Service f629e6
Changes from 3.1.8 to 4.0.0
Packit Service f629e6
---------------------------
Packit Service f629e6
Packit Service f629e6
1. The special files /dev/pid, /dev/ppid, /dev/pgrpid and /dev/user are
Packit Service f629e6
   now completely gone. Use PROCINFO instead.
Packit Service f629e6
Packit Service f629e6
2. The POSIX 2008 behavior for `sub' and `gsub' are now the default.
Packit Service f629e6
   THIS CHANGES BEHAVIOR!!!!
Packit Service f629e6
Packit Service f629e6
3. The \s and \S escape sequences are now recognized in regular expressions.
Packit Service f629e6
Packit Service f629e6
4. The split() function accepts an optional fourth argument which is an array
Packit Service f629e6
   to hold the values of the separators.
Packit Service f629e6
Packit Service f629e6
5. The new -b / --characters-as-bytes option means "hands off my data"; gawk
Packit Service f629e6
   won't try to treat input as a multibyte string.
Packit Service f629e6
Packit Service f629e6
6. There is a new --sandbox option; see the doc.
Packit Service f629e6
Packit Service f629e6
7. Indirect function calls are now available.
Packit Service f629e6
Packit Service f629e6
8. Interval expressions are now part of default regular expressions for
Packit Service f629e6
   GNU Awk syntax.
Packit Service f629e6
Packit Service f629e6
9. --gen-po is now correctly named --gen-pot.
Packit Service f629e6
Packit Service f629e6
10. switch / case is now enabled by default. There's no longer a need
Packit Service f629e6
    for a configure-time option.
Packit Service f629e6
Packit Service f629e6
11. Gawk now supports BEGINFILE and ENDFILE. See the doc for details.
Packit Service f629e6
Packit Service f629e6
12. Directories named on the command line now produce a warning, not
Packit Service f629e6
    a fatal error, unless --posix or --traditional.
Packit Service f629e6
Packit Service f629e6
13. The new FPAT variable allows you to specify a regexp that matches
Packit Service f629e6
    the fields, instead of matching the field separator. The new patsplit()
Packit Service f629e6
    function gives the same capability for splitting.
Packit Service f629e6
Packit Service f629e6
14. All long options now have short options, for use in `#!' scripts.
Packit Service f629e6
Packit Service f629e6
15. Support for IPv6 is added via the /inet6/... special file. /inet4/...
Packit Service f629e6
    forces IPv4 and /inet chooses the system default (probably IPv4).
Packit Service f629e6
Packit Service f629e6
16. Added a warning for /[:space:]/ that should be /[[:space:]]/.
Packit Service f629e6
Packit Service f629e6
17. Merged with John Haque's byte code internals. Adds dgawk debugger and
Packit Service f629e6
    possibly improved performance.
Packit Service f629e6
Packit Service f629e6
18. `break' and `continue' are no longer valid outside a loop, even with
Packit Service f629e6
    --traditional.
Packit Service f629e6
Packit Service f629e6
19. POSIX character classes work with --traditional (BWK awk supports them).
Packit Service f629e6
Packit Service f629e6
20. Nuked redundant --compat, --copyleft, and --usage long options.
Packit Service f629e6
Packit Service f629e6
21. Arrays of arrays added. See the doc.
Packit Service f629e6
Packit Service f629e6
22. Per the GNU Coding Standards, dynamic extensions must now define
Packit Service f629e6
    a global symbol indicating that they are GPL-compatible. See
Packit Service f629e6
    the documentation and example extensions.
Packit Service f629e6
    THIS CHANGES BEHAVIOR!!!!
Packit Service f629e6
Packit Service f629e6
23. In POSIX mode, string comparisons use strcoll/wcscoll.
Packit Service f629e6
    THIS CHANGES BEHAVIOR!!!!
Packit Service f629e6
Packit Service f629e6
24. The option for raw sockets was removed, since it was never implemented.
Packit Service f629e6
Packit Service f629e6
25. Gawk now treats ranges of the form [d-h] as if they were in the C
Packit Service f629e6
    locale, no matter what kind of regexp is being used, and even if
Packit Service f629e6
    --posix.  The latest POSIX standard allows this, and the documentation
Packit Service f629e6
    has been updated.  Maybe this will stop all the questions about
Packit Service f629e6
    [a-z] matching uppercase letters.
Packit Service f629e6
    THIS CHANGES BEHAVIOR!!!!
Packit Service f629e6
Packit Service f629e6
26. PROCINFO["strftime"] now holds the default format for strftime().
Packit Service f629e6
Packit Service f629e6
27. Updated to latest infrastructure: Autoconf 2.68, Automake 1.11.1,
Packit Service f629e6
    Gettext 0.18.1, Bison 2.5.
Packit Service f629e6
Packit Service f629e6
28. Many code cleanups. Removed code for many old, unsupported systems:
Packit Service f629e6
	- Atari
Packit Service f629e6
	- Amiga
Packit Service f629e6
	- BeOS
Packit Service f629e6
	- Cray
Packit Service f629e6
	- MIPS RiscOS
Packit Service f629e6
	- MS-DOS with Microsoft Compiler
Packit Service f629e6
	- MS-Windows with Microsoft Compiler
Packit Service f629e6
	- NeXT
Packit Service f629e6
	- SunOS 3.x, Sun 386 (Road Runner)
Packit Service f629e6
	- Tandem (non-POSIX)
Packit Service f629e6
	- Prestandard VAX C compiler for VAX/VMS
Packit Service f629e6
	- Probably others that I've forgotten
Packit Service f629e6
Packit Service f629e6
29. If PROCINFO["sorted_in"] exists, for(iggy in foo) loops sort the
Packit Service f629e6
    indices before looping over them.  The value of this element
Packit Service f629e6
    provides control over how the indices are sorted before the loop
Packit Service f629e6
    traversal starts. See the manual.
Packit Service f629e6
Packit Service f629e6
30. A new isarray() function exists to distinguish if an item is an array
Packit Service f629e6
    or not, to make it possible to traverse multidimensional arrays.
Packit Service f629e6
Packit Service f629e6
31. asort() and asorti() take a third argument specifying how to sort.
Packit Service f629e6
    See the doc.