gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, gawk-5.2-stable, updated. gawk-4.1.0-4971-g5a62eb04


From: Arnold Robbins
Subject: [SCM] gawk branch, gawk-5.2-stable, updated. gawk-4.1.0-4971-g5a62eb04
Date: Sun, 11 Dec 2022 15:11:54 -0500 (EST)

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, gawk-5.2-stable has been updated
       via  5a62eb04a1c3cafc2a34ea7290a646e6174077e5 (commit)
      from  df616f664859ed9e9f71e66641e84f9f12d8d7b3 (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=5a62eb04a1c3cafc2a34ea7290a646e6174077e5

commit 5a62eb04a1c3cafc2a34ea7290a646e6174077e5
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Sun Dec 11 22:11:32 2022 +0200

    Add PROCINFO["pma"] if PMA is available.

diff --git a/ChangeLog b/ChangeLog
index 2384ec2c..df7cae81 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2022-12-11         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * main.c (get_pma_version): Add declaration.
+       (load_procinfo): Use it to set PROCINFO["pma"] if PMA is in use.
+       Thanks to J Naman for the feature suggestion.
+       * NEWS: Updated.
+
 2022-12-04         Arnold D. Robbins     <arnold@skeeve.com>
 
        * NEWS: Updated.
diff --git a/NEWS b/NEWS
index 47527e56..a1148f26 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,9 @@ Changes from 5.2.1 to 5.2.2
 3. Gawk no longer "leaks" its free list of NODEs in the heap file, resulting
    in much more efficient usage of persistent storage.
 
+4. PROCINFO["pma"] exists if the PMA allocator is compiled into gawk.
+   Its value is the PMA version.
+
 Changes from 5.2.0 to 5.2.1
 ---------------------------
 
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 48ead504..a3bd4820 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2022-12-11         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * gawktexi.in (Auto-set): Document PROCINFO["pma"].
+       (Feature History): Ditto.
+       And per Antonio Colombo, make sample output of --version
+       consistent both places it's shown.
+
 2022-12-04         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawktexi.in (Persistent Memory): Update version stuff in sample
diff --git a/doc/gawk.info b/doc/gawk.info
index 9ec77834..c49fb2c8 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -5,7 +5,7 @@ Free Software Foundation, Inc.
 
 
    This is Edition 5.2 of 'GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 5.2.1 (or later) version of the GNU
+Guide for GNU Awk', for the 5.2.2 (or later) version of the GNU
 implementation of AWK.
 
    Permission is granted to copy, distribute and/or modify this document
@@ -42,7 +42,7 @@ Free Software Foundation, Inc.
 
 
    This is Edition 5.2 of 'GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 5.2.1 (or later) version of the GNU
+Guide for GNU Awk', for the 5.2.2 (or later) version of the GNU
 implementation of AWK.
 
    Permission is granted to copy, distribute and/or modify this document
@@ -11470,6 +11470,11 @@ they are not special:
      'PROCINFO["pid"]'
           The process ID of the current process.
 
+     'PROCINFO["pma"]'
+          The version of the PMA memory allocator compiled into 'gawk'.
+          This element will not be present if the PMA allocator is not
+          available for use.  *Note Persistent Memory::.
+
      'PROCINFO["ppid"]'
           The parent process ID of the current process.
 
@@ -22164,7 +22169,7 @@ use the same 'gawk' executable from run to run.
 so:
 
      $ gawk --version
-     -| GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+     -| GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
      -| Copyright (C) 1989, 1991-2022 Free Software Foundation.
      ...
 
@@ -24837,7 +24842,7 @@ uses the GNU MPFR (http://www.mpfr.org) and GNU MP 
(https://gmplib.org)
 see if MPFR support is available like so:
 
      $ gawk --version
-     -| GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+     -| GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
      -| Copyright (C) 1989, 1991-2022 Free Software Foundation.
      ...
 
@@ -30640,6 +30645,9 @@ unfortunately.  It added the following features:
      allowing the use of persistent data on certain systems (*note
      Persistent Memory::).
 
+   * 'PROCINFO["pma"' exists if the PMA allocator is compiled in (*note
+     Auto-set::).
+
 
 File: gawk.info,  Node: Common Extensions,  Next: Ranges and Locales,  Prev: 
Feature History,  Up: Language History
 
@@ -31015,7 +31023,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.2.1.tar.gz
+          wget https://ftp.gnu.org/gnu/gawk/gawk-5.2.2.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
@@ -31037,25 +31045,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.2.1.tar.gz'), use
+   Once you have the distribution (e.g., 'gawk-5.2.2.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.2.1.tar.gz | tar -xvpf -
+     gzip -d -c gawk-5.2.2.tar.gz | tar -xvpf -
 
    On a system with GNU 'tar', you can let 'tar' do the decompression
 for you:
 
-     tar -xvpzf gawk-5.2.1.tar.gz
+     tar -xvpzf gawk-5.2.2.tar.gz
 
-Extracting the archive creates a directory named 'gawk-5.2.1' in the
+Extracting the archive creates a directory named 'gawk-5.2.2' 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
+2, 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
@@ -31312,7 +31320,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.2.1'.  As with most GNU software, you configure 'gawk' for your
+'gawk-5.2.2'.  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:
@@ -31732,8 +31740,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.2.1.tar.gz
-     cd gawk-5.2.1
+     tar -xvpzf gawk-5.2.2.tar.gz
+     cd gawk-5.2.2
      ./configure
      make && make check
 
@@ -32622,9 +32630,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.2.1.tar.gz
-          tar -xvpzf gawk-5.2.1.tar.gz
-          cd gawk-5.2.1
+          wget https://ftp.gnu.org/gnu/gawk/gawk-5.2.2.tar.gz
+          tar -xvpzf gawk-5.2.2.tar.gz
+          cd gawk-5.2.2
           ./configure && make && make check
 
           NOTE: Because of the 'https://' URL, you may have to supply
@@ -36652,7 +36660,7 @@ Index
 * dark corner, exit statement:           Exit Statement.      (line  30)
 * dark corner, value of ARGV[0]:         Auto-set.            (line  39)
 * dark corner, FILENAME variable <1>:    Auto-set.            (line 108)
-* dark corner, FNR/NR variables:         Auto-set.            (line 404)
+* dark corner, FNR/NR variables:         Auto-set.            (line 409)
 * dark corner, array subscripts:         Uninitialized Subscripts.
                                                               (line  43)
 * dark corner, regexp as second argument to index(): String Functions.
@@ -36899,8 +36907,8 @@ Index
 * differences in awk and gawk, ERRNO variable: Auto-set.      (line  87)
 * differences in awk and gawk, FUNCTAB variable: Auto-set.    (line 134)
 * differences in awk and gawk, PROCINFO array: Auto-set.      (line 148)
-* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 343)
-* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 347)
+* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 348)
+* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 352)
 * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV.
                                                               (line  89)
 * differences in awk and gawk, array elements, deleting: Delete.
@@ -37169,7 +37177,7 @@ Index
 * expressions, selecting:                Conditional Exp.     (line   6)
 * expressions, as patterns:              Expression Patterns. (line   6)
 * Extended Regular Expressions (EREs):   Bracket Expressions. (line  34)
-* extension API, version number:         Auto-set.            (line 282)
+* extension API, version number:         Auto-set.            (line 287)
 * extension API, interaction with namespaces: Namespace And Features.
                                                               (line  22)
 * extension API:                         Extension API Description.
@@ -37344,7 +37352,7 @@ Index
                                                               (line  12)
 * FNR variable:                          Records.             (line   6)
 * FNR variable <1>:                      Auto-set.            (line 118)
-* FNR variable, changing:                Auto-set.            (line 404)
+* FNR variable, changing:                Auto-set.            (line 409)
 * for statement:                         For Statement.       (line   6)
 * for statement, looping over arrays:    Scanning an Array.   (line  20)
 * fork() extension function:             Extension Sample Fork.
@@ -37508,9 +37516,9 @@ Index
 * gawk, ERRNO variable in <3>:           Auto-set.            (line  87)
 * gawk, FUNCTAB array in:                Auto-set.            (line 134)
 * gawk, PROCINFO array in <1>:           Auto-set.            (line 148)
-* gawk, version of:                      Auto-set.            (line 257)
-* gawk, RT variable in <3>:              Auto-set.            (line 343)
-* gawk, SYMTAB array in:                 Auto-set.            (line 347)
+* gawk, version of:                      Auto-set.            (line 262)
+* gawk, RT variable in <3>:              Auto-set.            (line 348)
+* gawk, SYMTAB array in:                 Auto-set.            (line 352)
 * gawk, IGNORECASE variable in <2>:      Array Intro.         (line 100)
 * gawk, function arguments and:          Calling Built-in.    (line  16)
 * gawk, IGNORECASE variable in <3>:      String Functions.    (line  57)
@@ -37981,7 +37989,7 @@ Index
 * mawk utility <2>:                      Concatenation.       (line  36)
 * mawk utility <3>:                      Nextfile Statement.  (line  47)
 * mawk utility <4>:                      Other Versions.      (line  39)
-* maximum precision supported by MPFR library: Auto-set.      (line 271)
+* maximum precision supported by MPFR library: Auto-set.      (line 276)
 * McIlroy, Doug:                         Glossary.            (line 255)
 * McPhee, Patrick T.J.:                  Contributors.        (line 103)
 * memory, allocating for extensions:     Memory Allocation Functions.
@@ -37996,7 +38004,7 @@ Index
 * messages from extensions:              Printing Messages.   (line   6)
 * metacharacters, escape sequences for:  Escape Sequences.    (line 139)
 * metacharacters, in regular expressions: Regexp Operators.   (line   6)
-* minimum precision required by MPFR library: Auto-set.       (line 274)
+* minimum precision required by MPFR library: Auto-set.       (line 279)
 * Minshall, Greg:                        Getopt Function.     (line 105)
 * mkbool:                                Boolean Functions.   (line  10)
 * mktime:                                Time Functions.      (line  25)
@@ -38093,7 +38101,7 @@ Index
 * not Boolean-logic operator:            Boolean Ops.         (line   6)
 * NR variable:                           Records.             (line   6)
 * NR variable <1>:                       Auto-set.            (line 143)
-* NR variable, changing:                 Auto-set.            (line 404)
+* NR variable, changing:                 Auto-set.            (line 409)
 * null strings, in gawk arguments, quoting and: Quoting.      (line  82)
 * null strings, in gawk arguments, quoting and <1>: Other Arguments.
                                                               (line  73)
@@ -38210,7 +38218,7 @@ Index
                                                               (line  39)
 * package, definition of:                Global Namespace.    (line  18)
 * Papadopoulos, Panos:                   Contributors.        (line 131)
-* parent process ID of gawk process:     Auto-set.            (line 246)
+* parent process ID of gawk process:     Auto-set.            (line 251)
 * parentheses (), regexp operator:       Regexp Operator Details.
                                                               (line  77)
 * parentheses (), in a profile:          Profiling.           (line 146)
@@ -38244,6 +38252,8 @@ Index
 * period (.), regexp operator:           Regexp Operator Details.
                                                               (line  40)
 * Perl:                                  Future Extensions.   (line   6)
+* persistent memory, compiled into gawk: Auto-set.            (line 246)
+* persistent memory:                     Persistent Memory.   (line   6)
 * Peters, Arno:                          Contributors.        (line  88)
 * Peterson, Hal:                         Contributors.        (line  40)
 * pipe, input:                           Getline/Pipe.        (line  10)
@@ -38262,6 +38272,8 @@ Index
 * plus sign (+), + operator:             Precedence.          (line  51)
 * plus sign (+), + operator <1>:         Precedence.          (line  57)
 * plus sign (+), += operator <1>:        Precedence.          (line  94)
+* PMA memory allocator:                  Auto-set.            (line 246)
+* PMA memory allocator <1>:              Persistent Memory.   (line   6)
 * PMA_VERBOSITY environment variable:    Other Environment Variables.
                                                               (line  29)
 * PMA_VERBOSITY environment variable <1>: Persistent Memory.  (line  89)
@@ -38614,7 +38626,7 @@ Index
 * right angle bracket (>), >> operator (I/O) <1>: Precedence. (line  64)
 * right shift, bitwise:                  Bitwise Functions.   (line  33)
 * Ritchie, Dennis:                       Basic Data Typing.   (line  54)
-* RLENGTH variable:                      Auto-set.            (line 330)
+* RLENGTH variable:                      Auto-set.            (line 335)
 * RLENGTH variable, match() function and: String Functions.   (line 241)
 * Robbins, Miriam:                       Acknowledgments.     (line  94)
 * Robbins, Jean:                         Acknowledgments.     (line  94)
@@ -38644,12 +38656,12 @@ Index
 * RS variable, multiline records and:    Multiple Line.       (line  17)
 * RS variable <1>:                       User-modified.       (line 135)
 * rshift:                                Bitwise Functions.   (line  55)
-* RSTART variable:                       Auto-set.            (line 336)
+* RSTART variable:                       Auto-set.            (line 341)
 * RSTART variable, match() function and: String Functions.    (line 241)
 * RT variable:                           awk split records.   (line 118)
 * RT variable <1>:                       gawk split records.  (line  66)
 * RT variable <2>:                       Multiple Line.       (line 138)
-* RT variable <3>:                       Auto-set.            (line 343)
+* RT variable <3>:                       Auto-set.            (line 348)
 * Rubin, Paul:                           History.             (line  30)
 * Rubin, Paul <1>:                       Contributors.        (line  16)
 * rule, definition of:                   Getting Started.     (line  21)
@@ -38667,7 +38679,7 @@ Index
 * scanning arrays:                       Scanning an Array.   (line   6)
 * scanning multidimensional arrays:      Multiscanning.       (line  11)
 * Schorr, Andrew:                        Acknowledgments.     (line  60)
-* Schorr, Andrew <1>:                    Auto-set.            (line 374)
+* Schorr, Andrew <1>:                    Auto-set.            (line 379)
 * Schorr, Andrew <2>:                    Contributors.        (line 136)
 * Schreiber, Bert:                       Acknowledgments.     (line  38)
 * Schreiber, Rita:                       Acknowledgments.     (line  38)
@@ -38791,7 +38803,7 @@ Index
 * sidebar, Syntactic Ambiguities Between /= and Regular Expressions: 
Assignment Ops.
                                                               (line 148)
 * sidebar, Operator Evaluation Order:    Increment Ops.       (line  58)
-* sidebar, Changing NR and FNR:          Auto-set.            (line 402)
+* sidebar, Changing NR and FNR:          Auto-set.            (line 407)
 * sidebar, Matching the Null String:     String Functions.    (line 561)
 * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions.
                                                               (line  73)
@@ -38953,9 +38965,9 @@ Index
 * substr:                                String Functions.    (line 499)
 * substring:                             String Functions.    (line 499)
 * Sumner, Andrew:                        Other Versions.      (line  64)
-* supplementary groups of gawk process:  Auto-set.            (line 287)
+* supplementary groups of gawk process:  Auto-set.            (line 292)
 * switch statement:                      Switch Statement.    (line   6)
-* SYMTAB array:                          Auto-set.            (line 347)
+* SYMTAB array:                          Auto-set.            (line 352)
 * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
                                                               (line 150)
 * system:                                I/O Functions.       (line 105)
@@ -39177,10 +39189,10 @@ Index
 * variables, global, for library functions: Library Names.    (line  11)
 * variables, private:                    Library Names.       (line  11)
 * variables <1>:                         Basic Data Typing.   (line   6)
-* version of, gawk:                      Auto-set.            (line 257)
-* version of, GNU MP library:            Auto-set.            (line 265)
-* version of, GNU MPFR library:          Auto-set.            (line 267)
-* version of, gawk extension API:        Auto-set.            (line 282)
+* version of, gawk:                      Auto-set.            (line 262)
+* version of, GNU MP library:            Auto-set.            (line 270)
+* version of, GNU MPFR library:          Auto-set.            (line 272)
+* version of, gawk extension API:        Auto-set.            (line 287)
 * vertical bar (|):                      Regexp Operator Details.
                                                               (line  66)
 * vertical bar (|), | operator (I/O):    Getline/Pipe.        (line  10)
@@ -39467,401 +39479,401 @@ Node: Exit Statement470594
 Node: Built-in Variables472997
 Node: User-modified474130
 Node: Auto-set481897
-Ref: Auto-set-Footnote-1498606
-Ref: Auto-set-Footnote-2498812
-Node: ARGC and ARGV498868
-Node: Pattern Action Summary503081
-Node: Arrays505511
-Node: Array Basics506840
-Node: Array Intro507684
-Ref: figure-array-elements509659
-Ref: Array Intro-Footnote-1512364
-Node: Reference to Elements512492
-Node: Assigning Elements514956
-Node: Array Example515447
-Node: Scanning an Array517401
-Node: Controlling Scanning520423
-Ref: Controlling Scanning-Footnote-1526879
-Node: Numeric Array Subscripts527195
-Node: Uninitialized Subscripts529379
-Node: Delete530998
-Ref: Delete-Footnote-1533750
-Node: Multidimensional533807
-Node: Multiscanning536902
-Node: Arrays of Arrays538493
-Node: Arrays Summary543261
-Node: Functions545354
-Node: Built-in546392
-Node: Calling Built-in547545
-Node: Boolean Functions549541
-Node: Numeric Functions550095
-Ref: Numeric Functions-Footnote-1554122
-Ref: Numeric Functions-Footnote-2554770
-Ref: Numeric Functions-Footnote-3554818
-Node: String Functions555090
-Ref: String Functions-Footnote-1579932
-Ref: String Functions-Footnote-2580060
-Ref: String Functions-Footnote-3580308
-Node: Gory Details580395
-Ref: table-sub-escapes582186
-Ref: table-sub-proposed583706
-Ref: table-posix-sub585070
-Ref: table-gensub-escapes586612
-Ref: Gory Details-Footnote-1587436
-Node: I/O Functions587590
-Ref: table-system-return-values594044
-Ref: I/O Functions-Footnote-1596125
-Ref: I/O Functions-Footnote-2596273
-Node: Time Functions596393
-Ref: Time Functions-Footnote-1607064
-Ref: Time Functions-Footnote-2607132
-Ref: Time Functions-Footnote-3607290
-Ref: Time Functions-Footnote-4607401
-Ref: Time Functions-Footnote-5607513
-Ref: Time Functions-Footnote-6607740
-Node: Bitwise Functions608006
-Ref: table-bitwise-ops608600
-Ref: Bitwise Functions-Footnote-1614664
-Ref: Bitwise Functions-Footnote-2614837
-Node: Type Functions615028
-Node: I18N Functions618549
-Node: User-defined620200
-Node: Definition Syntax621012
-Ref: Definition Syntax-Footnote-1626706
-Node: Function Example626777
-Ref: Function Example-Footnote-1629699
-Node: Function Calling629721
-Node: Calling A Function630309
-Node: Variable Scope631267
-Node: Pass By Value/Reference634261
-Node: Function Caveats636905
-Ref: Function Caveats-Footnote-1638952
-Node: Return Statement639072
-Node: Dynamic Typing642051
-Node: Indirect Calls642981
-Node: Functions Summary653908
-Node: Library Functions656613
-Ref: Library Functions-Footnote-1660097
-Ref: Library Functions-Footnote-2660240
-Node: Library Names660411
-Ref: Library Names-Footnote-1664078
-Ref: Library Names-Footnote-2664301
-Node: General Functions664387
-Node: Strtonum Function665569
-Node: Assert Function668591
-Node: Round Function671917
-Node: Cliff Random Function673457
-Node: Ordinal Functions674473
-Ref: Ordinal Functions-Footnote-1677536
-Ref: Ordinal Functions-Footnote-2677788
-Node: Join Function677998
-Ref: Join Function-Footnote-1679768
-Node: Getlocaltime Function679968
-Node: Readfile Function683710
-Node: Shell Quoting685687
-Node: Isnumeric Function687115
-Node: Data File Management688503
-Node: Filetrans Function689135
-Node: Rewind Function693231
-Node: File Checking695140
-Ref: File Checking-Footnote-1696474
-Node: Empty Files696675
-Node: Ignoring Assigns698654
-Node: Getopt Function700204
-Ref: Getopt Function-Footnote-1715501
-Node: Passwd Functions715701
-Ref: Passwd Functions-Footnote-1724540
-Node: Group Functions724628
-Ref: Group Functions-Footnote-1732526
-Node: Walking Arrays732733
-Node: Library Functions Summary735741
-Node: Library Exercises737147
-Node: Sample Programs737612
-Node: Running Examples738382
-Node: Clones739110
-Node: Cut Program740334
-Node: Egrep Program750474
-Node: Id Program759475
-Node: Split Program769410
-Ref: Split Program-Footnote-1779303
-Node: Tee Program779476
-Node: Uniq Program782266
-Node: Wc Program789854
-Node: Bytes vs. Characters790241
-Node: Using extensions791789
-Node: wc program792543
-Node: Miscellaneous Programs797408
-Node: Dupword Program798621
-Node: Alarm Program800651
-Node: Translate Program805506
-Ref: Translate Program-Footnote-1810071
-Node: Labels Program810341
-Ref: Labels Program-Footnote-1813692
-Node: Word Sorting813776
-Node: History Sorting817848
-Node: Extract Program820073
-Node: Simple Sed828086
-Node: Igawk Program831160
-Ref: Igawk Program-Footnote-1845789
-Ref: Igawk Program-Footnote-2845991
-Ref: Igawk Program-Footnote-3846113
-Node: Anagram Program846228
-Node: Signature Program849290
-Node: Programs Summary850537
-Node: Programs Exercises851751
-Ref: Programs Exercises-Footnote-1855881
-Node: Advanced Features855967
-Node: Nondecimal Data858364
-Node: Boolean Typed Values859962
-Node: Array Sorting861843
-Node: Controlling Array Traversal862548
-Ref: Controlling Array Traversal-Footnote-1870916
-Node: Array Sorting Functions871034
-Ref: Array Sorting Functions-Footnote-1876945
-Node: Two-way I/O877141
-Ref: Two-way I/O-Footnote-1884867
-Ref: Two-way I/O-Footnote-2885054
-Node: TCP/IP Networking885136
-Node: Profiling888212
-Node: Persistent Memory897518
-Ref: Persistent Memory-Footnote-1905784
-Node: Extension Philosophy905911
-Node: Advanced Features Summary907398
-Node: Internationalization909570
-Node: I18N and L10N911244
-Node: Explaining gettext911931
-Ref: Explaining gettext-Footnote-1917823
-Ref: Explaining gettext-Footnote-2918008
-Node: Programmer i18n918173
-Ref: Programmer i18n-Footnote-1923122
-Node: Translator i18n923171
-Node: String Extraction923965
-Ref: String Extraction-Footnote-1925097
-Node: Printf Ordering925183
-Ref: Printf Ordering-Footnote-1927969
-Node: I18N Portability928033
-Ref: I18N Portability-Footnote-1930489
-Node: I18N Example930552
-Ref: I18N Example-Footnote-1933827
-Ref: I18N Example-Footnote-2933900
-Node: Gawk I18N934009
-Node: I18N Summary934631
-Node: Debugger935972
-Node: Debugging936972
-Node: Debugging Concepts937413
-Node: Debugging Terms939222
-Node: Awk Debugging941797
-Ref: Awk Debugging-Footnote-1942742
-Node: Sample Debugging Session942874
-Node: Debugger Invocation943408
-Node: Finding The Bug944794
-Node: List of Debugger Commands951268
-Node: Breakpoint Control952601
-Node: Debugger Execution Control956295
-Node: Viewing And Changing Data959657
-Node: Execution Stack963198
-Node: Debugger Info964835
-Node: Miscellaneous Debugger Commands968906
-Node: Readline Support973968
-Node: Limitations974864
-Node: Debugging Summary977418
-Node: Namespaces978697
-Node: Global Namespace979808
-Node: Qualified Names981206
-Node: Default Namespace982205
-Node: Changing The Namespace982946
-Node: Naming Rules984560
-Node: Internal Name Management986408
-Node: Namespace Example987450
-Node: Namespace And Features990012
-Node: Namespace Summary991447
-Node: Arbitrary Precision Arithmetic992924
-Node: Computer Arithmetic994411
-Ref: table-numeric-ranges998177
-Ref: table-floating-point-ranges998671
-Ref: Computer Arithmetic-Footnote-1999330
-Node: Math Definitions999387
-Ref: table-ieee-formats1002363
-Node: MPFR features1002931
-Node: MPFR On Parole1003376
-Ref: MPFR On Parole-Footnote-11004205
-Node: MPFR Intro1004360
-Node: FP Math Caution1006011
-Ref: FP Math Caution-Footnote-11007083
-Node: Inexactness of computations1007452
-Node: Inexact representation1008483
-Node: Comparing FP Values1009843
-Node: Errors accumulate1011084
-Node: Strange values1012540
-Ref: Strange values-Footnote-11015128
-Node: Getting Accuracy1015233
-Node: Try To Round1017943
-Node: Setting precision1018842
-Ref: table-predefined-precision-strings1019539
-Node: Setting the rounding mode1021370
-Ref: table-gawk-rounding-modes1021744
-Ref: Setting the rounding mode-Footnote-11025676
-Node: Arbitrary Precision Integers1025855
-Ref: Arbitrary Precision Integers-Footnote-11029030
-Node: Checking for MPFR1029179
-Node: POSIX Floating Point Problems1030653
-Ref: POSIX Floating Point Problems-Footnote-11035306
-Node: Floating point summary1035344
-Node: Dynamic Extensions1037534
-Node: Extension Intro1039087
-Node: Plugin License1040353
-Node: Extension Mechanism Outline1041150
-Ref: figure-load-extension1041589
-Ref: figure-register-new-function1043155
-Ref: figure-call-new-function1044248
-Node: Extension API Description1046311
-Node: Extension API Functions Introduction1048024
-Ref: table-api-std-headers1049860
-Node: General Data Types1054110
-Ref: General Data Types-Footnote-11062816
-Node: Memory Allocation Functions1063115
-Ref: Memory Allocation Functions-Footnote-11067616
-Node: Constructor Functions1067715
-Node: API Ownership of MPFR and GMP Values1071368
-Node: Registration Functions1072901
-Node: Extension Functions1073601
-Node: Exit Callback Functions1078923
-Node: Extension Version String1080173
-Node: Input Parsers1080836
-Node: Output Wrappers1093557
-Node: Two-way processors1098069
-Node: Printing Messages1100334
-Ref: Printing Messages-Footnote-11101505
-Node: Updating ERRNO1101658
-Node: Requesting Values1102397
-Ref: table-value-types-returned1103134
-Node: Accessing Parameters1104243
-Node: Symbol Table Access1105480
-Node: Symbol table by name1105992
-Ref: Symbol table by name-Footnote-11109017
-Node: Symbol table by cookie1109145
-Ref: Symbol table by cookie-Footnote-11113330
-Node: Cached values1113394
-Ref: Cached values-Footnote-11116930
-Node: Array Manipulation1117083
-Ref: Array Manipulation-Footnote-11118174
-Node: Array Data Types1118211
-Ref: Array Data Types-Footnote-11120869
-Node: Array Functions1120961
-Node: Flattening Arrays1125746
-Node: Creating Arrays1132722
-Node: Redirection API1137489
-Node: Extension API Variables1140322
-Node: Extension Versioning1141033
-Ref: gawk-api-version1141462
-Node: Extension GMP/MPFR Versioning1143194
-Node: Extension API Informational Variables1144822
-Node: Extension API Boilerplate1145895
-Node: Changes from API V11149869
-Node: Finding Extensions1151441
-Node: Extension Example1152000
-Node: Internal File Description1152798
-Node: Internal File Ops1156878
-Ref: Internal File Ops-Footnote-11168228
-Node: Using Internal File Ops1168368
-Ref: Using Internal File Ops-Footnote-11170751
-Node: Extension Samples1171025
-Node: Extension Sample File Functions1172554
-Node: Extension Sample Fnmatch1180203
-Node: Extension Sample Fork1181690
-Node: Extension Sample Inplace1182908
-Node: Extension Sample Ord1186534
-Node: Extension Sample Readdir1187370
-Ref: table-readdir-file-types1188259
-Node: Extension Sample Revout1189327
-Node: Extension Sample Rev2way1189916
-Node: Extension Sample Read write array1190656
-Node: Extension Sample Readfile1193842
-Node: Extension Sample Time1194937
-Node: Extension Sample API Tests1196689
-Node: gawkextlib1197181
-Node: Extension summary1200099
-Node: Extension Exercises1203801
-Node: Language History1205043
-Node: V7/SVR3.11206699
-Node: SVR41208851
-Node: POSIX1210285
-Node: BTL1211666
-Node: POSIX/GNU1212395
-Node: Feature History1218312
-Node: Common Extensions1236051
-Node: Ranges and Locales1237334
-Ref: Ranges and Locales-Footnote-11241950
-Ref: Ranges and Locales-Footnote-21241977
-Ref: Ranges and Locales-Footnote-31242212
-Node: Contributors1242435
-Node: History summary1248432
-Node: Installation1249812
-Node: Gawk Distribution1250756
-Node: Getting1251240
-Node: Extracting1252203
-Node: Distribution contents1253841
-Node: Unix Installation1261339
-Node: Quick Installation1262143
-Node: Compiling with MPFR1264563
-Node: Shell Startup Files1265253
-Node: Additional Configuration Options1266342
-Node: Configuration Philosophy1268657
-Node: Compiling from Git1271053
-Node: Building the Documentation1271608
-Node: Non-Unix Installation1272992
-Node: PC Installation1273456
-Node: PC Binary Installation1274301
-Node: PC Compiling1275174
-Node: PC Using1276280
-Node: Cygwin1279776
-Node: MSYS1281000
-Node: OpenVMS Installation1281602
-Node: OpenVMS Compilation1282263
-Ref: OpenVMS Compilation-Footnote-11283686
-Node: OpenVMS Dynamic Extensions1283744
-Node: OpenVMS Installation Details1285356
-Node: OpenVMS Running1287651
-Node: OpenVMS GNV1291652
-Node: Bugs1292395
-Node: Bug definition1293307
-Node: Bug address1296809
-Node: Usenet1300328
-Node: Performance bugs1301517
-Node: Asking for help1304438
-Node: Maintainers1306405
-Node: Other Versions1307412
-Node: Installation summary1315991
-Node: Notes1317331
-Node: Compatibility Mode1318125
-Node: Additions1318907
-Node: Accessing The Source1319832
-Node: Adding Code1321269
-Node: New Ports1328084
-Node: Derived Files1332459
-Ref: Derived Files-Footnote-11338118
-Ref: Derived Files-Footnote-21338153
-Ref: Derived Files-Footnote-31338748
-Node: Future Extensions1338862
-Node: Implementation Limitations1339520
-Node: Extension Design1340730
-Node: Old Extension Problems1341874
-Ref: Old Extension Problems-Footnote-11343392
-Node: Extension New Mechanism Goals1343449
-Ref: Extension New Mechanism Goals-Footnote-11346813
-Node: Extension Other Design Decisions1347002
-Node: Extension Future Growth1349115
-Node: Notes summary1349721
-Node: Basic Concepts1350879
-Node: Basic High Level1351560
-Ref: figure-general-flow1351842
-Ref: figure-process-flow1352528
-Ref: Basic High Level-Footnote-11355830
-Node: Basic Data Typing1356015
-Node: Glossary1359343
-Node: Copying1391230
-Node: GNU Free Documentation License1428773
-Node: Index1453893
+Ref: Auto-set-Footnote-1498830
+Ref: Auto-set-Footnote-2499036
+Node: ARGC and ARGV499092
+Node: Pattern Action Summary503305
+Node: Arrays505735
+Node: Array Basics507064
+Node: Array Intro507908
+Ref: figure-array-elements509883
+Ref: Array Intro-Footnote-1512588
+Node: Reference to Elements512716
+Node: Assigning Elements515180
+Node: Array Example515671
+Node: Scanning an Array517625
+Node: Controlling Scanning520647
+Ref: Controlling Scanning-Footnote-1527103
+Node: Numeric Array Subscripts527419
+Node: Uninitialized Subscripts529603
+Node: Delete531222
+Ref: Delete-Footnote-1533974
+Node: Multidimensional534031
+Node: Multiscanning537126
+Node: Arrays of Arrays538717
+Node: Arrays Summary543485
+Node: Functions545578
+Node: Built-in546616
+Node: Calling Built-in547769
+Node: Boolean Functions549765
+Node: Numeric Functions550319
+Ref: Numeric Functions-Footnote-1554346
+Ref: Numeric Functions-Footnote-2554994
+Ref: Numeric Functions-Footnote-3555042
+Node: String Functions555314
+Ref: String Functions-Footnote-1580156
+Ref: String Functions-Footnote-2580284
+Ref: String Functions-Footnote-3580532
+Node: Gory Details580619
+Ref: table-sub-escapes582410
+Ref: table-sub-proposed583930
+Ref: table-posix-sub585294
+Ref: table-gensub-escapes586836
+Ref: Gory Details-Footnote-1587660
+Node: I/O Functions587814
+Ref: table-system-return-values594268
+Ref: I/O Functions-Footnote-1596349
+Ref: I/O Functions-Footnote-2596497
+Node: Time Functions596617
+Ref: Time Functions-Footnote-1607288
+Ref: Time Functions-Footnote-2607356
+Ref: Time Functions-Footnote-3607514
+Ref: Time Functions-Footnote-4607625
+Ref: Time Functions-Footnote-5607737
+Ref: Time Functions-Footnote-6607964
+Node: Bitwise Functions608230
+Ref: table-bitwise-ops608824
+Ref: Bitwise Functions-Footnote-1614888
+Ref: Bitwise Functions-Footnote-2615061
+Node: Type Functions615252
+Node: I18N Functions618773
+Node: User-defined620424
+Node: Definition Syntax621236
+Ref: Definition Syntax-Footnote-1626930
+Node: Function Example627001
+Ref: Function Example-Footnote-1629923
+Node: Function Calling629945
+Node: Calling A Function630533
+Node: Variable Scope631491
+Node: Pass By Value/Reference634485
+Node: Function Caveats637129
+Ref: Function Caveats-Footnote-1639176
+Node: Return Statement639296
+Node: Dynamic Typing642275
+Node: Indirect Calls643205
+Node: Functions Summary654132
+Node: Library Functions656837
+Ref: Library Functions-Footnote-1660321
+Ref: Library Functions-Footnote-2660464
+Node: Library Names660635
+Ref: Library Names-Footnote-1664302
+Ref: Library Names-Footnote-2664525
+Node: General Functions664611
+Node: Strtonum Function665793
+Node: Assert Function668815
+Node: Round Function672141
+Node: Cliff Random Function673681
+Node: Ordinal Functions674697
+Ref: Ordinal Functions-Footnote-1677760
+Ref: Ordinal Functions-Footnote-2678012
+Node: Join Function678222
+Ref: Join Function-Footnote-1679992
+Node: Getlocaltime Function680192
+Node: Readfile Function683934
+Node: Shell Quoting685911
+Node: Isnumeric Function687339
+Node: Data File Management688727
+Node: Filetrans Function689359
+Node: Rewind Function693455
+Node: File Checking695364
+Ref: File Checking-Footnote-1696698
+Node: Empty Files696899
+Node: Ignoring Assigns698878
+Node: Getopt Function700428
+Ref: Getopt Function-Footnote-1715725
+Node: Passwd Functions715925
+Ref: Passwd Functions-Footnote-1724764
+Node: Group Functions724852
+Ref: Group Functions-Footnote-1732750
+Node: Walking Arrays732957
+Node: Library Functions Summary735965
+Node: Library Exercises737371
+Node: Sample Programs737836
+Node: Running Examples738606
+Node: Clones739334
+Node: Cut Program740558
+Node: Egrep Program750698
+Node: Id Program759699
+Node: Split Program769634
+Ref: Split Program-Footnote-1779527
+Node: Tee Program779700
+Node: Uniq Program782490
+Node: Wc Program790078
+Node: Bytes vs. Characters790465
+Node: Using extensions792013
+Node: wc program792767
+Node: Miscellaneous Programs797632
+Node: Dupword Program798845
+Node: Alarm Program800875
+Node: Translate Program805730
+Ref: Translate Program-Footnote-1810295
+Node: Labels Program810565
+Ref: Labels Program-Footnote-1813916
+Node: Word Sorting814000
+Node: History Sorting818072
+Node: Extract Program820297
+Node: Simple Sed828310
+Node: Igawk Program831384
+Ref: Igawk Program-Footnote-1846013
+Ref: Igawk Program-Footnote-2846215
+Ref: Igawk Program-Footnote-3846337
+Node: Anagram Program846452
+Node: Signature Program849514
+Node: Programs Summary850761
+Node: Programs Exercises851975
+Ref: Programs Exercises-Footnote-1856105
+Node: Advanced Features856191
+Node: Nondecimal Data858588
+Node: Boolean Typed Values860186
+Node: Array Sorting862067
+Node: Controlling Array Traversal862772
+Ref: Controlling Array Traversal-Footnote-1871140
+Node: Array Sorting Functions871258
+Ref: Array Sorting Functions-Footnote-1877169
+Node: Two-way I/O877365
+Ref: Two-way I/O-Footnote-1885091
+Ref: Two-way I/O-Footnote-2885278
+Node: TCP/IP Networking885360
+Node: Profiling888436
+Node: Persistent Memory897742
+Ref: Persistent Memory-Footnote-1906008
+Node: Extension Philosophy906135
+Node: Advanced Features Summary907622
+Node: Internationalization909794
+Node: I18N and L10N911468
+Node: Explaining gettext912155
+Ref: Explaining gettext-Footnote-1918047
+Ref: Explaining gettext-Footnote-2918232
+Node: Programmer i18n918397
+Ref: Programmer i18n-Footnote-1923346
+Node: Translator i18n923395
+Node: String Extraction924189
+Ref: String Extraction-Footnote-1925321
+Node: Printf Ordering925407
+Ref: Printf Ordering-Footnote-1928193
+Node: I18N Portability928257
+Ref: I18N Portability-Footnote-1930713
+Node: I18N Example930776
+Ref: I18N Example-Footnote-1934051
+Ref: I18N Example-Footnote-2934124
+Node: Gawk I18N934233
+Node: I18N Summary934855
+Node: Debugger936196
+Node: Debugging937196
+Node: Debugging Concepts937637
+Node: Debugging Terms939446
+Node: Awk Debugging942021
+Ref: Awk Debugging-Footnote-1942966
+Node: Sample Debugging Session943098
+Node: Debugger Invocation943632
+Node: Finding The Bug945018
+Node: List of Debugger Commands951492
+Node: Breakpoint Control952825
+Node: Debugger Execution Control956519
+Node: Viewing And Changing Data959881
+Node: Execution Stack963422
+Node: Debugger Info965059
+Node: Miscellaneous Debugger Commands969130
+Node: Readline Support974192
+Node: Limitations975088
+Node: Debugging Summary977642
+Node: Namespaces978921
+Node: Global Namespace980032
+Node: Qualified Names981430
+Node: Default Namespace982429
+Node: Changing The Namespace983170
+Node: Naming Rules984784
+Node: Internal Name Management986632
+Node: Namespace Example987674
+Node: Namespace And Features990236
+Node: Namespace Summary991671
+Node: Arbitrary Precision Arithmetic993148
+Node: Computer Arithmetic994635
+Ref: table-numeric-ranges998401
+Ref: table-floating-point-ranges998895
+Ref: Computer Arithmetic-Footnote-1999554
+Node: Math Definitions999611
+Ref: table-ieee-formats1002587
+Node: MPFR features1003155
+Node: MPFR On Parole1003600
+Ref: MPFR On Parole-Footnote-11004429
+Node: MPFR Intro1004584
+Node: FP Math Caution1006238
+Ref: FP Math Caution-Footnote-11007310
+Node: Inexactness of computations1007679
+Node: Inexact representation1008710
+Node: Comparing FP Values1010070
+Node: Errors accumulate1011311
+Node: Strange values1012767
+Ref: Strange values-Footnote-11015355
+Node: Getting Accuracy1015460
+Node: Try To Round1018170
+Node: Setting precision1019069
+Ref: table-predefined-precision-strings1019766
+Node: Setting the rounding mode1021597
+Ref: table-gawk-rounding-modes1021971
+Ref: Setting the rounding mode-Footnote-11025903
+Node: Arbitrary Precision Integers1026082
+Ref: Arbitrary Precision Integers-Footnote-11029257
+Node: Checking for MPFR1029406
+Node: POSIX Floating Point Problems1030880
+Ref: POSIX Floating Point Problems-Footnote-11035533
+Node: Floating point summary1035571
+Node: Dynamic Extensions1037761
+Node: Extension Intro1039314
+Node: Plugin License1040580
+Node: Extension Mechanism Outline1041377
+Ref: figure-load-extension1041816
+Ref: figure-register-new-function1043382
+Ref: figure-call-new-function1044475
+Node: Extension API Description1046538
+Node: Extension API Functions Introduction1048251
+Ref: table-api-std-headers1050087
+Node: General Data Types1054337
+Ref: General Data Types-Footnote-11063043
+Node: Memory Allocation Functions1063342
+Ref: Memory Allocation Functions-Footnote-11067843
+Node: Constructor Functions1067942
+Node: API Ownership of MPFR and GMP Values1071595
+Node: Registration Functions1073128
+Node: Extension Functions1073828
+Node: Exit Callback Functions1079150
+Node: Extension Version String1080400
+Node: Input Parsers1081063
+Node: Output Wrappers1093784
+Node: Two-way processors1098296
+Node: Printing Messages1100561
+Ref: Printing Messages-Footnote-11101732
+Node: Updating ERRNO1101885
+Node: Requesting Values1102624
+Ref: table-value-types-returned1103361
+Node: Accessing Parameters1104470
+Node: Symbol Table Access1105707
+Node: Symbol table by name1106219
+Ref: Symbol table by name-Footnote-11109244
+Node: Symbol table by cookie1109372
+Ref: Symbol table by cookie-Footnote-11113557
+Node: Cached values1113621
+Ref: Cached values-Footnote-11117157
+Node: Array Manipulation1117310
+Ref: Array Manipulation-Footnote-11118401
+Node: Array Data Types1118438
+Ref: Array Data Types-Footnote-11121096
+Node: Array Functions1121188
+Node: Flattening Arrays1125973
+Node: Creating Arrays1132949
+Node: Redirection API1137716
+Node: Extension API Variables1140549
+Node: Extension Versioning1141260
+Ref: gawk-api-version1141689
+Node: Extension GMP/MPFR Versioning1143421
+Node: Extension API Informational Variables1145049
+Node: Extension API Boilerplate1146122
+Node: Changes from API V11150096
+Node: Finding Extensions1151668
+Node: Extension Example1152227
+Node: Internal File Description1153025
+Node: Internal File Ops1157105
+Ref: Internal File Ops-Footnote-11168455
+Node: Using Internal File Ops1168595
+Ref: Using Internal File Ops-Footnote-11170978
+Node: Extension Samples1171252
+Node: Extension Sample File Functions1172781
+Node: Extension Sample Fnmatch1180430
+Node: Extension Sample Fork1181917
+Node: Extension Sample Inplace1183135
+Node: Extension Sample Ord1186761
+Node: Extension Sample Readdir1187597
+Ref: table-readdir-file-types1188486
+Node: Extension Sample Revout1189554
+Node: Extension Sample Rev2way1190143
+Node: Extension Sample Read write array1190883
+Node: Extension Sample Readfile1194069
+Node: Extension Sample Time1195164
+Node: Extension Sample API Tests1196916
+Node: gawkextlib1197408
+Node: Extension summary1200326
+Node: Extension Exercises1204028
+Node: Language History1205270
+Node: V7/SVR3.11206926
+Node: SVR41209078
+Node: POSIX1210512
+Node: BTL1211893
+Node: POSIX/GNU1212622
+Node: Feature History1218539
+Node: Common Extensions1236369
+Node: Ranges and Locales1237652
+Ref: Ranges and Locales-Footnote-11242268
+Ref: Ranges and Locales-Footnote-21242295
+Ref: Ranges and Locales-Footnote-31242530
+Node: Contributors1242753
+Node: History summary1248750
+Node: Installation1250130
+Node: Gawk Distribution1251074
+Node: Getting1251558
+Node: Extracting1252521
+Node: Distribution contents1254159
+Node: Unix Installation1261657
+Node: Quick Installation1262461
+Node: Compiling with MPFR1264881
+Node: Shell Startup Files1265571
+Node: Additional Configuration Options1266660
+Node: Configuration Philosophy1268975
+Node: Compiling from Git1271371
+Node: Building the Documentation1271926
+Node: Non-Unix Installation1273310
+Node: PC Installation1273774
+Node: PC Binary Installation1274619
+Node: PC Compiling1275492
+Node: PC Using1276598
+Node: Cygwin1280094
+Node: MSYS1281318
+Node: OpenVMS Installation1281920
+Node: OpenVMS Compilation1282581
+Ref: OpenVMS Compilation-Footnote-11284004
+Node: OpenVMS Dynamic Extensions1284062
+Node: OpenVMS Installation Details1285674
+Node: OpenVMS Running1287969
+Node: OpenVMS GNV1291970
+Node: Bugs1292713
+Node: Bug definition1293625
+Node: Bug address1297127
+Node: Usenet1300646
+Node: Performance bugs1301835
+Node: Asking for help1304756
+Node: Maintainers1306723
+Node: Other Versions1307730
+Node: Installation summary1316309
+Node: Notes1317649
+Node: Compatibility Mode1318443
+Node: Additions1319225
+Node: Accessing The Source1320150
+Node: Adding Code1321587
+Node: New Ports1328402
+Node: Derived Files1332777
+Ref: Derived Files-Footnote-11338436
+Ref: Derived Files-Footnote-21338471
+Ref: Derived Files-Footnote-31339066
+Node: Future Extensions1339180
+Node: Implementation Limitations1339838
+Node: Extension Design1341048
+Node: Old Extension Problems1342192
+Ref: Old Extension Problems-Footnote-11343710
+Node: Extension New Mechanism Goals1343767
+Ref: Extension New Mechanism Goals-Footnote-11347131
+Node: Extension Other Design Decisions1347320
+Node: Extension Future Growth1349433
+Node: Notes summary1350039
+Node: Basic Concepts1351197
+Node: Basic High Level1351878
+Ref: figure-general-flow1352160
+Ref: figure-process-flow1352846
+Ref: Basic High Level-Footnote-11356148
+Node: Basic Data Typing1356333
+Node: Glossary1359661
+Node: Copying1391548
+Node: GNU Free Documentation License1429091
+Node: Index1454211
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 807f7cea..847b6089 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 November, 2022
+@set UPDATE-MONTH December, 2022
 @set VERSION 5.2
-@set PATCHLEVEL 1
+@set PATCHLEVEL 2
 
 @set GAWKINETTITLE TCP/IP Internetworking with @command{gawk}
 @set GAWKWORKFLOWTITLE Participating in @command{gawk} Development
@@ -16517,6 +16517,13 @@ The process group ID of the current process.
 @cindex process ID of @command{gawk} process
 The process ID of the current process.
 
+@item PROCINFO["pma"]
+@cindex persistent memory @subentry compiled into @command{gawk}
+@cindex PMA memory allocator
+The version of the PMA memory allocator compiled into @command{gawk}.
+This element will not be present if the PMA allocator is not available
+for use. @xref{Persistent Memory}.
+
 @item PROCINFO["ppid"]
 @cindex parent process ID of @command{gawk} process
 The parent process ID of the current process.
@@ -31046,6 +31053,8 @@ code, it will appear that way in the output.
 @node Persistent Memory
 @section Preserving Data Between Runs
 
+@cindex persistent memory
+@cindex PMA memory allocator
 Starting with @value{PVERSION} 5.2, @command{gawk} supports
 @dfn{persistent memory}.  This experimental feature stores the values of
 all of @command{gawk}'s variables, arrays and user-defined functions
@@ -31065,7 +31074,7 @@ memory like so:
 
 @example
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @dots{}
 @end example
@@ -34544,7 +34553,7 @@ is available like so:
 
 @example
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @dots{}
 @end example
@@ -42068,6 +42077,10 @@ Terence Kelly's persistent memory allocator (PMA) was
 added, allowing the use of persistent data on certain systems
 (@pxref{Persistent Memory}).
 
+@item
+@code{PROCINFO["pma"} exists if the PMA allocator is compiled
+in (@pxref{Auto-set}).
+
 @end itemize
 
 @c XXX ADD MORE STUFF HERE
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 161c90db..4bb4a829 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 November, 2022
+@set UPDATE-MONTH December, 2022
 @set VERSION 5.2
-@set PATCHLEVEL 1
+@set PATCHLEVEL 2
 
 @set GAWKINETTITLE TCP/IP Internetworking with @command{gawk}
 @set GAWKWORKFLOWTITLE Participating in @command{gawk} Development
@@ -15704,6 +15704,13 @@ The process group ID of the current process.
 @cindex process ID of @command{gawk} process
 The process ID of the current process.
 
+@item PROCINFO["pma"]
+@cindex persistent memory @subentry compiled into @command{gawk}
+@cindex PMA memory allocator
+The version of the PMA memory allocator compiled into @command{gawk}.
+This element will not be present if the PMA allocator is not available
+for use. @xref{Persistent Memory}.
+
 @item PROCINFO["ppid"]
 @cindex parent process ID of @command{gawk} process
 The parent process ID of the current process.
@@ -29928,6 +29935,8 @@ code, it will appear that way in the output.
 @node Persistent Memory
 @section Preserving Data Between Runs
 
+@cindex persistent memory
+@cindex PMA memory allocator
 Starting with @value{PVERSION} 5.2, @command{gawk} supports
 @dfn{persistent memory}.  This experimental feature stores the values of
 all of @command{gawk}'s variables, arrays and user-defined functions
@@ -29947,7 +29956,7 @@ memory like so:
 
 @example
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @dots{}
 @end example
@@ -33426,7 +33435,7 @@ is available like so:
 
 @example
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.1.0, GNU MP 6.2.1)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @dots{}
 @end example
@@ -40911,6 +40920,10 @@ Terence Kelly's persistent memory allocator (PMA) was
 added, allowing the use of persistent data on certain systems
 (@pxref{Persistent Memory}).
 
+@item
+@code{PROCINFO["pma"} exists if the PMA allocator is compiled
+in (@pxref{Auto-set}).
+
 @end itemize
 
 @c XXX ADD MORE STUFF HERE
diff --git a/main.c b/main.c
index 421311ca..a3e05e1c 100644
--- a/main.c
+++ b/main.c
@@ -155,6 +155,9 @@ static int do_binary = false;               /* hands off my 
data! */
 static int do_version = false;         /* print version info */
 static const char *locale = "";                /* default value to setlocale */
 static const char *locale_dir = LOCALEDIR;     /* default locale dir */
+#ifdef USE_PERSISTENT_MALLOC
+const char *get_pma_version(void);
+#endif
 
 int use_lc_numeric = false;    /* obey locale for decimal point */
 
@@ -1099,6 +1102,11 @@ load_procinfo()
                groupset = NULL;
        }
 #endif
+
+#ifdef USE_PERSISTENT_MALLOC
+       update_PROCINFO_str("pma", get_pma_version());
+#endif /* USE_PERSISTENT_MALLOC */
+
        load_procinfo_argv();
        return PROCINFO_node;
 }
@@ -1377,7 +1385,7 @@ nostalgia()
 /* get_pma_version --- get a usable version string out of PMA */
 
 const char *
-get_pma_version()
+get_pma_version(void)
 {
        static char buf[200];
        const char *open, *close;

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

Summary of changes:
 ChangeLog       |   7 +
 NEWS            |   3 +
 doc/ChangeLog   |   7 +
 doc/gawk.info   | 880 ++++++++++++++++++++++++++++----------------------------
 doc/gawk.texi   |  21 +-
 doc/gawktexi.in |  21 +-
 main.c          |  10 +-
 7 files changed, 506 insertions(+), 443 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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