• Gawk 5.2.0 released!

    From arnold@arnold@skeeve.com (Arnold Robbins) to comp.lang.awk on Sun Sep 4 18:20:09 2022
    From Newsgroup: comp.lang.awk

    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-gawk@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-gawk@gnu.org mailing list.

    Enjoy!

    Arnold Robbins (on behalf of all the gawk developers)
    arnold@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
    --- Synchronet 3.19c-Linux NewsLink 1.113
  • From gazelle@gazelle@shell.xmission.com (Kenny McCormack) to comp.lang.awk on Mon Sep 5 23:01:40 2022
    From Newsgroup: comp.lang.awk

    In article <tf2q8p$13mj$1@gioia.aioe.org>,
    Arnold Robbins <arnold@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
    --- Synchronet 3.19c-Linux NewsLink 1.113
  • From Janis Papanagnou@janis_papanagnou+ng@hotmail.com to comp.lang.awk on Tue Sep 6 01:59:50 2022
    From Newsgroup: comp.lang.awk

    On 06.09.2022 01:01, Kenny McCormack wrote:
    In article <tf2q8p$13mj$1@gioia.aioe.org>,
    Arnold Robbins <arnold@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.

    --- Synchronet 3.19c-Linux NewsLink 1.113