aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1560
1 files changed, 861 insertions, 699 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 77bdc99f..037df3d0 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -382,6 +382,8 @@ in (a) below. A copy of the license is included in the section entitled
* Arrays Summary:: Summary of arrays.
* Built-in:: Summarizes the built-in functions.
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean
+ values.
* Numeric Functions:: Functions that work with numbers,
including 'int()', 'sin()'
and 'rand()'.
@@ -491,6 +493,7 @@ in (a) below. A copy of the license is included in the section entitled
* Programs Summary:: Summary of programs.
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
* Controlling Array Traversal:: How to use PROCINFO["sorted_in"].
@@ -554,6 +557,7 @@ in (a) below. A copy of the license is included in the section entitled
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.
* Getting Accuracy:: Getting more accuracy takes some work.
* Try To Round:: Add digits and round.
* Setting precision:: How to set the precision.
@@ -2817,8 +2821,7 @@ The following list describes options mandated by the POSIX standard:
'--re-interval'
Allow interval expressions (*note Regexp Operators::) in regexps.
This is now 'gawk''s default behavior. Nevertheless, this option
- remains (both for backward compatibility and for use in combination
- with '--traditional').
+ remains for backward compatibility.
'-s'
'--no-optimize'
@@ -3227,7 +3230,9 @@ change. The variables are:
'AWK_HASH'
If this variable exists with a value of 'gst', 'gawk' switches to
using the hash function from GNU Smalltalk for managing arrays.
- This function may be marginally faster than the standard function.
+ With a value of 'fnv1a', 'gawk' uses the FNV1-A hash function
+ (http://www.isthe.com/chongo/tech/comp/fnv/index.html). These
+ functions may be marginally faster than the standard function.
'AWKREADFUNC'
If this variable exists, 'gawk' switches to reading source files
@@ -3987,9 +3992,8 @@ stand for themselves.
As mentioned, interval expressions were not traditionally available
in 'awk'. In March of 2019, BWK 'awk' (finally) acquired them.
-Nonetheless, because they were not available for so many decades, 'gawk'
-continues to not supply them when in compatibility mode (*note
-Options::).
+Starting with version 5.2, 'gawk''s '--traditional' option no longer
+disables interval expressions in regular expressions.
POSIX says that interval expressions containing repetition counts
greater than 255 produce unspecified results.
@@ -4330,16 +4334,15 @@ No options
'--traditional'
Match traditional Unix 'awk' regexps. The GNU operators are not
- special, and interval expressions are not available. Because BWK
- 'awk' supports them, the POSIX character classes ('[[:alnum:]]',
- etc.) are available. Characters described by octal and
+ special. Because BWK 'awk' supports them, the POSIX character
+ classes ('[[:alnum:]]', etc.) are available. So too, interval
+ expressions are allowed. Characters described by octal and
hexadecimal escape sequences are treated literally, even if they
represent regexp metacharacters.
'--re-interval'
- Allow interval expressions in regexps, if '--traditional' has been
- provided. Otherwise, interval expressions are available by
- default.
+ This option remains for backwards compatibility but no longer has
+ any real effect.

File: gawk.info, Node: Case-sensitivity, Next: Regexp Summary, Prev: GNU Regexp Operators, Up: Regexp
@@ -7024,8 +7027,8 @@ width. Here is a list of the format-control letters:
On systems supporting IEEE 754 floating-point format, values
representing negative infinity are formatted as '-inf' or
'-infinity', and positive infinity as 'inf' or 'infinity'. The
- special "not a number" value formats as '-nan' or 'nan' (*note Math
- Definitions::).
+ special "not a number" value formats as '-nan' or 'nan' (*note
+ Strange values::).
'%F'
Like '%f', but the infinity and "not a number" values are spelled
@@ -12862,6 +12865,7 @@ your convenience.
* Menu:
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean values.
* Numeric Functions:: Functions that work with numbers, including
'int()', 'sin()' and 'rand()'.
* String Functions:: Functions for string manipulation, such as
@@ -12874,7 +12878,7 @@ your convenience.
* I18N Functions:: Functions for string translation.

-File: gawk.info, Node: Calling Built-in, Next: Numeric Functions, Up: Built-in
+File: gawk.info, Node: Calling Built-in, Next: Boolean Functions, Up: Built-in
9.1.1 Calling Built-in Functions
--------------------------------
@@ -12918,9 +12922,24 @@ six, and then 12, and 'atan2()' is called with the two arguments six and
10, then 11, and 'atan2()' is called with the two arguments 11 and 10.

-File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Calling Built-in, Up: Built-in
+File: gawk.info, Node: Boolean Functions, Next: Numeric Functions, Prev: Calling Built-in, Up: Built-in
+
+9.1.2 Generating Boolean Values
+-------------------------------
+
+This function is specific to 'gawk'. It is not available in
+compatibility mode (*note Options::):
+
+'mkbool(EXPRESSION)'
+ Return a Boolean-typed value based on the regular Boolean value of
+ EXPRESSION. Boolean "true" values have numeric value one. Boolean
+ "false" values have numeric zero. This is discussed in more detail
+ in *note Boolean Typed Values::.
+
+
+File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Boolean Functions, Up: Built-in
-9.1.2 Numeric Functions
+9.1.3 Numeric Functions
-----------------------
The following list describes all of the built-in functions that work
@@ -12946,7 +12965,7 @@ brackets ([ ]):
'log(X)'
Return the natural logarithm of X, if X is positive; otherwise,
- return 'NaN' ("not a number") on IEEE 754 systems. Additionally,
+ return NaN ("not a number") on IEEE 754 systems. Additionally,
'gawk' prints a warning message when 'x' is negative.
'rand()'
@@ -13044,7 +13063,7 @@ the same sequence of random numbers over and over again.

File: gawk.info, Node: String Functions, Next: I/O Functions, Prev: Numeric Functions, Up: Built-in
-9.1.3 String-Manipulation Functions
+9.1.4 String-Manipulation Functions
-----------------------------------
The functions in this minor node look at or change the text of one or
@@ -13629,7 +13648,7 @@ number zero.

File: gawk.info, Node: Gory Details, Up: String Functions
-9.1.3.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
+9.1.4.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
.....................................................................
CAUTION: This subsubsection has been reported to cause headaches.
@@ -13779,7 +13798,7 @@ POSIX rules.

File: gawk.info, Node: I/O Functions, Next: Time Functions, Prev: String Functions, Up: Built-in
-9.1.4 Input/Output Functions
+9.1.5 Input/Output Functions
----------------------------
The following functions relate to input/output (I/O). Optional
@@ -13997,7 +14016,7 @@ the way this was done was probably a mistake.

File: gawk.info, Node: Time Functions, Next: Bitwise Functions, Prev: I/O Functions, Up: Built-in
-9.1.5 Time Functions
+9.1.6 Time Functions
--------------------
'awk' programs are commonly used to process log files containing
@@ -14314,7 +14333,7 @@ does not appear in the returned string or appears literally.

File: gawk.info, Node: Bitwise Functions, Next: Type Functions, Prev: Time Functions, Up: Built-in
-9.1.6 Bit-Manipulation Functions
+9.1.7 Bit-Manipulation Functions
--------------------------------
I can explain it for you, but I can't understand it for you.
@@ -14497,7 +14516,7 @@ that range are reduced to fit within the range.

File: gawk.info, Node: Type Functions, Next: I18N Functions, Prev: Bitwise Functions, Up: Built-in
-9.1.7 Getting Type Information
+9.1.8 Getting Type Information
------------------------------
'gawk' provides two functions that let you distinguish the type of a
@@ -14521,6 +14540,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14595,7 +14617,7 @@ different, they are automatically forced to be scalars. Consider:

File: gawk.info, Node: I18N Functions, Prev: Type Functions, Up: Built-in
-9.1.8 String-Translation Functions
+9.1.9 String-Translation Functions
----------------------------------
'gawk' provides facilities for internationalizing 'awk' programs. These
@@ -15274,7 +15296,7 @@ File: gawk.info, Node: Indirect Calls, Next: Functions Summary, Prev: User-de
9.3 Indirect Function Calls
===========================
-This section describes an advanced, 'gawk'-specific extension.
+This minor node describes an advanced, 'gawk'-specific extension.
Often, you may wish to defer the choice of function to call until
runtime. For example, you may have different kinds of records, each of
@@ -21036,6 +21058,7 @@ their own:
* Menu:
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array traversal and
sorting arrays.
* Two-way I/O:: Two-way communications with another process.
@@ -21045,7 +21068,7 @@ their own:
* Advanced Features Summary:: Summary of advanced features.

-File: gawk.info, Node: Nondecimal Data, Next: Array Sorting, Up: Advanced Features
+File: gawk.info, Node: Nondecimal Data, Next: Boolean Typed Values, Up: Advanced Features
12.1 Allowing Nondecimal Input Data
===================================
@@ -21088,9 +21111,53 @@ request it.
This option may disappear in a future version of 'gawk'.

-File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Nondecimal Data, Up: Advanced Features
+File: gawk.info, Node: Boolean Typed Values, Next: Array Sorting, Prev: Nondecimal Data, Up: Advanced Features
+
+12.2 Boolean Typed Values
+=========================
+
+Scalar values in 'awk' are either numbers or strings. 'gawk' also
+supports values of type 'regexp' (*note Strong Regexp Constants::).
+
+ As described in *note Truth Values::, Boolean values in 'awk' don't
+have a separate type: a value counts as "true" if it is nonzero or
+non-null, and as "false" otherwise.
+
+ When interchanging data with languages that do have a real Boolean
+type, using a standard format such as JSON or XML, the lack of a true
+Boolean type in 'awk' is problematic. (See, for example, the 'json'
+extension provided by the 'gawkextlib' project
+(https://sourceforge.net/projects/gawkextlib).)
+
+ It's easy to import Boolean data into 'awk', but then the fact that
+it was originally Boolean is lost. Exporting data is even harder;
+there's no way to indicate that a value is really Boolean.
+
+ To solve this problem, 'gawk' provides a function named 'mkbool()'.
+It takes one argument, which is any 'awk' expression, and it returns a
+value of Boolean type.
+
+ The returned values are normal 'awk' numeric values, with values of
+either one or zero, depending upon the truth value of the original
+expression passed in the call to 'mkbool()'.
-12.2 Controlling Array Traversal and Array Sorting
+ The 'typeof()' function (*note Type Functions::) returns
+'"number|bool"' for these values.
+
+ Thus Boolean-typed values _are_ numbers as far as 'gawk' is
+concerned, except that extension code can treat them as Booleans if
+desired.
+
+ While it would have been possible to add two new built-in variables
+of Boolean type named 'TRUE' and 'FALSE', doing so would undoubtedly
+have broken many existing 'awk' programs. Instead, having a "generator"
+function that creates Boolean values gives flexibility, without breaking
+as much existing code.
+
+
+File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean Typed Values, Up: Advanced Features
+
+12.3 Controlling Array Traversal and Array Sorting
==================================================
'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@ -21109,7 +21176,7 @@ to order the elements during sorting.

File: gawk.info, Node: Controlling Array Traversal, Next: Array Sorting Functions, Up: Array Sorting
-12.2.1 Controlling Array Traversal
+12.3.1 Controlling Array Traversal
----------------------------------
By default, the order in which a 'for (INDX in ARRAY)' loop scans an
@@ -21348,7 +21415,7 @@ character, which cannot be part of an identifier.

File: gawk.info, Node: Array Sorting Functions, Prev: Controlling Array Traversal, Up: Array Sorting
-12.2.2 Sorting Array Values and Indices with 'gawk'
+12.3.2 Sorting Array Values and Indices with 'gawk'
---------------------------------------------------
In most 'awk' implementations, sorting an array requires writing a
@@ -21502,7 +21569,7 @@ POSIX-compatibility mode, and because 'asort()' and 'asorti()' are

File: gawk.info, Node: Two-way I/O, Next: TCP/IP Networking, Prev: Array Sorting, Up: Advanced Features
-12.3 Two-Way Communications with Another Process
+12.4 Two-Way Communications with Another Process
================================================
It is often useful to be able to send data to a separate program for
@@ -21697,7 +21764,7 @@ in Bash.

File: gawk.info, Node: TCP/IP Networking, Next: Profiling, Prev: Two-way I/O, Up: Advanced Features
-12.4 Using 'gawk' for Network Programming
+12.5 Using 'gawk' for Network Programming
=========================================
'EMRED':
@@ -21777,7 +21844,7 @@ well as extensive examples.

File: gawk.info, Node: Profiling, Next: Extension Philosophy, Prev: TCP/IP Networking, Up: Advanced Features
-12.5 Profiling Your 'awk' Programs
+12.6 Profiling Your 'awk' Programs
==================================
You may produce execution traces of your 'awk' programs. This is done
@@ -22039,7 +22106,7 @@ source code, it will appear that way in the output.

File: gawk.info, Node: Extension Philosophy, Next: Advanced Features Summary, Prev: Profiling, Up: Advanced Features
-12.6 Builtin Features versus Extensions
+12.7 Builtin Features versus Extensions
=======================================
As this and subsequent major nodes show, 'gawk' has a large number of
@@ -22075,7 +22142,7 @@ or need.

File: gawk.info, Node: Advanced Features Summary, Prev: Extension Philosophy, Up: Advanced Features
-12.7 Summary
+12.8 Summary
============
* The '--non-decimal-data' option causes 'gawk' to treat octal- and
@@ -24434,18 +24501,10 @@ material here:
another number and infinity produce infinity.
"NaN"
- "Not a number."(1) A special value that results from attempting a
- calculation that has no answer as a real number. In such a case,
- programs can either receive a floating-point exception, or get
- 'NaN' back as the result. The IEEE 754 standard recommends that
- systems return 'NaN'. Some examples:
-
- 'sqrt(-1)'
- This makes sense in the range of complex numbers, but not in
- the range of real numbers, so the result is 'NaN'.
-
- 'log(-8)'
- -8 is out of the domain of 'log()', so the result is 'NaN'.
+ "Not a number." A special value that results from attempting a
+ calculation that has no answer as a real number. *Note Strange
+ values::, for more information about infinity and not-a-number
+ values.
"Normalized"
How the significand (see later in this list) is usually stored.
@@ -24505,11 +24564,6 @@ Table 16.3: Basic IEEE format values
NOTE: The precision numbers include the implied leading one that
gives them one extra bit of significand.
- ---------- Footnotes ----------
-
- (1) Thanks to Michael Brennan for this description, which we have
-paraphrased, and for the examples.
-

File: gawk.info, Node: MPFR features, Next: FP Math Caution, Prev: Math Definitions, Up: Arbitrary Precision Arithmetic
@@ -24602,6 +24656,7 @@ be sure of the number of significant decimal places in the final result.
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.

File: gawk.info, Node: Inexact representation, Next: Comparing FP Values, Up: Inexactness of computations
@@ -24666,7 +24721,7 @@ values with a delta, you should be sure to use 'difference < abs(delta)'
in case someone passes in a negative delta value.

-File: gawk.info, Node: Errors accumulate, Prev: Comparing FP Values, Up: Inexactness of computations
+File: gawk.info, Node: Errors accumulate, Next: Strange values, Prev: Comparing FP Values, Up: Inexactness of computations
16.4.1.3 Errors Accumulate
..........................
@@ -24714,6 +24769,64 @@ representations yield an unexpected result:
-| 4

+File: gawk.info, Node: Strange values, Prev: Errors accumulate, Up: Inexactness of computations
+
+16.4.1.4 Floating Point Values They Didn't Talk About In School
+...............................................................
+
+Both IEEE 754 floating-point hardware, and MPFR, support two kinds of
+values that you probably didn't learn about in school. The first is
+"infinity", a special value, that can be either negative or positive,
+and which is either smaller than any other value (negative infinity), or
+larger than any other value (positive infinity). When such values are
+generated, 'gawk' prints them as either '-inf' or '+inf', respectively.
+It accepts those strings as data input and converts them to the proper
+floating-point values internally.
+
+ Infinity values of the same sign compare as equal to each other.
+Otherwise, operations (addition, subtraction, etc.) involving another
+number and infinity produce mathematically reasonable results.
+
+ The second kind of value is "not a number", or NaN for short.(1)
+This is a special value that results from attempting a calculation that
+has no answer as a real number. In such a case, programs can either
+receive a floating-point exception, or get NaN back as the result. The
+IEEE 754 standard recommends that systems return NaN. Some examples:
+
+'sqrt(-1)'
+ This makes sense in the range of complex numbers, but not in the
+ range of real numbers, so the result is NaN.
+
+'log(-8)'
+ -8 is out of the domain of 'log()', so the result is NaN.
+
+ NaN values are strange. In particular, they cannot be compared with
+other floating point values; any such comparison, except for "is not
+equal to", returns false. NaN values are so much unequal to other
+values that even comparing two identical NaN values with '!=' returns
+true!
+
+ NaN values can also be signed, although it depends upon the
+implementation as to which sign you get for any operation that returns a
+NaN. For example, on some systems, 'sqrt(-1)' returns a negative NaN. On
+others, it returns a positive NaN.
+
+ When such values are generated, 'gawk' prints them as either '-nan'
+or '+nan', respectively. Here too, 'gawk' accepts those strings as data
+input and converts them to the proper floating-point values internally.
+
+ If you want to dive more deeply into this topic, you can find test
+programs in C, 'awk' and Python in the directory
+'awklib/eg/test-programs' in the 'gawk' distribution. These programs
+enable comparison among programming languages as to how they handle NaN
+and infinity values.
+
+ ---------- Footnotes ----------
+
+ (1) Thanks to Michael Brennan for this description, which we have
+paraphrased, and for the examples.
+
+
File: gawk.info, Node: Getting Accuracy, Next: Try To Round, Prev: Inexactness of computations, Up: FP Math Caution
16.4.2 Getting the Accuracy You Need
@@ -25673,7 +25786,8 @@ use them.
' AWK_STRNUM,'
' AWK_ARRAY,'
' AWK_SCALAR, /* opaque access to a variable */'
-' AWK_VALUE_COOKIE /* for updating a previously created value */'
+' AWK_VALUE_COOKIE, /* for updating a previously created value */'
+' AWK_BOOL'
'} awk_valtype_t;'
This 'enum' indicates the type of a value. It is used in the
following 'struct'.
@@ -25686,6 +25800,7 @@ use them.
' awk_array_t a;'
' awk_scalar_t scl;'
' awk_value_cookie_t vc;'
+' awk_bool_t b;'
' } u;'
'} awk_value_t;'
An "'awk' value." The 'val_type' member indicates what kind of
@@ -25701,6 +25816,7 @@ use them.
'#define array_cookie u.a'
'#define scalar_cookie u.scl'
'#define value_cookie u.vc'
+'#define bool_value u.b'
Using these macros makes accessing the fields of the 'awk_value_t'
more readable.
@@ -26011,6 +26127,11 @@ code would use them:
a 'char *' value pointing to data previously obtained from
'gawk_malloc()', 'gawk_calloc()', or 'gawk_realloc()'.
+'static inline awk_value_t *'
+'make_bool(awk_bool_t boolval, awk_value_t *result);'
+ This function creates a boolean value in the 'awk_value_t' variable
+ pointed to by 'result'.
+

File: gawk.info, Node: API Ownership of MPFR and GMP Values, Next: Registration Functions, Prev: Constructor Functions, Up: Extension API Description
@@ -26029,7 +26150,12 @@ example:
dynamically, but the MPFR and GMP libraries treat these objects as
values, the same way that you would pass an 'int' or a 'double' by
value. There is no way to "transfer ownership" of MPFR and GMP objects.
-Thus, code in an extension should look like this:
+
+ The final results of an MPFR or GMP calculation should be passed back
+to 'gawk', by value, as you would a string or a 'double'. 'gawk' will
+take care of freeing the storage.
+
+ Thus, code in an extension should look like this:
mpz_t part1, part2, answer; declare local values
@@ -26042,9 +26168,8 @@ Thus, code in an extension should look like this:
mpz_clear(part1); release intermediate values
mpz_clear(part2);
- mpz_clear(answer);
- return result;
+ return result; value in 'answer' managed by 'gawk'

File: gawk.info, Node: Registration Functions, Next: Printing Messages, Prev: API Ownership of MPFR and GMP Values, Up: Extension API Description
@@ -26737,16 +26862,17 @@ summarized in *note Table 17.2: table-value-types-returned.
Type of Actual Value
--------------------------------------------------------------------------
- String Strnum Number Regex Array Undefined
--------------------------------------------------------------------------------
- String String String String String false false
- Strnum false Strnum Strnum false false false
- Number Number Number Number false false false
-Type Regex false false false Regex false false
-Requested Array false false false false Array false
- Scalar Scalar Scalar Scalar Scalar false false
- Undefined String Strnum Number Regex Array Undefined
- Value false false false false false false
+ String Strnum Number Regex Bool Array Undefined
+----------------------------------------------------------------------------------------
+ String String String String String String false false
+ Strnum false Strnum Strnum false false false false
+ Number Number Number Number false Number false false
+Type Regex false false false Regex false false false
+Requested Bool false false false false Bool false false
+ Array false false false false false Array false
+ Scalar Scalar Scalar Scalar Scalar Scalar false false
+ Undefined String Strnum Number Regex Bool Array Undefined
+ Value false false false false false false false
cookie
Table 17.2: API value types returned
@@ -29027,8 +29153,8 @@ File: gawk.info, Node: Extension Sample Read write array, Next: Extension Samp
17.7.9 Dumping and Restoring an Array
-------------------------------------
-The 'rwarray' extension adds two functions, named 'writea()' and
-'reada()', as follows:
+The 'rwarray' extension adds four functions, named 'writea()',
+'reada()', 'writeall()' and 'readall()', as follows:
'@load "rwarray"'
This is how you load the extension.
@@ -29045,6 +29171,20 @@ The 'rwarray' extension adds two functions, named 'writea()' and
argument. It clears the array first. Here too, the return value
is one on success, or zero upon failure.
+'ret = writeall(file)'
+ This function takes a string argument, which is the name of the
+ file to which to dump the state of all variables. Calling this
+ function is completely equivalent to calling 'writea(file,
+ SYMTAB)'. It returns one on success, or zero upon failure
+
+'ret = readall(file)'
+ This function takes a string argument, which is the name of the
+ file from which to read the contents of various global variables.
+ For each variable in the file, the data is loaded unless the
+ variable already exists. If the variable already exists, the data
+ for that variable in the file is ignored. It returns one on
+ success, or zero upon failure.
+
The array created by 'reada()' is identical to that written by
'writea()' in the sense that the contents are the same. However, due to
implementation issues, the array traversal order of the re-created array
@@ -29060,6 +29200,13 @@ written as native binary data. Thus, arrays containing only string data
can theoretically be dumped on systems with one byte order and restored
on systems with a different one, but this has not been tried.
+ Note that the 'writeall()' and 'readall()' functions provide a
+mechanism for maintaining persistent state across repeated invocations
+of a program. If, for example, a program calculates some statistics
+based on the data in a series of files, it could save state using
+'writeall()' after processing N files, and then reload the state using
+'readall()' when the N+1st file arrives to update the results.
+
Here is an example:
@load "rwarray"
@@ -29067,6 +29214,10 @@ on systems with a different one, but this has not been tried.
ret = writea("arraydump.bin", array)
...
ret = reada("arraydump.bin", array)
+ ...
+ ret = writeall("globalstate.bin")
+ ...
+ ret = readall("globalstate.bin")

File: gawk.info, Node: Extension Sample Readfile, Next: Extension Sample Time, Prev: Extension Sample Read write array, Up: Extension Samples
@@ -33639,8 +33790,8 @@ Localization
Logical Expression
An expression using the operators for logic, AND, OR, and NOT,
- written '&&', '||', and '!' in 'awk'. Often called Boolean
- expressions, after the mathematician who pioneered this kind of
+ written '&&', '||', and '!' in 'awk'. Often called "Boolean
+ expressions", after the mathematician who pioneered this kind of
mathematical logic.
Lvalue
@@ -35178,7 +35329,7 @@ Index
* + (plus sign), += operator <1>: Precedence. (line 94)
* , (comma), in range patterns: Ranges. (line 6)
* - (hyphen), file names beginning with: Options. (line 63)
-* - (hyphen), -- end of options marker: Options. (line 348)
+* - (hyphen), -- end of options marker: Options. (line 347)
* - (hyphen), in bracket expressions: Bracket Expressions. (line 25)
* - (hyphen), -= operator: Assignment Ops. (line 129)
* - (hyphen), -- operator: Increment Ops. (line 48)
@@ -35214,9 +35365,9 @@ Index
* --include option: Options. (line 180)
* --lint option: Command Line. (line 20)
* --lint option <1>: Options. (line 215)
-* --lint-old option: Options. (line 338)
+* --lint-old option: Options. (line 337)
* --load option: Options. (line 203)
-* --no-optimize option: Options. (line 323)
+* --no-optimize option: Options. (line 322)
* --non-decimal-data option: Options. (line 248)
* --non-decimal-data option <1>: Nondecimal Data. (line 6)
* --non-decimal-data option, strtonum() function and: Nondecimal Data.
@@ -35228,7 +35379,7 @@ Index
* --profile option: Options. (line 283)
* --profile option <1>: Profiling. (line 12)
* --re-interval option: Options. (line 316)
-* --sandbox option: Options. (line 328)
+* --sandbox option: Options. (line 327)
* --sandbox option, input redirection with getline: Getline. (line 19)
* --sandbox option, output redirection with print, printf: Redirection.
(line 6)
@@ -35239,7 +35390,7 @@ Index
* --traditional option: Options. (line 85)
* --traditional option, --posix option and: Options. (line 310)
* --use-lc-numeric option: Options. (line 257)
-* --version option: Options. (line 343)
+* --version option: Options. (line 342)
* -b option: Options. (line 72)
* -c option: Options. (line 85)
* -C option: Options. (line 92)
@@ -35247,12 +35398,12 @@ Index
* -D option: Options. (line 111)
* -e option: Options. (line 120)
* -E option: Options. (line 146)
-* -e option <1>: Options. (line 384)
+* -e option <1>: Options. (line 383)
* -f option: Long. (line 12)
* -F option: Options. (line 21)
* -f option <1>: Options. (line 25)
-* -F option, -Ft sets FS to TAB: Options. (line 356)
-* -f option, multiple uses: Options. (line 361)
+* -F option, -Ft sets FS to TAB: Options. (line 355)
+* -f option, multiple uses: Options. (line 360)
* -F option, command-line: Command Line Field Separator.
(line 6)
* -g option: Options. (line 168)
@@ -35261,7 +35412,7 @@ Index
* -I option: Options. (line 197)
* -l option: Options. (line 203)
* -l option <1>: Options. (line 215)
-* -L option: Options. (line 338)
+* -L option: Options. (line 337)
* -M option: Options. (line 242)
* -n option: Options. (line 248)
* -N option: Options. (line 257)
@@ -35270,10 +35421,10 @@ Index
* -p option: Options. (line 283)
* -P option: Options. (line 295)
* -r option: Options. (line 316)
-* -s option: Options. (line 323)
-* -S option: Options. (line 328)
+* -s option: Options. (line 322)
+* -S option: Options. (line 327)
* -v option: Options. (line 36)
-* -V option: Options. (line 343)
+* -V option: Options. (line 342)
* -v option <1>: Assignment Options. (line 12)
* -W option: Options. (line 50)
* . (period), regexp operator: Regexp Operator Details.
@@ -35509,7 +35660,7 @@ Index
* arguments, command-line <1>: Auto-set. (line 15)
* arguments, command-line <2>: ARGC and ARGV. (line 6)
* arguments, processing: Getopt Function. (line 6)
-* ARGV array: Options. (line 328)
+* ARGV array: Options. (line 327)
* ARGV array, indexing into: Other Arguments. (line 21)
* arithmetic operators: Arithmetic Ops. (line 6)
* array manipulation in extensions: Array Manipulation. (line 6)
@@ -35798,6 +35949,7 @@ Index
* body, in loops: While Statement. (line 14)
* Boolean expressions: Boolean Ops. (line 6)
* Boolean expressions, as patterns: Expression Patterns. (line 39)
+* boolean function: Boolean Functions. (line 6)
* Bourne shell, quoting rules for: Quoting. (line 18)
* braces ({}), regexp operator: Regexp Operator Details.
(line 118)
@@ -35880,6 +36032,8 @@ Index
* built-in functions: Functions. (line 6)
* built-in functions, evaluation order: Calling Built-in. (line 30)
* BusyBox Awk: Other Versions. (line 92)
+* BWK awk, interval expressions in: Interval Expressions.
+ (line 27)
* bytes, counting: Wc Program. (line 6)
* C library functions, assert(): Assert Function. (line 6)
* C library functions, getopt(): Getopt Function. (line 15)
@@ -36080,7 +36234,7 @@ Index
* cosine: Numeric Functions. (line 15)
* counting words, lines, characters, and bytes: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 45)
-* csh utility, POSIXLY_CORRECT environment variable: Options. (line 405)
+* csh utility, POSIXLY_CORRECT environment variable: Options. (line 404)
* csh utility, |& operator, comparison with: Two-way I/O. (line 27)
* CSV (comma separated values) data, parsing with FPAT: Splitting By Content.
(line 20)
@@ -36154,7 +36308,7 @@ Index
* 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 85)
+ (line 88)
* dark corner, parameter name restrictions: Definition Syntax.
(line 44)
* dark corner <1>: Glossary. (line 266)
@@ -36462,7 +36616,7 @@ Index
* effective group ID of gawk user: Auto-set. (line 172)
* effective user ID of gawk user: Auto-set. (line 180)
* Eggert, Paul: Interval Expressions.
- (line 36)
+ (line 35)
* egrep utility: Bracket Expressions. (line 34)
* egrep utility <1>: Egrep Program. (line 6)
* egrep.awk program: Egrep Program. (line 76)
@@ -36511,7 +36665,7 @@ Index
* endpwent() user-defined function: Passwd Functions. (line 210)
* English, Steve: Advanced Features. (line 6)
* ENVIRON array: Auto-set. (line 59)
-* environment variables, POSIXLY_CORRECT: Options. (line 390)
+* environment variables, POSIXLY_CORRECT: Options. (line 389)
* environment variables, used by gawk: Environment Variables.
(line 6)
* environment variables, AWKPATH: AWKPATH Variable. (line 6)
@@ -36880,7 +37034,7 @@ Index
* gawk, awk and <1>: This Manual. (line 14)
* gawk, newlines in: Statements/Lines. (line 12)
* gawk, extensions, disabling: Options. (line 295)
-* gawk, version of, printing information about: Options. (line 343)
+* gawk, version of, printing information about: Options. (line 342)
* gawk, ARGIND variable in: Other Arguments. (line 21)
* gawk, PROCINFO array in: Other Arguments. (line 21)
* gawk, escape sequences: Escape Sequences. (line 120)
@@ -37090,7 +37244,7 @@ Index
* Hughes, Phil: Acknowledgments. (line 43)
* HUP signal, for dynamic profiling: Profiling. (line 217)
* hyphen (-), file names beginning with: Options. (line 63)
-* hyphen (-), -- end of options marker: Options. (line 348)
+* hyphen (-), -- end of options marker: Options. (line 347)
* hyphen (-), in bracket expressions: Bracket Expressions. (line 25)
* hyphen (-), -= operator: Assignment Ops. (line 129)
* hyphen (-), -- operator: Increment Ops. (line 48)
@@ -37314,7 +37468,7 @@ Index
* lint checking, empty programs: Command Line. (line 16)
* lint checking, issuing warnings: Options. (line 215)
* lint checking, POSIXLY_CORRECT environment variable: Options.
- (line 390)
+ (line 389)
* lint checking: User-modified. (line 90)
* lint checking, array subscripts: Uninitialized Subscripts.
(line 43)
@@ -37395,6 +37549,7 @@ Index
* metacharacters, in regular expressions: Regexp Operators. (line 6)
* 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)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* module, definition of: Global Namespace. (line 18)
@@ -37659,7 +37814,7 @@ Index
* portability, #! (executable scripts): Executable Scripts. (line 29)
* portability, ARGV variable: Executable Scripts. (line 55)
* portability, backslash continuation and: Statements/Lines. (line 30)
-* portability, POSIXLY_CORRECT environment variable: Options. (line 410)
+* portability, POSIXLY_CORRECT environment variable: Options. (line 409)
* portability: Escape Sequences. (line 103)
* portability, backslash in escape sequences: Escape Sequences.
(line 108)
@@ -37736,7 +37891,7 @@ Index
* POSIX awk, function keyword in: Definition Syntax. (line 99)
* POSIX awk, changes in awk versions: POSIX. (line 6)
* POSIX mode: Options. (line 295)
-* POSIX mode <1>: Options. (line 390)
+* POSIX mode <1>: Options. (line 389)
* POSIX mode <2>: Regexp Operator Details.
(line 47)
* POSIX mode <3>: Input Summary. (line 69)
@@ -37756,7 +37911,7 @@ Index
* POSIX mode <12>: POSIX Floating Point Problems.
(line 83)
* POSIX mode <13>: Feature History. (line 315)
-* POSIXLY_CORRECT environment variable: Options. (line 390)
+* POSIXLY_CORRECT environment variable: Options. (line 389)
* PREC variable: User-modified. (line 126)
* precedence, regexp operators: Regexp Operator Details.
(line 137)
@@ -37895,6 +38050,8 @@ Index
(line 18)
* readable data files, checking: File Checking. (line 6)
* readable.awk program: File Checking. (line 11)
+* readall() extension function: Extension Sample Read write array.
+ (line 30)
* readdir extension: Extension Sample Readdir.
(line 9)
* readfile() extension function: Extension Sample Readfile.
@@ -38040,7 +38197,7 @@ Index
(line 68)
* sample debugging session: Sample Debugging Session.
(line 6)
-* sandbox mode: Options. (line 328)
+* sandbox mode: Options. (line 327)
* save debugger options: Debugger Info. (line 85)
* scalar or array: Type Functions. (line 11)
* scalar values: Basic Data Typing. (line 13)
@@ -38608,6 +38765,8 @@ Index
* words, usage counts, generating: Word Sorting. (line 6)
* writea() extension function: Extension Sample Read write array.
(line 12)
+* writeall() extension function: Extension Sample Read write array.
+ (line 24)
* xgettext utility: String Extraction. (line 13)
* xor: Bitwise Functions. (line 58)
* XOR bitwise operation: Bitwise Functions. (line 6)
@@ -38622,609 +38781,612 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345313
-Node: Foreword449755
-Node: Preface51287
-Ref: Preface-Footnote-154146
-Ref: Preface-Footnote-254255
-Ref: Preface-Footnote-354489
-Node: History54631
-Node: Names56983
-Ref: Names-Footnote-158087
-Node: This Manual58234
-Ref: This Manual-Footnote-164873
-Node: Conventions64973
-Node: Manual History67342
-Ref: Manual History-Footnote-170339
-Ref: Manual History-Footnote-270380
-Node: How To Contribute70454
-Node: Acknowledgments71380
-Node: Getting Started76317
-Node: Running gawk78756
-Node: One-shot79946
-Node: Read Terminal81209
-Node: Long83202
-Node: Executable Scripts84715
-Ref: Executable Scripts-Footnote-187348
-Node: Comments87451
-Node: Quoting89935
-Node: DOS Quoting95461
-Node: Sample Data Files97517
-Node: Very Simple100112
-Node: Two Rules106214
-Node: More Complex108099
-Node: Statements/Lines110431
-Ref: Statements/Lines-Footnote-1114915
-Node: Other Features115180
-Node: When116116
-Ref: When-Footnote-1117870
-Node: Intro Summary117935
-Node: Invoking Gawk118819
-Node: Command Line120333
-Node: Options121131
-Ref: Options-Footnote-1139045
-Ref: Options-Footnote-2139276
-Node: Other Arguments139301
-Node: Naming Standard Input143312
-Node: Environment Variables144522
-Node: AWKPATH Variable145080
-Ref: AWKPATH Variable-Footnote-1148492
-Ref: AWKPATH Variable-Footnote-2148526
-Node: AWKLIBPATH Variable148897
-Ref: AWKLIBPATH Variable-Footnote-1150594
-Node: Other Environment Variables150969
-Node: Exit Status154790
-Node: Include Files155467
-Node: Loading Shared Libraries159157
-Node: Obsolete160585
-Node: Undocumented161277
-Node: Invoking Summary161574
-Node: Regexp164415
-Node: Regexp Usage165869
-Node: Escape Sequences167906
-Node: Regexp Operators174147
-Node: Regexp Operator Details174632
-Ref: Regexp Operator Details-Footnote-1181996
-Node: Interval Expressions182143
-Ref: Interval Expressions-Footnote-1184343
-Node: Bracket Expressions184441
-Ref: table-char-classes186917
-Node: Leftmost Longest190244
-Node: Computed Regexps191547
-Node: GNU Regexp Operators194974
-Node: Case-sensitivity198711
-Ref: Case-sensitivity-Footnote-1201577
-Ref: Case-sensitivity-Footnote-2201812
-Node: Regexp Summary201920
-Node: Reading Files203386
-Node: Records205655
-Node: awk split records206730
-Node: gawk split records211430
-Ref: gawk split records-Footnote-1216504
-Node: Fields216541
-Node: Nonconstant Fields219282
-Ref: Nonconstant Fields-Footnote-1221518
-Node: Changing Fields221722
-Node: Field Separators227753
-Node: Default Field Splitting230451
-Node: Regexp Field Splitting231569
-Node: Single Character Fields235246
-Node: Command Line Field Separator236306
-Node: Full Line Fields239524
-Ref: Full Line Fields-Footnote-1241046
-Ref: Full Line Fields-Footnote-2241092
-Node: Field Splitting Summary241193
-Node: Constant Size243267
-Node: Fixed width data243999
-Node: Skipping intervening247466
-Node: Allowing trailing data248264
-Node: Fields with fixed data249301
-Node: Splitting By Content250819
-Ref: Splitting By Content-Footnote-1254655
-Node: More CSV254818
-Node: FS versus FPAT256433
-Node: Testing field creation257593
-Node: Multiple Line259218
-Node: Getline265495
-Node: Plain Getline267964
-Node: Getline/Variable270537
-Node: Getline/File271688
-Node: Getline/Variable/File273076
-Ref: Getline/Variable/File-Footnote-1274681
-Node: Getline/Pipe274769
-Node: Getline/Variable/Pipe277473
-Node: Getline/Coprocess278608
-Node: Getline/Variable/Coprocess279875
-Node: Getline Notes280617
-Node: Getline Summary283414
-Ref: table-getline-variants283838
-Node: Read Timeout284587
-Ref: Read Timeout-Footnote-1288493
-Node: Retrying Input288551
-Node: Command-line directories289750
-Node: Input Summary290656
-Node: Input Exercises293828
-Node: Printing294262
-Node: Print296096
-Node: Print Examples297553
-Node: Output Separators300333
-Node: OFMT302350
-Node: Printf303706
-Node: Basic Printf304491
-Node: Control Letters306065
-Node: Format Modifiers311229
-Node: Printf Examples317244
-Node: Redirection319730
-Node: Special FD326571
-Ref: Special FD-Footnote-1329739
-Node: Special Files329813
-Node: Other Inherited Files330430
-Node: Special Network331431
-Node: Special Caveats332291
-Node: Close Files And Pipes333240
-Ref: table-close-pipe-return-values340147
-Ref: Close Files And Pipes-Footnote-1340961
-Ref: Close Files And Pipes-Footnote-2341109
-Node: Nonfatal341261
-Node: Output Summary343599
-Node: Output Exercises344821
-Node: Expressions345500
-Node: Values346688
-Node: Constants347366
-Node: Scalar Constants348057
-Ref: Scalar Constants-Footnote-1350567
-Node: Nondecimal-numbers350817
-Node: Regexp Constants353818
-Node: Using Constant Regexps354344
-Node: Standard Regexp Constants354966
-Node: Strong Regexp Constants358154
-Node: Variables361869
-Node: Using Variables362526
-Node: Assignment Options364436
-Node: Conversion366907
-Node: Strings And Numbers367431
-Ref: Strings And Numbers-Footnote-1370494
-Node: Locale influences conversions370603
-Ref: table-locale-affects373361
-Node: All Operators373980
-Node: Arithmetic Ops374609
-Node: Concatenation377325
-Ref: Concatenation-Footnote-1380172
-Node: Assignment Ops380279
-Ref: table-assign-ops385270
-Node: Increment Ops386584
-Node: Truth Values and Conditions390044
-Node: Truth Values391118
-Node: Typing and Comparison392166
-Node: Variable Typing392986
-Ref: Variable Typing-Footnote-1399449
-Ref: Variable Typing-Footnote-2399521
-Node: Comparison Operators399598
-Ref: table-relational-ops400017
-Node: POSIX String Comparison403513
-Ref: POSIX String Comparison-Footnote-1405208
-Ref: POSIX String Comparison-Footnote-2405347
-Node: Boolean Ops405431
-Ref: Boolean Ops-Footnote-1409913
-Node: Conditional Exp410005
-Node: Function Calls411741
-Node: Precedence415618
-Node: Locales419277
-Node: Expressions Summary420909
-Node: Patterns and Actions423482
-Node: Pattern Overview424602
-Node: Regexp Patterns426279
-Node: Expression Patterns426821
-Node: Ranges430602
-Node: BEGIN/END433710
-Node: Using BEGIN/END434471
-Ref: Using BEGIN/END-Footnote-1437225
-Node: I/O And BEGIN/END437331
-Node: BEGINFILE/ENDFILE439644
-Node: Empty442875
-Node: Using Shell Variables443192
-Node: Action Overview445466
-Node: Statements447791
-Node: If Statement449639
-Node: While Statement451134
-Node: Do Statement453162
-Node: For Statement454310
-Node: Switch Statement457565
-Node: Break Statement460006
-Node: Continue Statement462098
-Node: Next Statement463925
-Node: Nextfile Statement466308
-Node: Exit Statement468997
-Node: Built-in Variables471400
-Node: User-modified472533
-Node: Auto-set480300
-Ref: Auto-set-Footnote-1497107
-Ref: Auto-set-Footnote-2497313
-Node: ARGC and ARGV497369
-Node: Pattern Action Summary501582
-Node: Arrays504012
-Node: Array Basics505341
-Node: Array Intro506185
-Ref: figure-array-elements508160
-Ref: Array Intro-Footnote-1510865
-Node: Reference to Elements510993
-Node: Assigning Elements513457
-Node: Array Example513948
-Node: Scanning an Array515707
-Node: Controlling Scanning518729
-Ref: Controlling Scanning-Footnote-1525185
-Node: Numeric Array Subscripts525501
-Node: Uninitialized Subscripts527685
-Node: Delete529304
-Ref: Delete-Footnote-1532056
-Node: Multidimensional532113
-Node: Multiscanning535208
-Node: Arrays of Arrays536799
-Node: Arrays Summary541567
-Node: Functions543660
-Node: Built-in544698
-Node: Calling Built-in545779
-Node: Numeric Functions547775
-Ref: Numeric Functions-Footnote-1551803
-Ref: Numeric Functions-Footnote-2552451
-Ref: Numeric Functions-Footnote-3552499
-Node: String Functions552771
-Ref: String Functions-Footnote-1577613
-Ref: String Functions-Footnote-2577741
-Ref: String Functions-Footnote-3577989
-Node: Gory Details578076
-Ref: table-sub-escapes579867
-Ref: table-sub-proposed581387
-Ref: table-posix-sub582751
-Ref: table-gensub-escapes584293
-Ref: Gory Details-Footnote-1585117
-Node: I/O Functions585271
-Ref: table-system-return-values591725
-Ref: I/O Functions-Footnote-1593806
-Ref: I/O Functions-Footnote-2593954
-Node: Time Functions594074
-Ref: Time Functions-Footnote-1604745
-Ref: Time Functions-Footnote-2604813
-Ref: Time Functions-Footnote-3604971
-Ref: Time Functions-Footnote-4605082
-Ref: Time Functions-Footnote-5605194
-Ref: Time Functions-Footnote-6605421
-Node: Bitwise Functions605687
-Ref: table-bitwise-ops606281
-Ref: Bitwise Functions-Footnote-1612345
-Ref: Bitwise Functions-Footnote-2612518
-Node: Type Functions612709
-Node: I18N Functions616038
-Node: User-defined617689
-Node: Definition Syntax618501
-Ref: Definition Syntax-Footnote-1624195
-Node: Function Example624266
-Ref: Function Example-Footnote-1627188
-Node: Function Calling627210
-Node: Calling A Function627798
-Node: Variable Scope628756
-Node: Pass By Value/Reference631750
-Node: Function Caveats634394
-Ref: Function Caveats-Footnote-1636441
-Node: Return Statement636561
-Node: Dynamic Typing639540
-Node: Indirect Calls640470
-Node: Functions Summary651394
-Node: Library Functions654099
-Ref: Library Functions-Footnote-1657706
-Ref: Library Functions-Footnote-2657849
-Node: Library Names658020
-Ref: Library Names-Footnote-1661687
-Ref: Library Names-Footnote-2661910
-Node: General Functions661996
-Node: Strtonum Function663178
-Node: Assert Function666200
-Node: Round Function669526
-Node: Cliff Random Function671066
-Node: Ordinal Functions672082
-Ref: Ordinal Functions-Footnote-1675145
-Ref: Ordinal Functions-Footnote-2675397
-Node: Join Function675607
-Ref: Join Function-Footnote-1677377
-Node: Getlocaltime Function677577
-Node: Readfile Function681319
-Node: Shell Quoting683296
-Node: Isnumeric Function684724
-Node: Data File Management686112
-Node: Filetrans Function686744
-Node: Rewind Function690840
-Node: File Checking692749
-Ref: File Checking-Footnote-1694083
-Node: Empty Files694284
-Node: Ignoring Assigns696263
-Node: Getopt Function697813
-Ref: Getopt Function-Footnote-1713110
-Node: Passwd Functions713310
-Ref: Passwd Functions-Footnote-1722149
-Node: Group Functions722237
-Ref: Group Functions-Footnote-1730135
-Node: Walking Arrays730342
-Node: Library Functions Summary733350
-Node: Library Exercises734756
-Node: Sample Programs735221
-Node: Running Examples735991
-Node: Clones736719
-Node: Cut Program737943
-Node: Egrep Program748083
-Node: Id Program757084
-Node: Split Program767019
-Ref: Split Program-Footnote-1776912
-Node: Tee Program777085
-Node: Uniq Program779875
-Node: Wc Program787463
-Node: Bytes vs. Characters787850
-Node: Using extensions789398
-Node: wc program790152
-Node: Miscellaneous Programs795017
-Node: Dupword Program796230
-Node: Alarm Program798260
-Node: Translate Program803115
-Ref: Translate Program-Footnote-1807680
-Node: Labels Program807950
-Ref: Labels Program-Footnote-1811301
-Node: Word Sorting811385
-Node: History Sorting815457
-Node: Extract Program817682
-Node: Simple Sed825695
-Node: Igawk Program828769
-Ref: Igawk Program-Footnote-1843100
-Ref: Igawk Program-Footnote-2843302
-Ref: Igawk Program-Footnote-3843424
-Node: Anagram Program843539
-Node: Signature Program846601
-Node: Programs Summary847848
-Node: Programs Exercises849062
-Ref: Programs Exercises-Footnote-1853192
-Node: Advanced Features853278
-Node: Nondecimal Data855345
-Node: Array Sorting856936
-Node: Controlling Array Traversal857636
-Ref: Controlling Array Traversal-Footnote-1866004
-Node: Array Sorting Functions866122
-Ref: Array Sorting Functions-Footnote-1872033
-Node: Two-way I/O872229
-Ref: Two-way I/O-Footnote-1879955
-Ref: Two-way I/O-Footnote-2880142
-Node: TCP/IP Networking880224
-Node: Profiling883300
-Node: Extension Philosophy892609
-Node: Advanced Features Summary894088
-Node: Internationalization896103
-Node: I18N and L10N897777
-Node: Explaining gettext898464
-Ref: Explaining gettext-Footnote-1904356
-Ref: Explaining gettext-Footnote-2904541
-Node: Programmer i18n904706
-Ref: Programmer i18n-Footnote-1909655
-Node: Translator i18n909704
-Node: String Extraction910498
-Ref: String Extraction-Footnote-1911630
-Node: Printf Ordering911716
-Ref: Printf Ordering-Footnote-1914502
-Node: I18N Portability914566
-Ref: I18N Portability-Footnote-1917022
-Node: I18N Example917085
-Ref: I18N Example-Footnote-1920360
-Ref: I18N Example-Footnote-2920433
-Node: Gawk I18N920542
-Node: I18N Summary921164
-Node: Debugger922505
-Node: Debugging923505
-Node: Debugging Concepts923946
-Node: Debugging Terms925755
-Node: Awk Debugging928330
-Ref: Awk Debugging-Footnote-1929275
-Node: Sample Debugging Session929407
-Node: Debugger Invocation929941
-Node: Finding The Bug931327
-Node: List of Debugger Commands937801
-Node: Breakpoint Control939134
-Node: Debugger Execution Control942828
-Node: Viewing And Changing Data946190
-Node: Execution Stack949731
-Node: Debugger Info951368
-Node: Miscellaneous Debugger Commands955439
-Node: Readline Support960501
-Node: Limitations961397
-Node: Debugging Summary963951
-Node: Namespaces965230
-Node: Global Namespace966341
-Node: Qualified Names967739
-Node: Default Namespace968738
-Node: Changing The Namespace969479
-Node: Naming Rules971093
-Node: Internal Name Management972941
-Node: Namespace Example973983
-Node: Namespace And Features976545
-Node: Namespace Summary977980
-Node: Arbitrary Precision Arithmetic979457
-Node: Computer Arithmetic980944
-Ref: table-numeric-ranges984710
-Ref: table-floating-point-ranges985204
-Ref: Computer Arithmetic-Footnote-1985863
-Node: Math Definitions985920
-Ref: table-ieee-formats989236
-Ref: Math Definitions-Footnote-1989840
-Node: MPFR features989945
-Node: FP Math Caution991663
-Ref: FP Math Caution-Footnote-1992735
-Node: Inexactness of computations993104
-Node: Inexact representation994064
-Node: Comparing FP Values995424
-Node: Errors accumulate996665
-Node: Getting Accuracy998098
-Node: Try To Round1000808
-Node: Setting precision1001707
-Ref: table-predefined-precision-strings1002404
-Node: Setting the rounding mode1004235
-Ref: table-gawk-rounding-modes1004609
-Ref: Setting the rounding mode-Footnote-11008541
-Node: Arbitrary Precision Integers1008720
-Ref: Arbitrary Precision Integers-Footnote-11011895
-Node: Checking for MPFR1012044
-Node: POSIX Floating Point Problems1013518
-Ref: POSIX Floating Point Problems-Footnote-11018171
-Node: Floating point summary1018209
-Node: Dynamic Extensions1020399
-Node: Extension Intro1021952
-Node: Plugin License1023218
-Node: Extension Mechanism Outline1024015
-Ref: figure-load-extension1024454
-Ref: figure-register-new-function1026020
-Ref: figure-call-new-function1027113
-Node: Extension API Description1029176
-Node: Extension API Functions Introduction1030889
-Ref: table-api-std-headers1032725
-Node: General Data Types1036975
-Ref: General Data Types-Footnote-11045605
-Node: Memory Allocation Functions1045904
-Ref: Memory Allocation Functions-Footnote-11050405
-Node: Constructor Functions1050504
-Node: API Ownership of MPFR and GMP Values1053970
-Node: Registration Functions1055283
-Node: Extension Functions1055983
-Node: Exit Callback Functions1061305
-Node: Extension Version String1062555
-Node: Input Parsers1063218
-Node: Output Wrappers1075939
-Node: Two-way processors1080451
-Node: Printing Messages1082716
-Ref: Printing Messages-Footnote-11083887
-Node: Updating ERRNO1084040
-Node: Requesting Values1084779
-Ref: table-value-types-returned1085516
-Node: Accessing Parameters1086453
-Node: Symbol Table Access1087690
-Node: Symbol table by name1088202
-Ref: Symbol table by name-Footnote-11091227
-Node: Symbol table by cookie1091355
-Ref: Symbol table by cookie-Footnote-11095540
-Node: Cached values1095604
-Ref: Cached values-Footnote-11099140
-Node: Array Manipulation1099293
-Ref: Array Manipulation-Footnote-11100384
-Node: Array Data Types1100421
-Ref: Array Data Types-Footnote-11103079
-Node: Array Functions1103171
-Node: Flattening Arrays1107669
-Node: Creating Arrays1114645
-Node: Redirection API1119412
-Node: Extension API Variables1122245
-Node: Extension Versioning1122956
-Ref: gawk-api-version1123385
-Node: Extension GMP/MPFR Versioning1125117
-Node: Extension API Informational Variables1126745
-Node: Extension API Boilerplate1127818
-Node: Changes from API V11131792
-Node: Finding Extensions1133364
-Node: Extension Example1133923
-Node: Internal File Description1134721
-Node: Internal File Ops1138801
-Ref: Internal File Ops-Footnote-11150151
-Node: Using Internal File Ops1150291
-Ref: Using Internal File Ops-Footnote-11152674
-Node: Extension Samples1152948
-Node: Extension Sample File Functions1154477
-Node: Extension Sample Fnmatch1162126
-Node: Extension Sample Fork1163613
-Node: Extension Sample Inplace1164831
-Node: Extension Sample Ord1168457
-Node: Extension Sample Readdir1169293
-Ref: table-readdir-file-types1170182
-Node: Extension Sample Revout1171250
-Node: Extension Sample Rev2way1171839
-Node: Extension Sample Read write array1172579
-Node: Extension Sample Readfile1174521
-Node: Extension Sample Time1175616
-Node: Extension Sample API Tests1177368
-Node: gawkextlib1177860
-Node: Extension summary1180778
-Node: Extension Exercises1184480
-Node: Language History1185722
-Node: V7/SVR3.11187378
-Node: SVR41189530
-Node: POSIX1190964
-Node: BTL1192345
-Node: POSIX/GNU1193074
-Node: Feature History1198852
-Node: Common Extensions1216027
-Node: Ranges and Locales1217310
-Ref: Ranges and Locales-Footnote-11221926
-Ref: Ranges and Locales-Footnote-21221953
-Ref: Ranges and Locales-Footnote-31222188
-Node: Contributors1222411
-Node: History summary1228408
-Node: Installation1229788
-Node: Gawk Distribution1230732
-Node: Getting1231216
-Node: Extracting1232179
-Node: Distribution contents1233817
-Node: Unix Installation1240878
-Node: Quick Installation1241682
-Node: Compiling with MPFR1244102
-Node: Shell Startup Files1244792
-Node: Additional Configuration Options1245881
-Node: Configuration Philosophy1248196
-Node: Compiling from Git1250592
-Node: Building the Documentation1251147
-Node: Non-Unix Installation1252531
-Node: PC Installation1252991
-Node: PC Binary Installation1253829
-Node: PC Compiling1254702
-Node: PC Using1255819
-Node: Cygwin1259372
-Node: MSYS1260596
-Node: VMS Installation1261198
-Node: VMS Compilation1261917
-Ref: VMS Compilation-Footnote-11263146
-Node: VMS Dynamic Extensions1263204
-Node: VMS Installation Details1264889
-Node: VMS Running1267151
-Node: VMS GNV1271430
-Node: Bugs1272144
-Node: Bug definition1273056
-Node: Bug address1275992
-Node: Usenet1279380
-Node: Performance bugs1280569
-Node: Asking for help1283490
-Node: Maintainers1285457
-Node: Other Versions1286651
-Node: Installation summary1294815
-Node: Notes1296179
-Node: Compatibility Mode1296973
-Node: Additions1297755
-Node: Accessing The Source1298680
-Node: Adding Code1300117
-Node: New Ports1306309
-Node: Derived Files1310684
-Ref: Derived Files-Footnote-11316344
-Ref: Derived Files-Footnote-21316379
-Ref: Derived Files-Footnote-31316977
-Node: Future Extensions1317091
-Node: Implementation Limitations1317749
-Node: Extension Design1318959
-Node: Old Extension Problems1320103
-Ref: Old Extension Problems-Footnote-11321621
-Node: Extension New Mechanism Goals1321678
-Ref: Extension New Mechanism Goals-Footnote-11325042
-Node: Extension Other Design Decisions1325231
-Node: Extension Future Growth1327344
-Node: Notes summary1327950
-Node: Basic Concepts1329108
-Node: Basic High Level1329789
-Ref: figure-general-flow1330071
-Ref: figure-process-flow1330757
-Ref: Basic High Level-Footnote-11334059
-Node: Basic Data Typing1334244
-Node: Glossary1337572
-Node: Copying1369457
-Node: GNU Free Documentation License1407000
-Node: Index1432120
+Node: Foreword345584
+Node: Foreword450026
+Node: Preface51558
+Ref: Preface-Footnote-154417
+Ref: Preface-Footnote-254526
+Ref: Preface-Footnote-354760
+Node: History54902
+Node: Names57254
+Ref: Names-Footnote-158358
+Node: This Manual58505
+Ref: This Manual-Footnote-165144
+Node: Conventions65244
+Node: Manual History67613
+Ref: Manual History-Footnote-170610
+Ref: Manual History-Footnote-270651
+Node: How To Contribute70725
+Node: Acknowledgments71651
+Node: Getting Started76588
+Node: Running gawk79027
+Node: One-shot80217
+Node: Read Terminal81480
+Node: Long83473
+Node: Executable Scripts84986
+Ref: Executable Scripts-Footnote-187619
+Node: Comments87722
+Node: Quoting90206
+Node: DOS Quoting95732
+Node: Sample Data Files97788
+Node: Very Simple100383
+Node: Two Rules106485
+Node: More Complex108370
+Node: Statements/Lines110702
+Ref: Statements/Lines-Footnote-1115186
+Node: Other Features115451
+Node: When116387
+Ref: When-Footnote-1118141
+Node: Intro Summary118206
+Node: Invoking Gawk119090
+Node: Command Line120604
+Node: Options121402
+Ref: Options-Footnote-1139256
+Ref: Options-Footnote-2139487
+Node: Other Arguments139512
+Node: Naming Standard Input143523
+Node: Environment Variables144733
+Node: AWKPATH Variable145291
+Ref: AWKPATH Variable-Footnote-1148703
+Ref: AWKPATH Variable-Footnote-2148737
+Node: AWKLIBPATH Variable149108
+Ref: AWKLIBPATH Variable-Footnote-1150805
+Node: Other Environment Variables151180
+Node: Exit Status155132
+Node: Include Files155809
+Node: Loading Shared Libraries159499
+Node: Obsolete160927
+Node: Undocumented161619
+Node: Invoking Summary161916
+Node: Regexp164757
+Node: Regexp Usage166211
+Node: Escape Sequences168248
+Node: Regexp Operators174489
+Node: Regexp Operator Details174974
+Ref: Regexp Operator Details-Footnote-1182338
+Node: Interval Expressions182485
+Ref: Interval Expressions-Footnote-1184660
+Node: Bracket Expressions184758
+Ref: table-char-classes187234
+Node: Leftmost Longest190561
+Node: Computed Regexps191864
+Node: GNU Regexp Operators195291
+Node: Case-sensitivity198969
+Ref: Case-sensitivity-Footnote-1201835
+Ref: Case-sensitivity-Footnote-2202070
+Node: Regexp Summary202178
+Node: Reading Files203644
+Node: Records205913
+Node: awk split records206988
+Node: gawk split records211688
+Ref: gawk split records-Footnote-1216762
+Node: Fields216799
+Node: Nonconstant Fields219540
+Ref: Nonconstant Fields-Footnote-1221776
+Node: Changing Fields221980
+Node: Field Separators228011
+Node: Default Field Splitting230709
+Node: Regexp Field Splitting231827
+Node: Single Character Fields235504
+Node: Command Line Field Separator236564
+Node: Full Line Fields239782
+Ref: Full Line Fields-Footnote-1241304
+Ref: Full Line Fields-Footnote-2241350
+Node: Field Splitting Summary241451
+Node: Constant Size243525
+Node: Fixed width data244257
+Node: Skipping intervening247724
+Node: Allowing trailing data248522
+Node: Fields with fixed data249559
+Node: Splitting By Content251077
+Ref: Splitting By Content-Footnote-1254913
+Node: More CSV255076
+Node: FS versus FPAT256691
+Node: Testing field creation257851
+Node: Multiple Line259476
+Node: Getline265753
+Node: Plain Getline268222
+Node: Getline/Variable270795
+Node: Getline/File271946
+Node: Getline/Variable/File273334
+Ref: Getline/Variable/File-Footnote-1274939
+Node: Getline/Pipe275027
+Node: Getline/Variable/Pipe277731
+Node: Getline/Coprocess278866
+Node: Getline/Variable/Coprocess280133
+Node: Getline Notes280875
+Node: Getline Summary283672
+Ref: table-getline-variants284096
+Node: Read Timeout284845
+Ref: Read Timeout-Footnote-1288751
+Node: Retrying Input288809
+Node: Command-line directories290008
+Node: Input Summary290914
+Node: Input Exercises294086
+Node: Printing294520
+Node: Print296354
+Node: Print Examples297811
+Node: Output Separators300591
+Node: OFMT302608
+Node: Printf303964
+Node: Basic Printf304749
+Node: Control Letters306323
+Node: Format Modifiers311485
+Node: Printf Examples317500
+Node: Redirection319986
+Node: Special FD326827
+Ref: Special FD-Footnote-1329995
+Node: Special Files330069
+Node: Other Inherited Files330686
+Node: Special Network331687
+Node: Special Caveats332547
+Node: Close Files And Pipes333496
+Ref: table-close-pipe-return-values340403
+Ref: Close Files And Pipes-Footnote-1341217
+Ref: Close Files And Pipes-Footnote-2341365
+Node: Nonfatal341517
+Node: Output Summary343855
+Node: Output Exercises345077
+Node: Expressions345756
+Node: Values346944
+Node: Constants347622
+Node: Scalar Constants348313
+Ref: Scalar Constants-Footnote-1350823
+Node: Nondecimal-numbers351073
+Node: Regexp Constants354074
+Node: Using Constant Regexps354600
+Node: Standard Regexp Constants355222
+Node: Strong Regexp Constants358410
+Node: Variables362125
+Node: Using Variables362782
+Node: Assignment Options364692
+Node: Conversion367163
+Node: Strings And Numbers367687
+Ref: Strings And Numbers-Footnote-1370750
+Node: Locale influences conversions370859
+Ref: table-locale-affects373617
+Node: All Operators374236
+Node: Arithmetic Ops374865
+Node: Concatenation377581
+Ref: Concatenation-Footnote-1380428
+Node: Assignment Ops380535
+Ref: table-assign-ops385526
+Node: Increment Ops386840
+Node: Truth Values and Conditions390300
+Node: Truth Values391374
+Node: Typing and Comparison392422
+Node: Variable Typing393242
+Ref: Variable Typing-Footnote-1399705
+Ref: Variable Typing-Footnote-2399777
+Node: Comparison Operators399854
+Ref: table-relational-ops400273
+Node: POSIX String Comparison403769
+Ref: POSIX String Comparison-Footnote-1405464
+Ref: POSIX String Comparison-Footnote-2405603
+Node: Boolean Ops405687
+Ref: Boolean Ops-Footnote-1410169
+Node: Conditional Exp410261
+Node: Function Calls411997
+Node: Precedence415874
+Node: Locales419533
+Node: Expressions Summary421165
+Node: Patterns and Actions423738
+Node: Pattern Overview424858
+Node: Regexp Patterns426535
+Node: Expression Patterns427077
+Node: Ranges430858
+Node: BEGIN/END433966
+Node: Using BEGIN/END434727
+Ref: Using BEGIN/END-Footnote-1437481
+Node: I/O And BEGIN/END437587
+Node: BEGINFILE/ENDFILE439900
+Node: Empty443131
+Node: Using Shell Variables443448
+Node: Action Overview445722
+Node: Statements448047
+Node: If Statement449895
+Node: While Statement451390
+Node: Do Statement453418
+Node: For Statement454566
+Node: Switch Statement457821
+Node: Break Statement460262
+Node: Continue Statement462354
+Node: Next Statement464181
+Node: Nextfile Statement466564
+Node: Exit Statement469253
+Node: Built-in Variables471656
+Node: User-modified472789
+Node: Auto-set480556
+Ref: Auto-set-Footnote-1497363
+Ref: Auto-set-Footnote-2497569
+Node: ARGC and ARGV497625
+Node: Pattern Action Summary501838
+Node: Arrays504268
+Node: Array Basics505597
+Node: Array Intro506441
+Ref: figure-array-elements508416
+Ref: Array Intro-Footnote-1511121
+Node: Reference to Elements511249
+Node: Assigning Elements513713
+Node: Array Example514204
+Node: Scanning an Array515963
+Node: Controlling Scanning518985
+Ref: Controlling Scanning-Footnote-1525441
+Node: Numeric Array Subscripts525757
+Node: Uninitialized Subscripts527941
+Node: Delete529560
+Ref: Delete-Footnote-1532312
+Node: Multidimensional532369
+Node: Multiscanning535464
+Node: Arrays of Arrays537055
+Node: Arrays Summary541823
+Node: Functions543916
+Node: Built-in544954
+Node: Calling Built-in546107
+Node: Boolean Functions548103
+Node: Numeric Functions548657
+Ref: Numeric Functions-Footnote-1552684
+Ref: Numeric Functions-Footnote-2553332
+Ref: Numeric Functions-Footnote-3553380
+Node: String Functions553652
+Ref: String Functions-Footnote-1578494
+Ref: String Functions-Footnote-2578622
+Ref: String Functions-Footnote-3578870
+Node: Gory Details578957
+Ref: table-sub-escapes580748
+Ref: table-sub-proposed582268
+Ref: table-posix-sub583632
+Ref: table-gensub-escapes585174
+Ref: Gory Details-Footnote-1585998
+Node: I/O Functions586152
+Ref: table-system-return-values592606
+Ref: I/O Functions-Footnote-1594687
+Ref: I/O Functions-Footnote-2594835
+Node: Time Functions594955
+Ref: Time Functions-Footnote-1605626
+Ref: Time Functions-Footnote-2605694
+Ref: Time Functions-Footnote-3605852
+Ref: Time Functions-Footnote-4605963
+Ref: Time Functions-Footnote-5606075
+Ref: Time Functions-Footnote-6606302
+Node: Bitwise Functions606568
+Ref: table-bitwise-ops607162
+Ref: Bitwise Functions-Footnote-1613226
+Ref: Bitwise Functions-Footnote-2613399
+Node: Type Functions613590
+Node: I18N Functions617010
+Node: User-defined618661
+Node: Definition Syntax619473
+Ref: Definition Syntax-Footnote-1625167
+Node: Function Example625238
+Ref: Function Example-Footnote-1628160
+Node: Function Calling628182
+Node: Calling A Function628770
+Node: Variable Scope629728
+Node: Pass By Value/Reference632722
+Node: Function Caveats635366
+Ref: Function Caveats-Footnote-1637413
+Node: Return Statement637533
+Node: Dynamic Typing640512
+Node: Indirect Calls641442
+Node: Functions Summary652369
+Node: Library Functions655074
+Ref: Library Functions-Footnote-1658681
+Ref: Library Functions-Footnote-2658824
+Node: Library Names658995
+Ref: Library Names-Footnote-1662662
+Ref: Library Names-Footnote-2662885
+Node: General Functions662971
+Node: Strtonum Function664153
+Node: Assert Function667175
+Node: Round Function670501
+Node: Cliff Random Function672041
+Node: Ordinal Functions673057
+Ref: Ordinal Functions-Footnote-1676120
+Ref: Ordinal Functions-Footnote-2676372
+Node: Join Function676582
+Ref: Join Function-Footnote-1678352
+Node: Getlocaltime Function678552
+Node: Readfile Function682294
+Node: Shell Quoting684271
+Node: Isnumeric Function685699
+Node: Data File Management687087
+Node: Filetrans Function687719
+Node: Rewind Function691815
+Node: File Checking693724
+Ref: File Checking-Footnote-1695058
+Node: Empty Files695259
+Node: Ignoring Assigns697238
+Node: Getopt Function698788
+Ref: Getopt Function-Footnote-1714085
+Node: Passwd Functions714285
+Ref: Passwd Functions-Footnote-1723124
+Node: Group Functions723212
+Ref: Group Functions-Footnote-1731110
+Node: Walking Arrays731317
+Node: Library Functions Summary734325
+Node: Library Exercises735731
+Node: Sample Programs736196
+Node: Running Examples736966
+Node: Clones737694
+Node: Cut Program738918
+Node: Egrep Program749058
+Node: Id Program758059
+Node: Split Program767994
+Ref: Split Program-Footnote-1777887
+Node: Tee Program778060
+Node: Uniq Program780850
+Node: Wc Program788438
+Node: Bytes vs. Characters788825
+Node: Using extensions790373
+Node: wc program791127
+Node: Miscellaneous Programs795992
+Node: Dupword Program797205
+Node: Alarm Program799235
+Node: Translate Program804090
+Ref: Translate Program-Footnote-1808655
+Node: Labels Program808925
+Ref: Labels Program-Footnote-1812276
+Node: Word Sorting812360
+Node: History Sorting816432
+Node: Extract Program818657
+Node: Simple Sed826670
+Node: Igawk Program829744
+Ref: Igawk Program-Footnote-1844075
+Ref: Igawk Program-Footnote-2844277
+Ref: Igawk Program-Footnote-3844399
+Node: Anagram Program844514
+Node: Signature Program847576
+Node: Programs Summary848823
+Node: Programs Exercises850037
+Ref: Programs Exercises-Footnote-1854167
+Node: Advanced Features854253
+Node: Nondecimal Data856384
+Node: Boolean Typed Values857982
+Node: Array Sorting859863
+Node: Controlling Array Traversal860568
+Ref: Controlling Array Traversal-Footnote-1868936
+Node: Array Sorting Functions869054
+Ref: Array Sorting Functions-Footnote-1874965
+Node: Two-way I/O875161
+Ref: Two-way I/O-Footnote-1882887
+Ref: Two-way I/O-Footnote-2883074
+Node: TCP/IP Networking883156
+Node: Profiling886232
+Node: Extension Philosophy895541
+Node: Advanced Features Summary897020
+Node: Internationalization899035
+Node: I18N and L10N900709
+Node: Explaining gettext901396
+Ref: Explaining gettext-Footnote-1907288
+Ref: Explaining gettext-Footnote-2907473
+Node: Programmer i18n907638
+Ref: Programmer i18n-Footnote-1912587
+Node: Translator i18n912636
+Node: String Extraction913430
+Ref: String Extraction-Footnote-1914562
+Node: Printf Ordering914648
+Ref: Printf Ordering-Footnote-1917434
+Node: I18N Portability917498
+Ref: I18N Portability-Footnote-1919954
+Node: I18N Example920017
+Ref: I18N Example-Footnote-1923292
+Ref: I18N Example-Footnote-2923365
+Node: Gawk I18N923474
+Node: I18N Summary924096
+Node: Debugger925437
+Node: Debugging926437
+Node: Debugging Concepts926878
+Node: Debugging Terms928687
+Node: Awk Debugging931262
+Ref: Awk Debugging-Footnote-1932207
+Node: Sample Debugging Session932339
+Node: Debugger Invocation932873
+Node: Finding The Bug934259
+Node: List of Debugger Commands940733
+Node: Breakpoint Control942066
+Node: Debugger Execution Control945760
+Node: Viewing And Changing Data949122
+Node: Execution Stack952663
+Node: Debugger Info954300
+Node: Miscellaneous Debugger Commands958371
+Node: Readline Support963433
+Node: Limitations964329
+Node: Debugging Summary966883
+Node: Namespaces968162
+Node: Global Namespace969273
+Node: Qualified Names970671
+Node: Default Namespace971670
+Node: Changing The Namespace972411
+Node: Naming Rules974025
+Node: Internal Name Management975873
+Node: Namespace Example976915
+Node: Namespace And Features979477
+Node: Namespace Summary980912
+Node: Arbitrary Precision Arithmetic982389
+Node: Computer Arithmetic983876
+Ref: table-numeric-ranges987642
+Ref: table-floating-point-ranges988136
+Ref: Computer Arithmetic-Footnote-1988795
+Node: Math Definitions988852
+Ref: table-ieee-formats991828
+Node: MPFR features992396
+Node: FP Math Caution994114
+Ref: FP Math Caution-Footnote-1995186
+Node: Inexactness of computations995555
+Node: Inexact representation996586
+Node: Comparing FP Values997946
+Node: Errors accumulate999187
+Node: Strange values1000643
+Ref: Strange values-Footnote-11003231
+Node: Getting Accuracy1003336
+Node: Try To Round1006046
+Node: Setting precision1006945
+Ref: table-predefined-precision-strings1007642
+Node: Setting the rounding mode1009473
+Ref: table-gawk-rounding-modes1009847
+Ref: Setting the rounding mode-Footnote-11013779
+Node: Arbitrary Precision Integers1013958
+Ref: Arbitrary Precision Integers-Footnote-11017133
+Node: Checking for MPFR1017282
+Node: POSIX Floating Point Problems1018756
+Ref: POSIX Floating Point Problems-Footnote-11023409
+Node: Floating point summary1023447
+Node: Dynamic Extensions1025637
+Node: Extension Intro1027190
+Node: Plugin License1028456
+Node: Extension Mechanism Outline1029253
+Ref: figure-load-extension1029692
+Ref: figure-register-new-function1031258
+Ref: figure-call-new-function1032351
+Node: Extension API Description1034414
+Node: Extension API Functions Introduction1036127
+Ref: table-api-std-headers1037963
+Node: General Data Types1042213
+Ref: General Data Types-Footnote-11050919
+Node: Memory Allocation Functions1051218
+Ref: Memory Allocation Functions-Footnote-11055719
+Node: Constructor Functions1055818
+Node: API Ownership of MPFR and GMP Values1059471
+Node: Registration Functions1061004
+Node: Extension Functions1061704
+Node: Exit Callback Functions1067026
+Node: Extension Version String1068276
+Node: Input Parsers1068939
+Node: Output Wrappers1081660
+Node: Two-way processors1086172
+Node: Printing Messages1088437
+Ref: Printing Messages-Footnote-11089608
+Node: Updating ERRNO1089761
+Node: Requesting Values1090500
+Ref: table-value-types-returned1091237
+Node: Accessing Parameters1092346
+Node: Symbol Table Access1093583
+Node: Symbol table by name1094095
+Ref: Symbol table by name-Footnote-11097120
+Node: Symbol table by cookie1097248
+Ref: Symbol table by cookie-Footnote-11101433
+Node: Cached values1101497
+Ref: Cached values-Footnote-11105033
+Node: Array Manipulation1105186
+Ref: Array Manipulation-Footnote-11106277
+Node: Array Data Types1106314
+Ref: Array Data Types-Footnote-11108972
+Node: Array Functions1109064
+Node: Flattening Arrays1113562
+Node: Creating Arrays1120538
+Node: Redirection API1125305
+Node: Extension API Variables1128138
+Node: Extension Versioning1128849
+Ref: gawk-api-version1129278
+Node: Extension GMP/MPFR Versioning1131010
+Node: Extension API Informational Variables1132638
+Node: Extension API Boilerplate1133711
+Node: Changes from API V11137685
+Node: Finding Extensions1139257
+Node: Extension Example1139816
+Node: Internal File Description1140614
+Node: Internal File Ops1144694
+Ref: Internal File Ops-Footnote-11156044
+Node: Using Internal File Ops1156184
+Ref: Using Internal File Ops-Footnote-11158567
+Node: Extension Samples1158841
+Node: Extension Sample File Functions1160370
+Node: Extension Sample Fnmatch1168019
+Node: Extension Sample Fork1169506
+Node: Extension Sample Inplace1170724
+Node: Extension Sample Ord1174350
+Node: Extension Sample Readdir1175186
+Ref: table-readdir-file-types1176075
+Node: Extension Sample Revout1177143
+Node: Extension Sample Rev2way1177732
+Node: Extension Sample Read write array1178472
+Node: Extension Sample Readfile1181637
+Node: Extension Sample Time1182732
+Node: Extension Sample API Tests1184484
+Node: gawkextlib1184976
+Node: Extension summary1187894
+Node: Extension Exercises1191596
+Node: Language History1192838
+Node: V7/SVR3.11194494
+Node: SVR41196646
+Node: POSIX1198080
+Node: BTL1199461
+Node: POSIX/GNU1200190
+Node: Feature History1205968
+Node: Common Extensions1223143
+Node: Ranges and Locales1224426
+Ref: Ranges and Locales-Footnote-11229042
+Ref: Ranges and Locales-Footnote-21229069
+Ref: Ranges and Locales-Footnote-31229304
+Node: Contributors1229527
+Node: History summary1235524
+Node: Installation1236904
+Node: Gawk Distribution1237848
+Node: Getting1238332
+Node: Extracting1239295
+Node: Distribution contents1240933
+Node: Unix Installation1247994
+Node: Quick Installation1248798
+Node: Compiling with MPFR1251218
+Node: Shell Startup Files1251908
+Node: Additional Configuration Options1252997
+Node: Configuration Philosophy1255312
+Node: Compiling from Git1257708
+Node: Building the Documentation1258263
+Node: Non-Unix Installation1259647
+Node: PC Installation1260107
+Node: PC Binary Installation1260945
+Node: PC Compiling1261818
+Node: PC Using1262935
+Node: Cygwin1266488
+Node: MSYS1267712
+Node: VMS Installation1268314
+Node: VMS Compilation1269033
+Ref: VMS Compilation-Footnote-11270262
+Node: VMS Dynamic Extensions1270320
+Node: VMS Installation Details1272005
+Node: VMS Running1274267
+Node: VMS GNV1278546
+Node: Bugs1279260
+Node: Bug definition1280172
+Node: Bug address1283108
+Node: Usenet1286496
+Node: Performance bugs1287685
+Node: Asking for help1290606
+Node: Maintainers1292573
+Node: Other Versions1293767
+Node: Installation summary1301931
+Node: Notes1303295
+Node: Compatibility Mode1304089
+Node: Additions1304871
+Node: Accessing The Source1305796
+Node: Adding Code1307233
+Node: New Ports1313425
+Node: Derived Files1317800
+Ref: Derived Files-Footnote-11323460
+Ref: Derived Files-Footnote-21323495
+Ref: Derived Files-Footnote-31324093
+Node: Future Extensions1324207
+Node: Implementation Limitations1324865
+Node: Extension Design1326075
+Node: Old Extension Problems1327219
+Ref: Old Extension Problems-Footnote-11328737
+Node: Extension New Mechanism Goals1328794
+Ref: Extension New Mechanism Goals-Footnote-11332158
+Node: Extension Other Design Decisions1332347
+Node: Extension Future Growth1334460
+Node: Notes summary1335066
+Node: Basic Concepts1336224
+Node: Basic High Level1336905
+Ref: figure-general-flow1337187
+Ref: figure-process-flow1337873
+Ref: Basic High Level-Footnote-11341175
+Node: Basic Data Typing1341360
+Node: Glossary1344688
+Node: Copying1376575
+Node: GNU Free Documentation License1414118
+Node: Index1439238

End Tag Table