Changelog:
Changes from 5.0.0 to 5.0.1
---------------------------
1. A number of ChangeLog.1 files that were left out of the distribution
have been restored.
2. Multiple syntax errors should no longer be able to cause a core dump.
3. Sandbox mode now disallows assigning new filename values in ARGV that
were not there when gawk was invoked.
4. There are many small documentation improvements in the manual.
5. The new argument "no-ext" to --lint disables ``XXX is a gawk extension''
lint warnings.
6. Infrastructure upgrades: Bison 3.4.
N. A number of bugs, some of them quite significant, have been fixed.
See the ChangeLog for details.
Changelog:
Changes from 4.2.1 to 5.0.0
---------------------------
1. Support for the POSIX standard %a and %A printf formats has been added.
2. The test infrastructure has been greatly improved, simplifying the
contents of test/Makefile.am and making it possible to generate
pc/Makefile.tst from test/Makefile.in.
3. The regex routines have been replaced with those from GNULIB, allowing
me to stop carrying forward decades of changes against the original
ones from GLIBC.
4. Infrastructure upgrades: Bison 3.3, Automake 1.16.1, Gettext 0.19.8.1,
makeinfo 6.5.
5. The undocumented configure option and code that enabled the use of
non-English "letters" in identifiers is now gone.
6. The `--with-whiny-user-strftime' configuration option is now gone.
7. The code now makes some stronger assumptions about a C99 environment.
8. PROCINFO["platform"] yields a string indicating the platform for
which gawk was compiled.
9. Writing to elements of SYMTAB that are not variable names now
causes a fatal error. THIS CHANGES BEHAVIOR.
10. Comment handling in the pretty-printer has been reworked almost completely
from scratch. As a result, comments in many corner cases that were
previously lost are now included in the formatted output.
11. Namespaces have been implemented! See the manual. One consequence of this
is that files included with -i, read with -f, and command line program
segments must all be self-contained syntactic units. E.g., you can no
longer do something like this:
gawk -e 'BEGIN {' -e 'print "hello" }'
12. Gawk now uses the locale settings for ignoring case in single byte
locales, instead of hardwiring in Latin-1.
13. 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
type 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.
Changelog:
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.
Upstream changes:
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.
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.
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
---------------------------
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.
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.
on pkgsrc-users.
Changes:
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.
Changes from 3.1.7 to 3.1.8
---------------------------
1. The zero flag no longer applies to %c and %s; apparently the standards
changed at some point.
2. Updated to latest infrastructure: Autoconf 2.65, Automake 1.11.1,
libtool 2.2.6b, Bison 2.4.2.
3. Failure to open a socket is no longer a fatal error.
4. dfa.h and dfa.c are now more-or-less in sync with GNU grep, for the first
time in many years.
5. Gawk no longer includes its own copy of libsigsegv but it will use it if
installed on the build system. The --disable-libsigsegv configure option
is now gone.
6. The ' flag (%'d) is now just ignored on systems that can't support it.
7. Lots of bug fixes, see the ChangeLog.
Changes from 3.1.6 to 3.1.7
---------------------------
1. Gawk now has support for z/OS (IBM S/390 architecture).
2. Gawk now handles multibyte strings better in [s]printf with field
widths and such.
3. Gawk now uses libsigsegv to print a message before core dumping. This
handles infinite recursion of an awk function a little better.
Use of the library can be disabled at configure time with the
--disable-libsigsegv option for unusual systems.
4. The handling of BINMODE is now somewhat more sane.
5. A getline from a directory is no longer fatal; instead it returns -1.
6. Per POSIX, special variable names (like FS) cannot be used as function
parameter names.
7. The new -O / --optimize option enables simple constant folding on
the parse tree during parsing. We hope that with time the number
of optimizations will increase.
8. Updated to the latest autotools: Autoconf 2.63, Automake 1.11,
Libtool 2.2.6a, and Gettext 0.17. Also latest Bison: 2.4.1.
9. Some improvement in testing for isinf / isnan in builtin.c.
10. Improved the handling of `a = a b c' to be more general.
11. Locale handling for %'d should now work on certain non-Unix /
non-Linux systems.
12. Lots of bugs fixed, see the ChangeLog for the details.
1. `gawk 'program' /non/existant/file' no longer core dumps.
2. gawk now only uses the locale's decimal point
3. `gawk -v BINMODE=1 ...' works again.
4. Internal file names like `/dev/user' now work again. (Note that these
file names are obsolete and will go away eventually.)
5. Problems with wide strings in non "C" locales have been straightened
out everywhere. (At least, we think so.)
6. Use of `ansi2knr' is no longer supported. Please use an ANSI C compiler.
7. Updated to Autoconf 2.61, Automake 1.10, and Gettext 0.16.1.
8. The getopt* and regex* files were synchronized with current GLIBC CVS.
See the ChangeLog for the versions and minor edits made.
9. There are additional --lint-old warnings.
10. Gawk now uses getaddrinfo(3) to look up names and IP addresses. This
allows the use of an IPv6 format address and paves the way for
eventual addition of `/inet6/...' and `/inet4/...' hostnames.
11. We believe gawk to now be valgrind clean. At least when run against
the test suite.
12. A number of issues dealing with the formatting and printing of very
large numbers in integer formats have been dealt with and fixed.
13. Gawk now converts "+inf", "-inf", "+nan" and "-nan" into the corresponding
magic IEEE floating point values. Only those strings (case independent)
work. With --posix, gawk calls the system strtod directly. You asked
for it, you got it, you deal with it.
14. Defining YYDEBUG enables the -D command line option.
15. Gawk should now work out of the box on Tandem NSK/OSS systems.
16. Lint messages rationalized: many more of the messages are now printed
only once, instead of every time they are encountered.
17. The strftime() function now accepts an optional third argument, which
if non-zero or non-null, indicates that the time should be formatted
as UTC instead of as local time.
18. The precedence of concatenation and `| getline' (in something like
"echo " "date" | getline stuff) has been reverted to the earlier
behavior and now once again matches Unix awk.
19. New configure time flag --disable-directories-fatal which causes
gawk to silently skip directories on the command line. This behavior
is also enabled for --traditional, since it's what Unix awk does.
20. A new option, --use-lc-numeric, forces use of the locale's decimal
point without the rest of the draconian restrictions imposed by
--posix. This softens somewhat the stance taken in item 2.
21. Everything relevant has been updated to the GPL 3.
22. Array growth should be faster now, at no cost in space.
23. Lots more tests.
24. One new translation.
25. Various bugs fixed, see the ChangeLog for details.
PKGLOCALEDIR and which install their locale files directly under
${PREFIX}/${PKGLOCALEDIR} and sort the PLIST file entries. From now
on, pkgsrc/mk/plist/plist-locale.awk will automatically handle
transforming the PLIST to refer to the correct locale directory.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Changes from 3.1.4 to 3.1.5
---------------------------
1. The random() suite has been updated to a current FreeBSD version, which
works on systems with > 32-bit ints.
2. A new option, `--exec' has been added. It's like -f but ends option
processing. It also disables `x=y' variable assignments, but not -v.
It's needed mainly for CGI scripts, so that source code can't be
passed in as part of the URL.
3. dfa.[ch] have been synced with GNU grep development. This also fixes
multiple regex matching problems in multibyte locales.
4. Updated to Automake 1.9.5.
5. Updated to Bison 2.0.
6. The getopt* and regex* files were synchronized with current GLIBC CVS.
See the ChangeLog for the versions and minor edits made.
7. `configure --disable-nls' now disables just gawk's own translations.
Gawk continues to work with the locale's numeric formatting. This
includes a bug fix in handling the printf ' flag (e.g., %'d).
8. Gawk is now multibyte aware. This means that index(), length(),
substr() and match() all work in terms of characters, not bytes.
9. Gawk is now smarter about parsing numeric constants in corner cases.
11. Not closing open redirections no longer causes gawk to exit non-zero.
10. The VMS port has been updated.
11. Changes from Andrew Schorr at the xmlgawk project to provide for
open hooks from extensions are now included. This will let the
xmlgawk extension work in the standard gawk.
12. Updated to gettext 0.14.4. Gawk no longer includes its own copy
of the gettext `intl' library, following current GNU practice to
rely on there being an external version thereof.
13. A regexp of the form `//' will now generate a warning that it
is not a C++ comment from --lint (awk.y).
14. The ^ and ^= operators with an integer exponent now use Exponentiation
by Squaring. This simultaneously fixes a problem with ^= and a negative
integer exponent.
15. length(array) now returns the number of elements in the array. This is
is a non-standard extension that will fail in POSIX mode.
16. Carriage return characters are now ignored in program source code.
17. Four new translations added.
18. Various minor bugs fixed. See the ChangeLog for the details.