gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] gawk branch, master, updated. gawk-4.1.0-4774-gde3cfcc7


From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-4774-gde3cfcc7
Date: Mon, 11 Jul 2022 11:41:53 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  de3cfcc71598999c3c06b292cbb9ecf05b1c2111 (commit)
       via  c3c6419cea6debcceb62ca5e7f5d538d1a000629 (commit)
      from  bc96da0a9399fd5397cfca8bdace2ca5dfbbd981 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=de3cfcc71598999c3c06b292cbb9ecf05b1c2111

commit de3cfcc71598999c3c06b292cbb9ecf05b1c2111
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Mon Jul 11 18:41:35 2022 +0300

    A bunch of doc updates.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 65c439a1..0448457f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,12 @@
+2022-07-11         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * awkcard.in: Update version.
+       * gawk.1: Ditto.
+       * gawktexi.in (UPDATE-MONTH, VERSION, PATCHLEVEL, EDITION): Update.
+       (Type functions): Update how array elements are handled.
+       (Persistent Memory): More updates.
+       (Feature History): Add FNV1-A hash algorithm.
+
 2022-07-08         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawkworkflow.texi: Some cleanups and updates.
diff --git a/doc/awkcard.in b/doc/awkcard.in
index 64adab76..5c68cb5b 100644
--- a/doc/awkcard.in
+++ b/doc/awkcard.in
@@ -1124,7 +1124,7 @@ _
 \*(FIr\*(FC*\*(FR~zero or more occurrences of \*(FIr\*(FR
 \*(FIr\*(FC+\*(FR~one or more occurrences of \*(FIr\*(FR
 \*(FIr\*(FC?\*(FR~zero or one occurrences of \*(FIr\*(FR
-\*(FIr\*(FC{\*(FIn\*(FC,\*(FIm\*(FC}\*(FR~\*(FIn\fP to \*(FIm\fP occurrences 
of \*(FIr\*(FR \*(CR(POSIX: see note below)\*(CD
+\*(FIr\*(FC{\*(FIn\*(FC,\*(FIm\*(FC}\*(FR~\*(FIn\fP to \*(FIm\fP occurrences 
of \*(FIr\*(FR (POSIX: see note below)
 \*(FIr1\*(FC|\|\*(FIr2\*(FR~\*(FIr1\*(FR or \*(FIr2\*(FR
 .TE
 .sp .5
@@ -1983,7 +1983,7 @@ The default for \*(FIcat\*(FR is 
\*(FC"LC_MESSAGES"\*(FR.\*(CB
 .ES
 .nf
 \*(CDHost: \*(FCftp.gnu.org\*(FR
-File: \*(FC/gnu/gawk/gawk-5.1.1.tar.gz\fP
+File: \*(FC/gnu/gawk/gawk-5.2.0.tar.gz\fP
 .in +.2i
 .fi
 GNU \*(AK (\*(GK). There may be a later version.
diff --git a/doc/gawk.1 b/doc/gawk.1
index cdb05c49..b83d27c8 100644
--- a/doc/gawk.1
+++ b/doc/gawk.1
@@ -2367,7 +2367,7 @@ status is 2.  On non-POSIX systems, this value may be 
mapped to
 .SH VERSION INFORMATION
 This man page documents
 .IR gawk ,
-version 5.1.
+version 5.2.
 .SH AUTHORS
 The original version of \*(UX
 .I awk
@@ -2434,7 +2434,7 @@ Alfred V.\& Aho, Brian W.\& Kernighan, Peter J.\& 
Weinberger,
 Addison-Wesley, 1988.  ISBN 0-201-07981-X.
 .PP
 \*(EP,
-Edition 5.1, shipped with the
+Edition 5.2, shipped with the
 .I gawk
 source.
 The current version of this document is available online at
diff --git a/doc/gawk.info b/doc/gawk.info
index 5b3126f8..61c96dae 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -4,8 +4,8 @@ Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2022
 Free Software Foundation, Inc.
 
 
-   This is Edition 5.1 of 'GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 5.1.1 (or later) version of the GNU
+   This is Edition 5.2 of 'GAWK: Effective AWK Programming: A User's
+Guide for GNU Awk', for the 5.2.0 (or later) version of the GNU
 implementation of AWK.
 
    Permission is granted to copy, distribute and/or modify this document
@@ -41,8 +41,8 @@ particular records in a file and perform operations upon them.
 Free Software Foundation, Inc.
 
 
-   This is Edition 5.1 of 'GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 5.1.1 (or later) version of the GNU
+   This is Edition 5.2 of 'GAWK: Effective AWK Programming: A User's
+Guide for GNU Awk', for the 5.2.0 (or later) version of the GNU
 implementation of AWK.
 
    Permission is granted to copy, distribute and/or modify this document
@@ -14609,18 +14609,23 @@ function causes it to become a scalar variable 
(unassigned).  However,
 'isarray()' and 'typeof()' are different; they do not change their
 arguments from untyped to unassigned.
 
-   By "variable" we mean one denoted by a simple identifier.  Array
-elements that come into existence simply by referencing them are
-different, they are automatically forced to be scalars.  Consider:
+   This applies to both variables denoted by simple identifiers and
+array elements that come into existence simply by referencing them.
+Consider:
 
      $ gawk 'BEGIN { print typeof(x) }'
      -| untyped
      $ gawk 'BEGIN { print typeof(x["foo"]) }'
-     -| unassigned
+     -| untyped
 
-'x["foo"]' comes into existence before it is passed to 'typeof()';
-'typeof()' cannot tell that it didn't exist prior to being called.
-(d.c.)
+   Note that prior to version 5.2, array elements that come into
+existence simply by referencing them were different, they were
+automatically forced to be scalars:
+
+     $ gawk-5.1.1 'BEGIN { print typeof(x) }'
+     -| untyped
+     $ gawk-5.1.1 'BEGIN { print typeof(x["foo"]) }'
+     -| unassigned
 
 
 File: gawk.info,  Node: I18N Functions,  Prev: Type Functions,  Up: Built-in
@@ -22127,7 +22132,7 @@ arrays in a persistent heap, which resides in a file in 
the filesystem.
 When persistent memory is not in use (the normal case), 'gawk''s data
 resides in ephemeral system memory.
 
-   Persistent memory is enabled on 64-bit systems supporting the
+   Persistent memory is enabled on certain 64-bit systems supporting the
 'mmap()' and 'munmap()' system calls.  'gawk' must be compiled as a
 non-PIE (Position Independent Executable) binary, since the persistent
 store ends up holding pointers to functions held within the 'gawk'
@@ -22135,14 +22140,14 @@ executable.  This also means that to use the 
persistent memory, you must
 use the same 'gawk' executable from run to run.
 
    As of this writing, persistent memory has only been tested on
-GNU/Linux and Mac OS systems.  On others, your mileage may vary, and/or
-you may need to investigate how to make it work for you.
+GNU/Linux, Cygwin, and Mac OS systems.  On others, your mileage may
+vary, and/or you may need to investigate how to make it work for you.
 
    To use persistent memory, follow these steps:
 
   1. Create a new, empty sparse file of the desired size.  For example,
      four gigabytes.  On a GNU/Linux system, you can use the 'truncate'
-     command:
+     utility:
 
           $ truncate -s 4G data.pma
 
@@ -22150,15 +22155,15 @@ you may need to investigate how to make it work for 
you.
      environment variable.  This is best done by placing the value in
      the environment just for the run of 'gawk', like so:
 
-          $ GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN { print ++i }'
+          $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
           1
 
   3. Use the same data file in subsequent runs to use the preserved data
      values:
 
-          $ GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN { print ++i }'
+          $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
           2
-          $ GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN { print ++i }'
+          $ GAWK_PERSIST_FILE=data.pma gawk 'BEGIN { print ++i }'
           3
 
      As shown, in subsequent runs using the same data file, the values
@@ -30560,6 +30565,9 @@ unfortunately.  It added the following features:
    * Interval expressions in regular expressions are enabled by default
      (*note Interval Expressions::).
 
+   * Support for the FNV1-A hash algorithm for its hash function (*note
+     Other Environment Variables::).
+
    * The 'gawkbug' script for reporting bugs (*note Bug address::).
 
    * Terence Kelly's persistent memory allocator (PMA) was added,
@@ -30941,7 +30949,7 @@ There are two ways to get GNU software:
      supported.  If you have the 'wget' program, you can use a command
      like the following:
 
-          wget https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.gz
+          wget https://ftp.gnu.org/gnu/gawk/gawk-5.2.0.tar.gz
 
    The GNU software archive is mirrored around the world.  The
 up-to-date list of mirror sites is available from the main FSF website
@@ -30963,25 +30971,25 @@ compression programs: 'gzip', 'bzip2', and 'xz'.  For 
simplicity, the
 rest of these instructions assume you are using the one compressed with
 the GNU Gzip program ('gzip').
 
-   Once you have the distribution (e.g., 'gawk-5.1.1.tar.gz'), use
+   Once you have the distribution (e.g., 'gawk-5.2.0.tar.gz'), use
 'gzip' to expand the file and then use 'tar' to extract it.  You can use
 the following pipeline to produce the 'gawk' distribution:
 
-     gzip -d -c gawk-5.1.1.tar.gz | tar -xvpf -
+     gzip -d -c gawk-5.2.0.tar.gz | tar -xvpf -
 
    On a system with GNU 'tar', you can let 'tar' do the decompression
 for you:
 
-     tar -xvpzf gawk-5.1.1.tar.gz
+     tar -xvpzf gawk-5.2.0.tar.gz
 
-Extracting the archive creates a directory named 'gawk-5.1.1' in the
+Extracting the archive creates a directory named 'gawk-5.2.0' in the
 current directory.
 
    The distribution file name is of the form 'gawk-V.R.P.tar.gz'.  The V
 represents the major version of 'gawk', the R represents the current
 release of version V, and the P represents a "patch level", meaning that
 minor bugs have been fixed in the release.  The current patch level is
-1, but when retrieving distributions, you should get the version with
+0, but when retrieving distributions, you should get the version with
 the highest version, release, and patch level.  (Note, however, that
 patch levels greater than or equal to 60 denote "beta" or nonproduction
 software; you might not want to retrieve such a version unless you don't
@@ -31229,7 +31237,7 @@ Unix-derived systems, GNU/Linux, BSD-based systems, and 
the Cygwin
 environment for MS-Windows.
 
    After you have extracted the 'gawk' distribution, 'cd' to
-'gawk-5.1.1'.  As with most GNU software, you configure 'gawk' for your
+'gawk-5.2.0'.  As with most GNU software, you configure 'gawk' for your
 system by running the 'configure' program.  This program is a Bourne
 shell script that is generated automatically using GNU Autoconf.  (The
 Autoconf software is described fully starting with *note Autoconf:
@@ -31650,8 +31658,8 @@ environment provides an excellent simulation of 
GNU/Linux, using Bash,
 GCC, GNU Make, and other GNU programs.  Compilation and installation for
 Cygwin is the same as for a Unix system:
 
-     tar -xvpzf gawk-5.1.1.tar.gz
-     cd gawk-5.1.1
+     tar -xvpzf gawk-5.2.0.tar.gz
+     cd gawk-5.2.0
      ./configure
      make && make check
 
@@ -32521,9 +32529,9 @@ B.6 Summary
    * The 'gawk' distribution is available from the GNU Project's main
      distribution site, 'ftp.gnu.org'.  The canonical build recipe is:
 
-          wget https://ftp.gnu.org/gnu/gawk/gawk-5.1.1.tar.gz
-          tar -xvpzf gawk-5.1.1.tar.gz
-          cd gawk-5.1.1
+          wget https://ftp.gnu.org/gnu/gawk/gawk-5.2.0.tar.gz
+          tar -xvpzf gawk-5.2.0.tar.gz
+          cd gawk-5.2.0
           ./configure && make && make check
 
           NOTE: Because of the 'https://' URL, you may have to supply
@@ -36529,8 +36537,6 @@ Index
                                                               (line 178)
 * dark corner, length() function:        String Functions.    (line 200)
 * dark corner, split() function:         String Functions.    (line 379)
-* dark corner, array elements created by reference: Type Functions.
-                                                              (line  88)
 * dark corner, parameter name restrictions: Definition Syntax.
                                                               (line  44)
 * dark corner <1>:                       Glossary.            (line 266)
@@ -37607,7 +37613,7 @@ Index
 * Kasal, Stepan:                         Acknowledgments.     (line  60)
 * Kelly, Terence:                        Persistent Memory.   (line  55)
 * Kelly, Terence <1>:                    Persistent Memory.   (line  77)
-* Kelly, Terence <2>:                    Feature History.     (line 505)
+* Kelly, Terence <2>:                    Feature History.     (line 508)
 * Kenobi, Obi-Wan:                       Undocumented.        (line   6)
 * Kernighan, Brian:                      History.             (line  17)
 * Kernighan, Brian, quotes:              Conventions.         (line  38)
@@ -39279,344 +39285,344 @@ Ref: table-bitwise-ops607788
 Ref: Bitwise Functions-Footnote-1613852
 Ref: Bitwise Functions-Footnote-2614025
 Node: Type Functions614216
-Node: I18N Functions617636
-Node: User-defined619287
-Node: Definition Syntax620099
-Ref: Definition Syntax-Footnote-1625793
-Node: Function Example625864
-Ref: Function Example-Footnote-1628786
-Node: Function Calling628808
-Node: Calling A Function629396
-Node: Variable Scope630354
-Node: Pass By Value/Reference633348
-Node: Function Caveats635992
-Ref: Function Caveats-Footnote-1638039
-Node: Return Statement638159
-Node: Dynamic Typing641138
-Node: Indirect Calls642068
-Node: Functions Summary652995
-Node: Library Functions655700
-Ref: Library Functions-Footnote-1659307
-Ref: Library Functions-Footnote-2659450
-Node: Library Names659621
-Ref: Library Names-Footnote-1663288
-Ref: Library Names-Footnote-2663511
-Node: General Functions663597
-Node: Strtonum Function664779
-Node: Assert Function667801
-Node: Round Function671127
-Node: Cliff Random Function672667
-Node: Ordinal Functions673683
-Ref: Ordinal Functions-Footnote-1676746
-Ref: Ordinal Functions-Footnote-2676998
-Node: Join Function677208
-Ref: Join Function-Footnote-1678978
-Node: Getlocaltime Function679178
-Node: Readfile Function682920
-Node: Shell Quoting684897
-Node: Isnumeric Function686325
-Node: Data File Management687713
-Node: Filetrans Function688345
-Node: Rewind Function692441
-Node: File Checking694350
-Ref: File Checking-Footnote-1695684
-Node: Empty Files695885
-Node: Ignoring Assigns697864
-Node: Getopt Function699414
-Ref: Getopt Function-Footnote-1714711
-Node: Passwd Functions714911
-Ref: Passwd Functions-Footnote-1723750
-Node: Group Functions723838
-Ref: Group Functions-Footnote-1731736
-Node: Walking Arrays731943
-Node: Library Functions Summary734951
-Node: Library Exercises736357
-Node: Sample Programs736822
-Node: Running Examples737592
-Node: Clones738320
-Node: Cut Program739544
-Node: Egrep Program749684
-Node: Id Program758685
-Node: Split Program768620
-Ref: Split Program-Footnote-1778513
-Node: Tee Program778686
-Node: Uniq Program781476
-Node: Wc Program789064
-Node: Bytes vs. Characters789451
-Node: Using extensions790999
-Node: wc program791753
-Node: Miscellaneous Programs796618
-Node: Dupword Program797831
-Node: Alarm Program799861
-Node: Translate Program804716
-Ref: Translate Program-Footnote-1809281
-Node: Labels Program809551
-Ref: Labels Program-Footnote-1812902
-Node: Word Sorting812986
-Node: History Sorting817058
-Node: Extract Program819283
-Node: Simple Sed827296
-Node: Igawk Program830370
-Ref: Igawk Program-Footnote-1844701
-Ref: Igawk Program-Footnote-2844903
-Ref: Igawk Program-Footnote-3845025
-Node: Anagram Program845140
-Node: Signature Program848202
-Node: Programs Summary849449
-Node: Programs Exercises850663
-Ref: Programs Exercises-Footnote-1854793
-Node: Advanced Features854879
-Node: Nondecimal Data857276
-Node: Boolean Typed Values858874
-Node: Array Sorting860755
-Node: Controlling Array Traversal861460
-Ref: Controlling Array Traversal-Footnote-1869828
-Node: Array Sorting Functions869946
-Ref: Array Sorting Functions-Footnote-1875857
-Node: Two-way I/O876053
-Ref: Two-way I/O-Footnote-1883779
-Ref: Two-way I/O-Footnote-2883966
-Node: TCP/IP Networking884048
-Node: Profiling887124
-Node: Persistent Memory896430
-Ref: Persistent Memory-Footnote-1902599
-Node: Extension Philosophy902726
-Node: Advanced Features Summary904213
-Node: Internationalization906385
-Node: I18N and L10N908059
-Node: Explaining gettext908746
-Ref: Explaining gettext-Footnote-1914638
-Ref: Explaining gettext-Footnote-2914823
-Node: Programmer i18n914988
-Ref: Programmer i18n-Footnote-1919937
-Node: Translator i18n919986
-Node: String Extraction920780
-Ref: String Extraction-Footnote-1921912
-Node: Printf Ordering921998
-Ref: Printf Ordering-Footnote-1924784
-Node: I18N Portability924848
-Ref: I18N Portability-Footnote-1927304
-Node: I18N Example927367
-Ref: I18N Example-Footnote-1930642
-Ref: I18N Example-Footnote-2930715
-Node: Gawk I18N930824
-Node: I18N Summary931446
-Node: Debugger932787
-Node: Debugging933787
-Node: Debugging Concepts934228
-Node: Debugging Terms936037
-Node: Awk Debugging938612
-Ref: Awk Debugging-Footnote-1939557
-Node: Sample Debugging Session939689
-Node: Debugger Invocation940223
-Node: Finding The Bug941609
-Node: List of Debugger Commands948083
-Node: Breakpoint Control949416
-Node: Debugger Execution Control953110
-Node: Viewing And Changing Data956472
-Node: Execution Stack960013
-Node: Debugger Info961650
-Node: Miscellaneous Debugger Commands965721
-Node: Readline Support970783
-Node: Limitations971679
-Node: Debugging Summary974233
-Node: Namespaces975512
-Node: Global Namespace976623
-Node: Qualified Names978021
-Node: Default Namespace979020
-Node: Changing The Namespace979761
-Node: Naming Rules981375
-Node: Internal Name Management983223
-Node: Namespace Example984265
-Node: Namespace And Features986827
-Node: Namespace Summary988262
-Node: Arbitrary Precision Arithmetic989739
-Node: Computer Arithmetic991226
-Ref: table-numeric-ranges994992
-Ref: table-floating-point-ranges995486
-Ref: Computer Arithmetic-Footnote-1996145
-Node: Math Definitions996202
-Ref: table-ieee-formats999178
-Node: MPFR features999746
-Node: MPFR On Parole1000191
-Ref: MPFR On Parole-Footnote-11001020
-Node: MPFR Intro1001175
-Node: FP Math Caution1002814
-Ref: FP Math Caution-Footnote-11003886
-Node: Inexactness of computations1004255
-Node: Inexact representation1005286
-Node: Comparing FP Values1006646
-Node: Errors accumulate1007887
-Node: Strange values1009343
-Ref: Strange values-Footnote-11011931
-Node: Getting Accuracy1012036
-Node: Try To Round1014746
-Node: Setting precision1015645
-Ref: table-predefined-precision-strings1016342
-Node: Setting the rounding mode1018173
-Ref: table-gawk-rounding-modes1018547
-Ref: Setting the rounding mode-Footnote-11022479
-Node: Arbitrary Precision Integers1022658
-Ref: Arbitrary Precision Integers-Footnote-11025833
-Node: Checking for MPFR1025982
-Node: POSIX Floating Point Problems1027456
-Ref: POSIX Floating Point Problems-Footnote-11032109
-Node: Floating point summary1032147
-Node: Dynamic Extensions1034337
-Node: Extension Intro1035890
-Node: Plugin License1037156
-Node: Extension Mechanism Outline1037953
-Ref: figure-load-extension1038392
-Ref: figure-register-new-function1039958
-Ref: figure-call-new-function1041051
-Node: Extension API Description1043114
-Node: Extension API Functions Introduction1044827
-Ref: table-api-std-headers1046663
-Node: General Data Types1050913
-Ref: General Data Types-Footnote-11059619
-Node: Memory Allocation Functions1059918
-Ref: Memory Allocation Functions-Footnote-11064419
-Node: Constructor Functions1064518
-Node: API Ownership of MPFR and GMP Values1068171
-Node: Registration Functions1069704
-Node: Extension Functions1070404
-Node: Exit Callback Functions1075726
-Node: Extension Version String1076976
-Node: Input Parsers1077639
-Node: Output Wrappers1090360
-Node: Two-way processors1094872
-Node: Printing Messages1097137
-Ref: Printing Messages-Footnote-11098308
-Node: Updating ERRNO1098461
-Node: Requesting Values1099200
-Ref: table-value-types-returned1099937
-Node: Accessing Parameters1101046
-Node: Symbol Table Access1102283
-Node: Symbol table by name1102795
-Ref: Symbol table by name-Footnote-11105820
-Node: Symbol table by cookie1105948
-Ref: Symbol table by cookie-Footnote-11110133
-Node: Cached values1110197
-Ref: Cached values-Footnote-11113733
-Node: Array Manipulation1113886
-Ref: Array Manipulation-Footnote-11114977
-Node: Array Data Types1115014
-Ref: Array Data Types-Footnote-11117672
-Node: Array Functions1117764
-Node: Flattening Arrays1122549
-Node: Creating Arrays1129525
-Node: Redirection API1134292
-Node: Extension API Variables1137125
-Node: Extension Versioning1137836
-Ref: gawk-api-version1138265
-Node: Extension GMP/MPFR Versioning1139997
-Node: Extension API Informational Variables1141625
-Node: Extension API Boilerplate1142698
-Node: Changes from API V11146672
-Node: Finding Extensions1148244
-Node: Extension Example1148803
-Node: Internal File Description1149601
-Node: Internal File Ops1153681
-Ref: Internal File Ops-Footnote-11165031
-Node: Using Internal File Ops1165171
-Ref: Using Internal File Ops-Footnote-11167554
-Node: Extension Samples1167828
-Node: Extension Sample File Functions1169357
-Node: Extension Sample Fnmatch1177006
-Node: Extension Sample Fork1178493
-Node: Extension Sample Inplace1179711
-Node: Extension Sample Ord1183337
-Node: Extension Sample Readdir1184173
-Ref: table-readdir-file-types1185062
-Node: Extension Sample Revout1186130
-Node: Extension Sample Rev2way1186719
-Node: Extension Sample Read write array1187459
-Node: Extension Sample Readfile1190624
-Node: Extension Sample Time1191719
-Node: Extension Sample API Tests1193471
-Node: gawkextlib1193963
-Node: Extension summary1196881
-Node: Extension Exercises1200583
-Node: Language History1201825
-Node: V7/SVR3.11203481
-Node: SVR41205633
-Node: POSIX1207067
-Node: BTL1208448
-Node: POSIX/GNU1209177
-Node: Feature History1215083
-Node: Common Extensions1232712
-Node: Ranges and Locales1233995
-Ref: Ranges and Locales-Footnote-11238611
-Ref: Ranges and Locales-Footnote-21238638
-Ref: Ranges and Locales-Footnote-31238873
-Node: Contributors1239096
-Node: History summary1245093
-Node: Installation1246473
-Node: Gawk Distribution1247417
-Node: Getting1247901
-Node: Extracting1248864
-Node: Distribution contents1250502
-Node: Unix Installation1257563
-Node: Quick Installation1258367
-Node: Compiling with MPFR1260787
-Node: Shell Startup Files1261477
-Node: Additional Configuration Options1262566
-Node: Configuration Philosophy1264881
-Node: Compiling from Git1267277
-Node: Building the Documentation1267832
-Node: Non-Unix Installation1269216
-Node: PC Installation1269676
-Node: PC Binary Installation1270514
-Node: PC Compiling1271387
-Node: PC Using1272504
-Node: Cygwin1276000
-Node: MSYS1277224
-Node: VMS Installation1277826
-Node: VMS Compilation1278545
-Ref: VMS Compilation-Footnote-11279774
-Node: VMS Dynamic Extensions1279832
-Node: VMS Installation Details1281517
-Node: VMS Running1283779
-Node: VMS GNV1288058
-Node: Bugs1288772
-Node: Bug definition1289684
-Node: Bug address1292620
-Node: Usenet1295808
-Node: Performance bugs1296997
-Node: Asking for help1299918
-Node: Maintainers1301885
-Node: Other Versions1302892
-Node: Installation summary1311162
-Node: Notes1312519
-Node: Compatibility Mode1313313
-Node: Additions1314095
-Node: Accessing The Source1315020
-Node: Adding Code1316457
-Node: New Ports1323272
-Node: Derived Files1327647
-Ref: Derived Files-Footnote-11333307
-Ref: Derived Files-Footnote-21333342
-Ref: Derived Files-Footnote-31333940
-Node: Future Extensions1334054
-Node: Implementation Limitations1334712
-Node: Extension Design1335922
-Node: Old Extension Problems1337066
-Ref: Old Extension Problems-Footnote-11338584
-Node: Extension New Mechanism Goals1338641
-Ref: Extension New Mechanism Goals-Footnote-11342005
-Node: Extension Other Design Decisions1342194
-Node: Extension Future Growth1344307
-Node: Notes summary1344913
-Node: Basic Concepts1346071
-Node: Basic High Level1346752
-Ref: figure-general-flow1347034
-Ref: figure-process-flow1347720
-Ref: Basic High Level-Footnote-11351022
-Node: Basic Data Typing1351207
-Node: Glossary1354535
-Node: Copying1386422
-Node: GNU Free Documentation License1423965
-Node: Index1449085
+Node: I18N Functions617737
+Node: User-defined619388
+Node: Definition Syntax620200
+Ref: Definition Syntax-Footnote-1625894
+Node: Function Example625965
+Ref: Function Example-Footnote-1628887
+Node: Function Calling628909
+Node: Calling A Function629497
+Node: Variable Scope630455
+Node: Pass By Value/Reference633449
+Node: Function Caveats636093
+Ref: Function Caveats-Footnote-1638140
+Node: Return Statement638260
+Node: Dynamic Typing641239
+Node: Indirect Calls642169
+Node: Functions Summary653096
+Node: Library Functions655801
+Ref: Library Functions-Footnote-1659408
+Ref: Library Functions-Footnote-2659551
+Node: Library Names659722
+Ref: Library Names-Footnote-1663389
+Ref: Library Names-Footnote-2663612
+Node: General Functions663698
+Node: Strtonum Function664880
+Node: Assert Function667902
+Node: Round Function671228
+Node: Cliff Random Function672768
+Node: Ordinal Functions673784
+Ref: Ordinal Functions-Footnote-1676847
+Ref: Ordinal Functions-Footnote-2677099
+Node: Join Function677309
+Ref: Join Function-Footnote-1679079
+Node: Getlocaltime Function679279
+Node: Readfile Function683021
+Node: Shell Quoting684998
+Node: Isnumeric Function686426
+Node: Data File Management687814
+Node: Filetrans Function688446
+Node: Rewind Function692542
+Node: File Checking694451
+Ref: File Checking-Footnote-1695785
+Node: Empty Files695986
+Node: Ignoring Assigns697965
+Node: Getopt Function699515
+Ref: Getopt Function-Footnote-1714812
+Node: Passwd Functions715012
+Ref: Passwd Functions-Footnote-1723851
+Node: Group Functions723939
+Ref: Group Functions-Footnote-1731837
+Node: Walking Arrays732044
+Node: Library Functions Summary735052
+Node: Library Exercises736458
+Node: Sample Programs736923
+Node: Running Examples737693
+Node: Clones738421
+Node: Cut Program739645
+Node: Egrep Program749785
+Node: Id Program758786
+Node: Split Program768721
+Ref: Split Program-Footnote-1778614
+Node: Tee Program778787
+Node: Uniq Program781577
+Node: Wc Program789165
+Node: Bytes vs. Characters789552
+Node: Using extensions791100
+Node: wc program791854
+Node: Miscellaneous Programs796719
+Node: Dupword Program797932
+Node: Alarm Program799962
+Node: Translate Program804817
+Ref: Translate Program-Footnote-1809382
+Node: Labels Program809652
+Ref: Labels Program-Footnote-1813003
+Node: Word Sorting813087
+Node: History Sorting817159
+Node: Extract Program819384
+Node: Simple Sed827397
+Node: Igawk Program830471
+Ref: Igawk Program-Footnote-1844802
+Ref: Igawk Program-Footnote-2845004
+Ref: Igawk Program-Footnote-3845126
+Node: Anagram Program845241
+Node: Signature Program848303
+Node: Programs Summary849550
+Node: Programs Exercises850764
+Ref: Programs Exercises-Footnote-1854894
+Node: Advanced Features854980
+Node: Nondecimal Data857377
+Node: Boolean Typed Values858975
+Node: Array Sorting860856
+Node: Controlling Array Traversal861561
+Ref: Controlling Array Traversal-Footnote-1869929
+Node: Array Sorting Functions870047
+Ref: Array Sorting Functions-Footnote-1875958
+Node: Two-way I/O876154
+Ref: Two-way I/O-Footnote-1883880
+Ref: Two-way I/O-Footnote-2884067
+Node: TCP/IP Networking884149
+Node: Profiling887225
+Node: Persistent Memory896531
+Ref: Persistent Memory-Footnote-1902711
+Node: Extension Philosophy902838
+Node: Advanced Features Summary904325
+Node: Internationalization906497
+Node: I18N and L10N908171
+Node: Explaining gettext908858
+Ref: Explaining gettext-Footnote-1914750
+Ref: Explaining gettext-Footnote-2914935
+Node: Programmer i18n915100
+Ref: Programmer i18n-Footnote-1920049
+Node: Translator i18n920098
+Node: String Extraction920892
+Ref: String Extraction-Footnote-1922024
+Node: Printf Ordering922110
+Ref: Printf Ordering-Footnote-1924896
+Node: I18N Portability924960
+Ref: I18N Portability-Footnote-1927416
+Node: I18N Example927479
+Ref: I18N Example-Footnote-1930754
+Ref: I18N Example-Footnote-2930827
+Node: Gawk I18N930936
+Node: I18N Summary931558
+Node: Debugger932899
+Node: Debugging933899
+Node: Debugging Concepts934340
+Node: Debugging Terms936149
+Node: Awk Debugging938724
+Ref: Awk Debugging-Footnote-1939669
+Node: Sample Debugging Session939801
+Node: Debugger Invocation940335
+Node: Finding The Bug941721
+Node: List of Debugger Commands948195
+Node: Breakpoint Control949528
+Node: Debugger Execution Control953222
+Node: Viewing And Changing Data956584
+Node: Execution Stack960125
+Node: Debugger Info961762
+Node: Miscellaneous Debugger Commands965833
+Node: Readline Support970895
+Node: Limitations971791
+Node: Debugging Summary974345
+Node: Namespaces975624
+Node: Global Namespace976735
+Node: Qualified Names978133
+Node: Default Namespace979132
+Node: Changing The Namespace979873
+Node: Naming Rules981487
+Node: Internal Name Management983335
+Node: Namespace Example984377
+Node: Namespace And Features986939
+Node: Namespace Summary988374
+Node: Arbitrary Precision Arithmetic989851
+Node: Computer Arithmetic991338
+Ref: table-numeric-ranges995104
+Ref: table-floating-point-ranges995598
+Ref: Computer Arithmetic-Footnote-1996257
+Node: Math Definitions996314
+Ref: table-ieee-formats999290
+Node: MPFR features999858
+Node: MPFR On Parole1000303
+Ref: MPFR On Parole-Footnote-11001132
+Node: MPFR Intro1001287
+Node: FP Math Caution1002926
+Ref: FP Math Caution-Footnote-11003998
+Node: Inexactness of computations1004367
+Node: Inexact representation1005398
+Node: Comparing FP Values1006758
+Node: Errors accumulate1007999
+Node: Strange values1009455
+Ref: Strange values-Footnote-11012043
+Node: Getting Accuracy1012148
+Node: Try To Round1014858
+Node: Setting precision1015757
+Ref: table-predefined-precision-strings1016454
+Node: Setting the rounding mode1018285
+Ref: table-gawk-rounding-modes1018659
+Ref: Setting the rounding mode-Footnote-11022591
+Node: Arbitrary Precision Integers1022770
+Ref: Arbitrary Precision Integers-Footnote-11025945
+Node: Checking for MPFR1026094
+Node: POSIX Floating Point Problems1027568
+Ref: POSIX Floating Point Problems-Footnote-11032221
+Node: Floating point summary1032259
+Node: Dynamic Extensions1034449
+Node: Extension Intro1036002
+Node: Plugin License1037268
+Node: Extension Mechanism Outline1038065
+Ref: figure-load-extension1038504
+Ref: figure-register-new-function1040070
+Ref: figure-call-new-function1041163
+Node: Extension API Description1043226
+Node: Extension API Functions Introduction1044939
+Ref: table-api-std-headers1046775
+Node: General Data Types1051025
+Ref: General Data Types-Footnote-11059731
+Node: Memory Allocation Functions1060030
+Ref: Memory Allocation Functions-Footnote-11064531
+Node: Constructor Functions1064630
+Node: API Ownership of MPFR and GMP Values1068283
+Node: Registration Functions1069816
+Node: Extension Functions1070516
+Node: Exit Callback Functions1075838
+Node: Extension Version String1077088
+Node: Input Parsers1077751
+Node: Output Wrappers1090472
+Node: Two-way processors1094984
+Node: Printing Messages1097249
+Ref: Printing Messages-Footnote-11098420
+Node: Updating ERRNO1098573
+Node: Requesting Values1099312
+Ref: table-value-types-returned1100049
+Node: Accessing Parameters1101158
+Node: Symbol Table Access1102395
+Node: Symbol table by name1102907
+Ref: Symbol table by name-Footnote-11105932
+Node: Symbol table by cookie1106060
+Ref: Symbol table by cookie-Footnote-11110245
+Node: Cached values1110309
+Ref: Cached values-Footnote-11113845
+Node: Array Manipulation1113998
+Ref: Array Manipulation-Footnote-11115089
+Node: Array Data Types1115126
+Ref: Array Data Types-Footnote-11117784
+Node: Array Functions1117876
+Node: Flattening Arrays1122661
+Node: Creating Arrays1129637
+Node: Redirection API1134404
+Node: Extension API Variables1137237
+Node: Extension Versioning1137948
+Ref: gawk-api-version1138377
+Node: Extension GMP/MPFR Versioning1140109
+Node: Extension API Informational Variables1141737
+Node: Extension API Boilerplate1142810
+Node: Changes from API V11146784
+Node: Finding Extensions1148356
+Node: Extension Example1148915
+Node: Internal File Description1149713
+Node: Internal File Ops1153793
+Ref: Internal File Ops-Footnote-11165143
+Node: Using Internal File Ops1165283
+Ref: Using Internal File Ops-Footnote-11167666
+Node: Extension Samples1167940
+Node: Extension Sample File Functions1169469
+Node: Extension Sample Fnmatch1177118
+Node: Extension Sample Fork1178605
+Node: Extension Sample Inplace1179823
+Node: Extension Sample Ord1183449
+Node: Extension Sample Readdir1184285
+Ref: table-readdir-file-types1185174
+Node: Extension Sample Revout1186242
+Node: Extension Sample Rev2way1186831
+Node: Extension Sample Read write array1187571
+Node: Extension Sample Readfile1190736
+Node: Extension Sample Time1191831
+Node: Extension Sample API Tests1193583
+Node: gawkextlib1194075
+Node: Extension summary1196993
+Node: Extension Exercises1200695
+Node: Language History1201937
+Node: V7/SVR3.11203593
+Node: SVR41205745
+Node: POSIX1207179
+Node: BTL1208560
+Node: POSIX/GNU1209289
+Node: Feature History1215195
+Node: Common Extensions1232934
+Node: Ranges and Locales1234217
+Ref: Ranges and Locales-Footnote-11238833
+Ref: Ranges and Locales-Footnote-21238860
+Ref: Ranges and Locales-Footnote-31239095
+Node: Contributors1239318
+Node: History summary1245315
+Node: Installation1246695
+Node: Gawk Distribution1247639
+Node: Getting1248123
+Node: Extracting1249086
+Node: Distribution contents1250724
+Node: Unix Installation1257785
+Node: Quick Installation1258589
+Node: Compiling with MPFR1261009
+Node: Shell Startup Files1261699
+Node: Additional Configuration Options1262788
+Node: Configuration Philosophy1265103
+Node: Compiling from Git1267499
+Node: Building the Documentation1268054
+Node: Non-Unix Installation1269438
+Node: PC Installation1269898
+Node: PC Binary Installation1270736
+Node: PC Compiling1271609
+Node: PC Using1272726
+Node: Cygwin1276222
+Node: MSYS1277446
+Node: VMS Installation1278048
+Node: VMS Compilation1278767
+Ref: VMS Compilation-Footnote-11279996
+Node: VMS Dynamic Extensions1280054
+Node: VMS Installation Details1281739
+Node: VMS Running1284001
+Node: VMS GNV1288280
+Node: Bugs1288994
+Node: Bug definition1289906
+Node: Bug address1292842
+Node: Usenet1296030
+Node: Performance bugs1297219
+Node: Asking for help1300140
+Node: Maintainers1302107
+Node: Other Versions1303114
+Node: Installation summary1311384
+Node: Notes1312741
+Node: Compatibility Mode1313535
+Node: Additions1314317
+Node: Accessing The Source1315242
+Node: Adding Code1316679
+Node: New Ports1323494
+Node: Derived Files1327869
+Ref: Derived Files-Footnote-11333529
+Ref: Derived Files-Footnote-21333564
+Ref: Derived Files-Footnote-31334162
+Node: Future Extensions1334276
+Node: Implementation Limitations1334934
+Node: Extension Design1336144
+Node: Old Extension Problems1337288
+Ref: Old Extension Problems-Footnote-11338806
+Node: Extension New Mechanism Goals1338863
+Ref: Extension New Mechanism Goals-Footnote-11342227
+Node: Extension Other Design Decisions1342416
+Node: Extension Future Growth1344529
+Node: Notes summary1345135
+Node: Basic Concepts1346293
+Node: Basic High Level1346974
+Ref: figure-general-flow1347256
+Ref: figure-process-flow1347942
+Ref: Basic High Level-Footnote-11351244
+Node: Basic Data Typing1351429
+Node: Glossary1354757
+Node: Copying1386644
+Node: GNU Free Documentation License1424187
+Node: Index1449307
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index f5a23722..b23ee923 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -59,9 +59,9 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
-@set UPDATE-MONTH June, 2022
-@set VERSION 5.1
-@set PATCHLEVEL 1
+@set UPDATE-MONTH July, 2022
+@set VERSION 5.2
+@set PATCHLEVEL 0
 
 @set GAWKINETTITLE TCP/IP Internetworking with @command{gawk}
 @set GAWKWORKFLOWTITLE Participating in @command{gawk} Development
@@ -72,7 +72,7 @@
 @set TITLE GAWK: Effective AWK Programming
 @end ifclear
 @set SUBTITLE A User's Guide for GNU Awk
-@set EDITION 5.1
+@set EDITION 5.2
 
 @iftex
 @set DOCUMENT book
@@ -21120,28 +21120,27 @@ function causes it to become a scalar variable 
(unassigned).
 However, @code{isarray()} and @code{typeof()} are different; they do
 not change their arguments from untyped to unassigned.
 
-@cindex dark corner @subentry array elements created by reference
-By ``variable'' we mean one denoted by a simple identifier.  Array elements
-that come into existence simply by referencing them
-are different, they are automatically forced to be scalars. Consider:
+This applies to both variables denoted by simple identifiers
+and array elements that come into existence simply by referencing them.
+Consider:
 
 @example
 $ @kbd{gawk 'BEGIN @{ print typeof(x) @}'}
 @print{} untyped
 $ @kbd{gawk 'BEGIN @{ print typeof(x["foo"]) @}'}
-@print{} unassigned
+@print{} untyped
 @end example
 
-@noindent
-@code{x["foo"]} comes into existence before it is passed to @code{typeof()};
-@code{typeof()} cannot tell that it didn't exist prior to being called.
-@value{DARKCORNER}
+Note that prior to @value{PVERSION} 5.2, array elements
+that come into existence simply by referencing them
+were different, they were automatically forced to be scalars:
 
-@c FIXME: For 5.2, if this will change, update this bit of doc.
-@c This may change in a future release, whereby @command{gawk}
-@c would allow such an unassigned array element to be used for
-@c a multidimensional array, and not remain a scalar forever
-@c (or until deleted).
+@example
+$ @kbd{gawk-5.1.1 'BEGIN @{ print typeof(x) @}'}
+@print{} untyped
+$ @kbd{gawk-5.1.1 'BEGIN @{ print typeof(x["foo"]) @}'}
+@print{} unassigned
+@end example
 
 @node I18N Functions
 @subsection String-Translation Functions
@@ -30974,14 +30973,14 @@ which resides in a file in
 the filesystem.  When persistent memory is not in use (the normal case),
 @command{gawk}'s data resides in ephemeral system memory.
 
-Persistent memory is enabled on 64-bit systems supporting the @code{mmap()}
+Persistent memory is enabled on certain 64-bit systems supporting the 
@code{mmap()}
 and @code{munmap()} system calls.  @command{gawk} must be compiled as a
 non-PIE (Position Independent Executable) binary, since the persistent
 store ends up holding pointers to functions held within the @command{gawk}
 executable.  This also means that to use the persistent memory, you must
 use the same @command{gawk} executable from run to run.
 
-As of this writing, persistent memory has only been tested on GNU/Linux
+As of this writing, persistent memory has only been tested on GNU/Linux, 
Cygwin,
 and Mac OS systems. On others, your mileage may vary, and/or you may
 need to investigate how to make it work for you.
 
@@ -30991,7 +30990,7 @@ To use persistent memory, follow these steps:
 @item
 Create a new, empty sparse file of the desired size. For example, four
 gigabytes.  On a GNU/Linux system, you can use the @command{truncate}
-command:
+utility:
 
 @example
 $ @kbd{truncate -s 4G data.pma}
@@ -31003,7 +31002,7 @@ environment variable.  This is best done by placing the 
value in the
 environment just for the run of @command{gawk}, like so:
 
 @example
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 1
 @end example
 
@@ -31011,9 +31010,9 @@ $ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ 
print ++i @}'}
 Use the same data file in subsequent runs to use the preserved data values:
 
 @example
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 2
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 3
 @end example
 
@@ -31128,7 +31127,6 @@ If it becomes burdensome,@footnote{Meaning, there are 
too many
 bug reports, or too many strange differences in behavior from when
 @command{gawk} is run normally.} then the feature will be removed.
 
-
 @node Extension Philosophy
 @section Builtin Features versus Extensions
 
@@ -41901,6 +41899,10 @@ The @code{mkbool()} built-in function
 Interval expressions in regular expressions are
 enabled by default (@pxref{Interval Expressions}).
 
+@item
+Support for the FNV1-A hash algorithm for its hash function
+(@pxref{Other Environment Variables}).
+
 @item
 The @command{gawkbug} script for reporting bugs
 (@pxref{Bug address}).
@@ -43768,6 +43770,7 @@ Use the @command{gawkbug} program to submit the bug 
report. This
 program sets up a bug report template and opens it in your editor.
 You then need to edit it appropriately to include:
 
+@c nested list
 @itemize @bullet
 @item
 The program and @value{DF}.
@@ -43818,7 +43821,7 @@ bug reporting system, you should also send a copy to
 
 This is for two reasons.  First, although some distributions forward
 bug reports ``upstream'' to the GNU mailing list, many don't, so there is a 
good
-chance that the @command{gawk}  maintainers won't even see the bug report!  
Second,
+chance that the @command{gawk} maintainers won't even see the bug report!  
Second,
 mail to the GNU list is archived, and having everything at the GNU Project
 keeps things self-contained and not dependent on other organizations.
 @end quotation
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 7fcd7e05..ab8ce1b5 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -54,9 +54,9 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
-@set UPDATE-MONTH June, 2022
-@set VERSION 5.1
-@set PATCHLEVEL 1
+@set UPDATE-MONTH July, 2022
+@set VERSION 5.2
+@set PATCHLEVEL 0
 
 @set GAWKINETTITLE TCP/IP Internetworking with @command{gawk}
 @set GAWKWORKFLOWTITLE Participating in @command{gawk} Development
@@ -67,7 +67,7 @@
 @set TITLE GAWK: Effective AWK Programming
 @end ifclear
 @set SUBTITLE A User's Guide for GNU Awk
-@set EDITION 5.1
+@set EDITION 5.2
 
 @iftex
 @set DOCUMENT book
@@ -20032,28 +20032,27 @@ function causes it to become a scalar variable 
(unassigned).
 However, @code{isarray()} and @code{typeof()} are different; they do
 not change their arguments from untyped to unassigned.
 
-@cindex dark corner @subentry array elements created by reference
-By ``variable'' we mean one denoted by a simple identifier.  Array elements
-that come into existence simply by referencing them
-are different, they are automatically forced to be scalars. Consider:
+This applies to both variables denoted by simple identifiers
+and array elements that come into existence simply by referencing them.
+Consider:
 
 @example
 $ @kbd{gawk 'BEGIN @{ print typeof(x) @}'}
 @print{} untyped
 $ @kbd{gawk 'BEGIN @{ print typeof(x["foo"]) @}'}
-@print{} unassigned
+@print{} untyped
 @end example
 
-@noindent
-@code{x["foo"]} comes into existence before it is passed to @code{typeof()};
-@code{typeof()} cannot tell that it didn't exist prior to being called.
-@value{DARKCORNER}
+Note that prior to @value{PVERSION} 5.2, array elements
+that come into existence simply by referencing them
+were different, they were automatically forced to be scalars:
 
-@c FIXME: For 5.2, if this will change, update this bit of doc.
-@c This may change in a future release, whereby @command{gawk}
-@c would allow such an unassigned array element to be used for
-@c a multidimensional array, and not remain a scalar forever
-@c (or until deleted).
+@example
+$ @kbd{gawk-5.1.1 'BEGIN @{ print typeof(x) @}'}
+@print{} untyped
+$ @kbd{gawk-5.1.1 'BEGIN @{ print typeof(x["foo"]) @}'}
+@print{} unassigned
+@end example
 
 @node I18N Functions
 @subsection String-Translation Functions
@@ -29856,14 +29855,14 @@ which resides in a file in
 the filesystem.  When persistent memory is not in use (the normal case),
 @command{gawk}'s data resides in ephemeral system memory.
 
-Persistent memory is enabled on 64-bit systems supporting the @code{mmap()}
+Persistent memory is enabled on certain 64-bit systems supporting the 
@code{mmap()}
 and @code{munmap()} system calls.  @command{gawk} must be compiled as a
 non-PIE (Position Independent Executable) binary, since the persistent
 store ends up holding pointers to functions held within the @command{gawk}
 executable.  This also means that to use the persistent memory, you must
 use the same @command{gawk} executable from run to run.
 
-As of this writing, persistent memory has only been tested on GNU/Linux
+As of this writing, persistent memory has only been tested on GNU/Linux, 
Cygwin,
 and Mac OS systems. On others, your mileage may vary, and/or you may
 need to investigate how to make it work for you.
 
@@ -29873,7 +29872,7 @@ To use persistent memory, follow these steps:
 @item
 Create a new, empty sparse file of the desired size. For example, four
 gigabytes.  On a GNU/Linux system, you can use the @command{truncate}
-command:
+utility:
 
 @example
 $ @kbd{truncate -s 4G data.pma}
@@ -29885,7 +29884,7 @@ environment variable.  This is best done by placing the 
value in the
 environment just for the run of @command{gawk}, like so:
 
 @example
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 1
 @end example
 
@@ -29893,9 +29892,9 @@ $ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ 
print ++i @}'}
 Use the same data file in subsequent runs to use the preserved data values:
 
 @example
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 2
-$ @kbd{GAWK_PERSIST_FILE=data.pma ./gawk 'BEGIN @{ print ++i @}'}
+$ @kbd{GAWK_PERSIST_FILE=data.pma gawk 'BEGIN @{ print ++i @}'}
 3
 @end example
 
@@ -30010,7 +30009,6 @@ If it becomes burdensome,@footnote{Meaning, there are 
too many
 bug reports, or too many strange differences in behavior from when
 @command{gawk} is run normally.} then the feature will be removed.
 
-
 @node Extension Philosophy
 @section Builtin Features versus Extensions
 
@@ -40744,6 +40742,10 @@ The @code{mkbool()} built-in function
 Interval expressions in regular expressions are
 enabled by default (@pxref{Interval Expressions}).
 
+@item
+Support for the FNV1-A hash algorithm for its hash function
+(@pxref{Other Environment Variables}).
+
 @item
 The @command{gawkbug} script for reporting bugs
 (@pxref{Bug address}).
@@ -42611,6 +42613,7 @@ Use the @command{gawkbug} program to submit the bug 
report. This
 program sets up a bug report template and opens it in your editor.
 You then need to edit it appropriately to include:
 
+@c nested list
 @itemize @bullet
 @item
 The program and @value{DF}.
@@ -42661,7 +42664,7 @@ bug reporting system, you should also send a copy to
 
 This is for two reasons.  First, although some distributions forward
 bug reports ``upstream'' to the GNU mailing list, many don't, so there is a 
good
-chance that the @command{gawk}  maintainers won't even see the bug report!  
Second,
+chance that the @command{gawk} maintainers won't even see the bug report!  
Second,
 mail to the GNU list is archived, and having everything at the GNU Project
 keeps things self-contained and not dependent on other organizations.
 @end quotation

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=c3c6419cea6debcceb62ca5e7f5d538d1a000629

commit c3c6419cea6debcceb62ca5e7f5d538d1a000629
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Mon Jul 11 18:41:15 2022 +0300

    Make the time extension deprecated.

diff --git a/extension/ChangeLog b/extension/ChangeLog
index 47999f7f..cadceedc 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2022-07-11         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * time.c: Add a warning upon load that the extension is deprecated.
+       * time.3am: Document same. Update copyright year and date.
+
 2022-07-01         Arnold D. Robbins     <arnold@skeeve.com>
 
        * Makefile.am, intdiv.c, readfile.c, rwarray.3am, rwarray.c,
diff --git a/extension/time.3am b/extension/time.3am
index 05f4646f..884f56f4 100644
--- a/extension/time.3am
+++ b/extension/time.3am
@@ -1,4 +1,4 @@
-.TH TIME 3am "Nov 21 2019" "Free Software Foundation" "GNU Awk Extension 
Modules"
+.TH TIME 3am "Jul 11 2022" "Free Software Foundation" "GNU Awk Extension 
Modules"
 .SH NAME
 time \- time functions for gawk
 .SH SYNOPSIS
@@ -14,12 +14,11 @@ This extension is deprecated in favor of the
 .B timex
 extension in the
 .I gawkextlib
-project.  In the next major release of
-.IR gawk ,
-loading it will issue a warning.
+project.
+Loading it issues a warning.
 It will be removed from the
 .I gawk
-distribution in the major release after the next one.
+distribution in the next major release.
 .SH DESCRIPTION
 The
 .I time
@@ -76,7 +75,7 @@ printf "Pausing for a while... " ; sleep(2.5) ; print "done"
 Arnold Robbins,
 .BR arnold@skeeve.com .
 .SH COPYING PERMISSIONS
-Copyright \(co 2012, 2013, 2018,
+Copyright \(co 2012, 2013, 2018, 2022,
 Free Software Foundation, Inc.
 .PP
 Permission is granted to make and distribute verbatim copies of
diff --git a/extension/time.c b/extension/time.c
index e77a0d87..79a6141e 100644
--- a/extension/time.c
+++ b/extension/time.c
@@ -33,6 +33,7 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdbool.h>
 #include <unistd.h>
 
 #include <sys/types.h>
@@ -80,8 +81,9 @@ vms_fake_nanosleep(struct timespec *rqdly, struct timespec 
*rmdly)
 
 static const gawk_api_t *api;  /* for convenience macros to work */
 static awk_ext_id_t ext_id;
-static const char *ext_version = "time extension: version 1.0";
-static awk_bool_t (*init_func)(void) = NULL;
+static const char *ext_version = "time extension: version 1.1";
+static awk_bool_t issue_warning(void);
+static awk_bool_t (*init_func)(void) = issue_warning;
 
 int plugin_is_GPL_compatible;
 
@@ -97,6 +99,16 @@ int plugin_is_GPL_compatible;
 #include <windows.h>
 #endif
 
+/* issue_warning --- issue a warning that this extension is obsolete */
+
+static awk_bool_t
+issue_warning(void)
+{
+       warning(ext_id, _("The time extension is obsolete. Use the timex 
extension from gawkextlib instead."));
+
+       return awk_true;
+}
+
 /*
  * Returns time since 1/1/1970 UTC as a floating point value; should
  * have sub-second precision, but the actual precision will vary based
diff --git a/test/ChangeLog b/test/ChangeLog
index 0957a914..856ea4e3 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2022-07-11         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * time.ok: Adjust after code changes.
+
 2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
 
        * Makefile.am (EXPECTED_FAIL_DJGPP): Removed.
diff --git a/test/time.ok b/test/time.ok
index 46606bfe..ffd21696 100644
--- a/test/time.ok
+++ b/test/time.ok
@@ -1,3 +1,4 @@
+gawk: time.awk:2: warning: The time extension is obsolete. Use the timex 
extension from gawkextlib instead.
 gettimeofday - systime = 0
 sleep(1.3) = 0
 gettimeofday - systime = 0

-----------------------------------------------------------------------

Summary of changes:
 doc/ChangeLog       |   9 +
 doc/awkcard.in      |   4 +-
 doc/gawk.1          |   4 +-
 doc/gawk.info       | 748 ++++++++++++++++++++++++++--------------------------
 doc/gawk.texi       |  55 ++--
 doc/gawktexi.in     |  55 ++--
 extension/ChangeLog |   5 +
 extension/time.3am  |  11 +-
 extension/time.c    |  16 +-
 test/ChangeLog      |   4 +
 test/time.ok        |   1 +
 11 files changed, 477 insertions(+), 435 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]