Gawk 5.2.0 released!

57 views
Skip to first unread message

Arnold Robbins

unread,
Sep 4, 2022, 2:20:12 PMSep 4
to
Greetings all.

This note announces the next major release of GNU Awk: version 5.2.0.

The following files may be retrieved via HTTPS from
https://ftp.gnu.org/gnu/gawk:

-rw-rw-r-- 1 arnold arnold 6540181 Sep 4 18:52 gawk-5.2.0.tar.gz
-rw-rw-r-- 1 arnold arnold 3228577 Sep 4 18:52 gawk-5.2.0.tar.lz
-rw-rw-r-- 1 arnold arnold 3386344 Sep 4 18:52 gawk-5.2.0.tar.xz

This is a major new release. The relevant part of the NEWS file
is appended below.

This release represents a lot of very hard work by a number of people.
I thank them all for their contributions, I could not have done it
by myself.

Differences from gawk 5.1.1 are not available; they would be too large.

The online documentation on the GNU web site is already updated,
including a manual for the new persistent memory feature.

The usual GNU build incantation should be used:

tar -xpvzf gawk-5.2.0.tar.gz
cd gawk-5.2.0
./configure && make && make check

Please use the new buggawk script to report bugs. If it doesn't
work for you, then send email to bug-...@gnu.org.

NOTE that the manual's instructions for sending bug reports have
been updated. Please review them carefully before submitting a report!

ONLY bug reports should be submitted to the bug-gawk list. All other
questions should use the relatively new help...@gnu.org mailing list.

Enjoy!

Arnold Robbins (on behalf of all the gawk developers)
arn...@skeeve.com
------------------------------------------------------------
Copyright (C) 2019, 2020, 2021, 2022 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 5.1.x to 5.2.0
---------------------------

*****************************************************************************
* MPFR mode (the -M option) is now ON PAROLE. This feature is now being *
* supported by a volunteer in the development team and not by the primary *
* maintainer. If this situation changes, then the feature will be removed. *
* For more information see this section in the manual: *
* https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html *
*****************************************************************************

1. Infrastructure upgrades: Libtool 2.4.7, Bison 3.8.2.

2. Numeric scalars now compare in the same way as C for the relational
operators. Comparison order for sorting has not changed. This only
makes a difference when comparing Infinity and NaN values with
regular numbers; it should not be noticeable most of the time.

3. If the AWK_HASH environment variable is set to "fnv1a" gawk will
use the FNV1-A hash function for associative arrays.

4. The CMake infrastructure has been removed. In the five years it was in
the tree, nobody used it, and it was not updated.

5. There is now a new function, mkbool(), that creates Boolean-typed
values. These values *are* numbers, but they are also tagged as
Boolean. This is mainly for use with data exchange to/from languages
or environments that support real Boolean values. See the manual
for details.

6. As BWK awk has supported interval expressions since 2019, they are
now enabled even if --traditional is supplied. The -r/--re-interval option
remains, but it does nothing.

7. The rwarray extension has two new functions, writeall() and readall(),
for saving / restoring all of gawk's variables and arrays.

8. The new `gawkbug' script should be used for reporting bugs.

9. The manual page (doc/gawk.1) has been considerably reduced in size.
Wherever possible, details were replaced with references to the online
copy of the manual.

10. Gawk now supports Terence Kelly's "persistent malloc" (pma),
allowing gawk to preserve its variables, arrays and user-defined
functions between runs. THIS IS AN EXPERIMENTAL FEATURE!

For more information, see the manual. A new pm-gawk.1 man page
is included, as is a separate user manual that focuses on the feature.

11. Support for OS/2 has been removed. It was not being actively
maintained.

12. Similarly, support for DJGPP has been removed. It also was not
being actively maintained.

13. VAX/VMS is no longer supported, as it can no longer be tested.
The files for it remain in the distribution but will be removed
eventually.

14. Some subtle issues with untyped array elements being passed to
functions have been fixed.

15. Syntax errors are now immediately fatal. This prevents problems
with errors from fuzzers and other such things.

16. There have been numerous minor code cleanups and bug fixes. See the
ChangeLog for details.

Changes from 5.1.1 to 5.1.x
---------------------------

1. Infrastructure upgrades: Automake 1.16.5, Texinfo 6.8.

2. The rwarray extension now supports writing and reading GMP and
MPFR values. As a result, a bug in the API code was fixed.
--
Aharon (Arnold) Robbins arnold AT skeeve DOT com

Kenny McCormack

unread,
Sep 5, 2022, 7:01:43 PMSep 5
to
In article <tf2q8p$13mj$1...@gioia.aioe.org>,
Arnold Robbins <arn...@skeeve.com> wrote:
>Greetings all.
>
>This note announces the next major release of GNU Awk: version 5.2.0.

Very interesting. This looks like it might merit some attention.

For what it is worth, the "tl;dr" version seems to boil down to 3
interesting things:

1) MPFR is on its way out. Note that I found the following text on the
website referenced in the post:

This feature is on parole because its inclusion was a mistake. It has led to
endless bug reports, misuse of the feature and public abuse of the maintainer,
for no real increased value.

I suppose "increased value" is in eye of the user. I wrote a few
scripts that used it, and I actually kind of liked it. But I have to
admit that I didn't really understand it all that well - didn't
understand the description in the man page(s) - about the PREC variable
and such. So, it is likely that many (most?) people also didn't fully
understand it.

> If the AWK_HASH environment variable is set to "fnv1a" gawk will
> use the FNV1-A hash function for associative arrays.

2) I don't understand this at all. What is the value of the new
hashing algorithm?

3) The new persistent memory thing looks pretty cool. I have yet to
download/compile/test the new GAWK and thus the persistent memory
feature, but it sounds pretty cool. I'll be sure to give it a try.

--
The randomly chosen signature file that would have appeared here is more than 4
lines long. As such, it violates one or more Usenet RFCs. In order to remain
in compliance with said RFCs, the actual sig can be found at the following URL:
http://user.xmission.com/~gazelle/Sigs/Pearls

Janis Papanagnou

unread,
Sep 5, 2022, 7:59:52 PMSep 5
to
On 06.09.2022 01:01, Kenny McCormack wrote:
> In article <tf2q8p$13mj$1...@gioia.aioe.org>,
> Arnold Robbins <arn...@skeeve.com> wrote:
>
>> If the AWK_HASH environment variable is set to "fnv1a" gawk will
>> use the FNV1-A hash function for associative arrays.
>
> 2) I don't understand this at all. What is the value of the new
> hashing algorithm?

This is indeed an interesting question. (The Wikipedia entry about
that hash algorithm did not really answer or address that.) But the
answer can be found in the GNU Awk manual: "These functions ['gst'
or 'fnv1a'] may be marginally faster than the standard function." -
and [for a valuation] also note the word "marginally"!

But what surprises me here is on a different level; GNU Awk seems
to reveal _implementation details_ of a data structure used solely
internally by the Awk tool. (Will, in future, we get the choice of,
say, specifying the internal sorting algorithm [say, 'heapsort' or
'quicksort'] as well?) In a high level language (with a high degree
of abstraction) I'd rather have expected some good general purpose
algorithms for the tool internals.

Janis

BTW; MPFR - while strictly speaking also an internal - is different
in that respect since it provides added functionality for the user.

Reply all
Reply to author
Forward
0 new messages