[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] gawk branch, master, updated. gawk-4.1.0-4873-g1d717fa2
From: |
Arnold Robbins |
Subject: |
[SCM] gawk branch, master, updated. gawk-4.1.0-4873-g1d717fa2 |
Date: |
Wed, 17 Aug 2022 10:14:46 -0400 (EDT) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, master has been updated
via 1d717fa2f10c2cba98c67b95390a992354f6617d (commit)
via e873b8a58e91267ece646a621bd73c59fa0a3814 (commit)
from 4a226d78f2e9c70c6b796ed82c2f0dac34f69379 (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=1d717fa2f10c2cba98c67b95390a992354f6617d
commit 1d717fa2f10c2cba98c67b95390a992354f6617d
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Wed Aug 17 17:14:17 2022 +0300
Update doc/pm-gawk.texi.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 985cb3a5..91e52600 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -3,6 +3,10 @@
* gawktexi.in: Fix up the formatting in the VMS bits.
* wordlist: Updated.
+ Unrelated:
+
+ * pm-gawk.texi: Updated from Terence Kelly.
+
2202-08-16 John E. Malmberg <wb8tyw@qsl.net>
* gawktexi.in (OpenVMS): Start of support for VMS Software, Inc.
diff --git a/doc/pm-gawk.info b/doc/pm-gawk.info
index 58440ec7..5503b317 100644
--- a/doc/pm-gawk.info
+++ b/doc/pm-gawk.info
@@ -65,15 +65,15 @@ File: pm-gawk.info, Node: Introduction, Next: Quick
Start, Prev: Top, Up: To
**************
-GNU AWK ('gawk') 5.2, expected in August 2022, introduces a new
+GNU AWK ('gawk') 5.2, expected in September 2022, introduces a new
_persistent memory_ feature that makes AWK scripting easier and
sometimes improves performance. The new feature, called "pm-'gawk',"
can "remember" script-defined variables and functions across executions
and can pass variables and functions between unrelated scripts without
serializing/parsing text files--all with near-zero fuss. pm-'gawk' does
_not_ require non-volatile memory hardware nor any other exotic
-infrastructure; pm-'gawk' runs on the ordinary conventional computers
-and operating systems that most of us have been using for decades.
+infrastructure; it runs on the ordinary conventional computers and
+operating systems that most of us have been using for decades.
The main 'gawk' documentation(1) covers the basics of the new
@@ -82,16 +82,16 @@ detail, tutorial examples, and a peek under the hood of
pm-'gawk'. If
you're familiar with 'gawk' and Unix-like environments, dive straight
in:
- * *note Quick Start:: hits the ground running with a few keystrokes
+ * *note Quick Start:: hits the ground running with a few keystrokes.
* *note Examples:: shows how pm-'gawk' streamlines typical AWK
- scripting
+ scripting.
* *note Performance:: covers asymptotic efficiency, OS tuning, and
- more
- * *note Data Integrity:: explains how to protect data from mishaps
- * *note Acknowledgments:: thanks those who made pm-'gawk' happen
- * *note Installation:: shows where obtain pm-'gawk'
- * *note Debugging:: explains how to handle suspected bugs
- * *note History:: traces pm-'gawk''s persistence technology
+ more.
+ * *note Data Integrity:: explains how to protect data from mishaps.
+ * *note Acknowledgments:: thanks those who made pm-'gawk' happen.
+ * *note Installation:: shows where obtain pm-'gawk'.
+ * *note Debugging:: explains how to handle suspected bugs.
+ * *note History:: traces pm-'gawk''s persistence technology.
You can find the latest version of this manual, and also the "director's
@@ -103,8 +103,9 @@ pm-'gawk':
Two publications describe the persistent memory allocator and early
experiences with a pm-'gawk' prototype based on a fork of the official
'gawk' sources:
-<https://queue.acm.org/detail.cfm?id=3534855>
-<http://nvmw.ucsd.edu/nvmw2022-program/nvmw2022-data/nvmw2022-paper35-final_version_your_extended_abstract.pdf>
+ * <https://queue.acm.org/detail.cfm?id=3534855>
+ *
+
<http://nvmw.ucsd.edu/nvmw2022-program/nvmw2022-data/nvmw2022-paper35-final_version_your_extended_abstract.pdf>
Feel free to send me questions, suggestions, and experiences:
@@ -115,8 +116,8 @@ Feel free to send me questions, suggestions, and
experiences:
---------- Footnotes ----------
- (1) <https://www.gnu.org/software/gawk/manual/> and 'man gawk'
-and 'info gawk'
+ (1) See <https://www.gnu.org/software/gawk/manual/> and 'man
+gawk' and 'info gawk'.
File: pm-gawk.info, Node: Quick Start, Next: Examples, Prev: Introduction,
Up: Top
@@ -166,8 +167,8 @@ The first 'gawk' invocation sees the special envar
prepended on the
command line, so it activates pm-'gawk'. The second 'gawk' invocation,
however, does _not_ see the envar and therefore does not access the
script variable stored in the heap file. The third 'gawk' invocation
-sees the special envar and therefore uses the script variable from the
-heap file.
+does see the special envar and therefore uses the script variable from
+the heap file.
While sometimes less error prone than ambient envars, per-command
envar passing as shown above is verbose and shouty. A shell alias saves
@@ -205,13 +206,13 @@ happily ever after"):
$ gawk 'BEGIN{print ts["necktie"], ts["knife"]}' # query
2 27
The 'truncate' command above creates a heap file large enough to store
-all of the data it must eventually contain, with plenty of room to spare
-(as we'll see in *note Sparse Heap Files::, this isn't wasteful). The
-'export' command ensures that subsequent 'gawk' invocations activate
-pm-'gawk'. The first pm-'gawk' command stores 'Tom Sawyer''s word
-frequencies in associative array 'ts[]'. Because this array is
-persistent, subsequent pm-'gawk' commands can access it without having
-to parse the input file again.
+all of the data it must eventually contain, with plenty of room to
+spare. (As we'll see in *note Sparse Heap Files::, this isn't
+wasteful.) The 'export' command ensures that subsequent 'gawk'
+invocations activate pm-'gawk'. The first pm-'gawk' command stores 'Tom
+Sawyer''s word frequencies in associative array 'ts[]'. Because this
+array is persistent, subsequent pm-'gawk' commands can access it without
+having to parse the input file again.
Expanding our analysis to encompass a second book is easy. Let's
populate a new associative array 'hf[]' with the word frequencies in
@@ -270,7 +271,7 @@ pm-'gawk' requires changing the above script to ensure that
'min' and
'max' are initialized exactly once, when the heap file is first used,
and _not_ every time the script runs. Furthermore, whereas
script-defined variables such as 'min' retain their values across
-pm-'gawk' executions, built-in AWK variables such as 'NR' are re-set to
+pm-'gawk' executions, built-in AWK variables such as 'NR' are reset to
zero every time pm-'gawk' runs, so we can't use them in the same way.
Here's a modified script for pm-'gawk':
$ cat summary_persistent.awk
@@ -370,7 +371,7 @@ This chapter explains several performance advantages that
result from
the implementation of persistent memory in pm-'gawk', shows how tuning
the underlying operating system sometimes improves performance, and
presents experimental performance measurements. To make the discussion
-concrete, we use examples from a "GNU/Linux" system--GNU utilities atop
+concrete, we use examples from a GNU/Linux system--GNU utilities atop
the Linux OS--but the principles apply to other modern operating
systems.
@@ -632,14 +633,14 @@ cache. Read about 'sync' and '/proc/sys/vm/drop_caches'
at
(1) Remarkably, this guideline is widely ignored in surprising ways.
Certain well-known textbook algorithms continue to grind away
fruitlessly long after having computed all of their output.
-<https://queue.acm.org/detail.cfm?id=3424304>
+See <https://queue.acm.org/detail.cfm?id=3424304>.
(2) In recent years the term "persistent memory" has sometimes been
used to denote novel byte-addressable non-volatile memory hardware--an
unfortunate practice that contradicts sensible long-standing convention
and causes needless confusion. NVM provides durability. Persistent
-memory is a software abstraction that doesn't require NVM.
-<https://queue.acm.org/detail.cfm?id=3358957>
+memory is a software abstraction that doesn't require NVM. See
+<https://queue.acm.org/detail.cfm?id=3358957>.
File: pm-gawk.info, Node: Experiments, Next: Results, Prev: Persistence
versus Durability, Up: Performance
@@ -650,12 +651,11 @@ File: pm-gawk.info, Node: Experiments, Next: Results,
Prev: Persistence versu
The C-shell ('csh') script listed below illustrates concepts and
implements tips presented in this chapter. It produced the results
discussed in *note Results:: in roughly 20 minutes on an aging laptop.
-You should be able to cut and paste the code listing below into a file
-and get it running without excessive fuss; write to me if you have
-difficulty.
+You can cut and paste the code listing below into a file, or download it
+from <http://web.eecs.umich.edu/~tpkelly/pma/>.
The script measures the performance of four different ways to support
-word frequency queries over a text corpus: The naive approach of reading
+word frequency queries over a text corpus: The naïve approach of reading
the corpus into an associative array for every query; manually dumping a
text representation of the word-frequency table and manually loading it
prior to a query; using 'gawk''s 'rwarray' extension to dump and load an
@@ -687,7 +687,7 @@ input, reporting separately the time to build and to query
the
associative array containing word frequencies.
-#!/bin/csh -f
# 1
+#!/bin/csh -f
# Set PMG envar to path of pm-gawk executable and AWKLIBPATH
# 2
# to find rwarray.so
# 3
# Requires "sudo" to work; consider this for /etc/sudoers file:
# 4
@@ -924,7 +924,7 @@ realistic failures. For realistic power-failure testing,
see
If reflink copying is not available, '--sparse=always' should be used.
(3) See
-<https://www.usenix.org/system/files/login/articles/login_winter19_08_kelly.pdf>
+<https://www.usenix.org/system/files/login/articles/login_winter19_08_kelly.pdf>.
(4) On some OSes 'sync' provides very weak guarantees, but on Linux
'sync' returns only after all file system data are flushed down to
@@ -951,8 +951,8 @@ drafts of this user manual and provided useful feedback.
Bentley
suggested the min/max/mean example in *note Examples::, and also the
exercise of making Kernighan & Pike's "Markov" script persistent. Volos
provided and tested the advice on tuning OS parameters in *note Virtual
-Memory and Big Data::. Stan Park answered several questions about
-virtual memory, file systems, and utilities.
+Memory and Big Data::. Stan Park provided insights about virtual
+memory, file systems, and utilities.
File: pm-gawk.info, Node: Installation, Next: Debugging, Prev:
Acknowledgments, Up: Top
@@ -961,15 +961,15 @@ Appendix A Installation
***********************
'gawk' 5.2 featuring persistent memory is expected to be released in
-August 2022; look for it at <http://ftp.gnu.org/gnu/gawk/>. If 5.2 is
-not released yet, the master git branch is available at
+September 2022; look for it at <http://ftp.gnu.org/gnu/gawk/>. If 5.2
+is not released yet, the master git branch is available at
<http://git.savannah.gnu.org/cgit/gawk.git/snapshot/gawk-master.tar.gz>.
-Unpack the tarball, run './configure', 'make', and 'make check', then
-try some of the examples presented earlier. In the normal course of
-events, 5.2 and later 'gawk' releases featuring pm-'gawk' will appear in
-the software package management systems of major GNU/Linux distros.
-Eventually pm-'gawk' will be available in the default 'gawk' on such
-systems.
+Unpack the tarball, run './bootstrap.sh', './configure', 'make', and
+'make check', then try some of the examples presented earlier. In the
+normal course of events, 5.2 and later 'gawk' releases featuring
+pm-'gawk' will appear in the software package management systems of
+major GNU/Linux distros. Eventually pm-'gawk' will be available in the
+default 'gawk' on such systems.
File: pm-gawk.info, Node: Debugging, Next: History, Prev: Installation,
Up: Top
@@ -986,7 +986,7 @@ you're using the heap file that you intend; using the wrong
heap file is
a common mistake. Other fertile sources of bugs for newcomers are the
fact that a 'BEGIN' block is executed every time pm-'gawk' runs, which
isn't always what you really want, and the fact that built-in AWK
-variables such as 'NR' are always re-set to zero every time the
+variables such as 'NR' are always reset to zero every time the
interpreter runs. See the discussion of initialization surrounding the
min/max/mean script in *note Examples::.
@@ -1111,28 +1111,28 @@ anticipated. I'm curious to see what new purposes you
find for it.
Tag Table:
Node: Top806
Node: Introduction2008
-Ref: Introduction-Footnote-14325
-Node: Quick Start4416
-Node: Examples7203
-Node: Performance16098
-Node: Constant-Time Array Access16804
-Node: Virtual Memory and Big Data20094
-Ref: Virtual Memory and Big Data-Footnote-123645
-Node: Sparse Heap Files23781
-Node: Persistence versus Durability26791
-Ref: Persistence versus Durability-Footnote-130188
-Ref: Persistence versus Durability-Footnote-230429
-Node: Experiments30818
-Node: Results42633
-Node: Data Integrity46205
-Ref: Data Integrity-Footnote-149011
-Ref: Data Integrity-Footnote-249104
-Ref: Data Integrity-Footnote-349248
-Ref: Data Integrity-Footnote-449341
-Node: Acknowledgments49696
-Node: Installation50863
-Node: Debugging51635
-Node: History53305
+Ref: Introduction-Footnote-14345
+Node: Quick Start4441
+Node: Examples7232
+Node: Performance16128
+Node: Constant-Time Array Access16832
+Node: Virtual Memory and Big Data20122
+Ref: Virtual Memory and Big Data-Footnote-123673
+Node: Sparse Heap Files23809
+Node: Persistence versus Durability26819
+Ref: Persistence versus Durability-Footnote-130216
+Ref: Persistence versus Durability-Footnote-230462
+Node: Experiments30856
+Node: Results42567
+Node: Data Integrity46139
+Ref: Data Integrity-Footnote-148945
+Ref: Data Integrity-Footnote-249038
+Ref: Data Integrity-Footnote-349182
+Ref: Data Integrity-Footnote-449276
+Node: Acknowledgments49631
+Node: Installation50789
+Node: Debugging51583
+Node: History53252
End Tag Table
diff --git a/doc/pm-gawk.texi b/doc/pm-gawk.texi
index b432f227..3f68099a 100644
--- a/doc/pm-gawk.texi
+++ b/doc/pm-gawk.texi
@@ -65,7 +65,7 @@ A copy of the license is available at @*
@titlepage
@title @value{TYTL}
@c UPDATE date below
-@subtitle 15 August 2022
+@subtitle 16 August 2022
@subtitle @gwk{} version 5.2
@subtitle @pmg{} version 2022.08Aug.03.1659520468 (Avon 7)
@author Terence Kelly
@@ -118,39 +118,39 @@ persistent-memory @gwk{}.
@sp 1
@c UPDATE below after official release
-GNU AWK (@gwk{}) 5.2, expected in August 2022, introduces a new
+GNU AWK (@gwk{}) 5.2, expected in September 2022, introduces a new
@emph{persistent memory} feature that makes AWK scripting easier and
sometimes improves performance. The new feature, called ``@pmg{},''
can ``remember'' script-defined variables and functions across
executions and can pass variables and functions between unrelated
scripts without serializing/parsing text files---all with near-zero
fuss. @pmg{} does @emph{not} require non-volatile memory hardware nor
-any other exotic infrastructure; @pmg{} runs on the ordinary
-conventional computers and operating systems that most of us have been
-using for decades.
+any other exotic infrastructure; it runs on the ordinary conventional
+computers and operating systems that most of us have been using for
+decades.
@sp 1
@c TODO: ADR: hyperlinks to info page below
@noindent
-The main @gwk{}
-documentation@footnote{@url{https://www.gnu.org/software/gawk/manual/}
-@w{ } and @w{ } @code{man gawk} @w{ } and @w{ } @code{info gawk}}
-covers the basics of the new persistence feature. This supplementary
-manual provides additional detail, tutorial examples, and a peek under
-the hood of @pmg{}. If you're familiar with @gwk{} and Unix-like
-environments, dive straight in: @*
+The main @gwk{} documentation@footnote{See
+@url{https://www.gnu.org/software/gawk/manual/} @w{ } and @w{ }
+@code{man gawk} @w{ } and @w{ } @code{info gawk}.} covers the basics
+of the new persistence feature. This supplementary manual provides
+additional detail, tutorial examples, and a peek under the hood of
+@pmg{}. If you're familiar with @gwk{} and Unix-like environments,
+dive straight in: @*
@itemize @c @w{}
-@item @ref{Quick Start} hits the ground running with a few keystrokes
-@item @ref{Examples} shows how @pmg{} streamlines typical AWK scripting
-@item @ref{Performance} covers asymptotic efficiency, OS tuning, and more
-@item @ref{Data Integrity} explains how to protect data from mishaps
-@item @ref{Acknowledgments} thanks those who made @pmg{} happen
-@item @ref{Installation} shows where obtain @pmg{}
-@item @ref{Debugging} explains how to handle suspected bugs
-@item @ref{History} traces @pmg{}'s persistence technology
+@item @ref{Quick Start} hits the ground running with a few keystrokes.
+@item @ref{Examples} shows how @pmg{} streamlines typical AWK scripting.
+@item @ref{Performance} covers asymptotic efficiency, OS tuning, and more.
+@item @ref{Data Integrity} explains how to protect data from mishaps.
+@item @ref{Acknowledgments} thanks those who made @pmg{} happen.
+@item @ref{Installation} shows where obtain @pmg{}.
+@item @ref{Debugging} explains how to handle suspected bugs.
+@item @ref{History} traces @pmg{}'s persistence technology.
@end itemize
@c UPDATE: revise above when content finalized
@@ -168,10 +168,11 @@ allocator used in @pmg{}: @*
@noindent
Two publications describe the persistent memory allocator and early
experiences with a @pmg{} prototype based on a fork of the official
-@gwk{} sources: @*
-@url{https://queue.acm.org/detail.cfm?id=3534855} @*
-@url{http://nvmw.ucsd.edu/nvmw2022-program/nvmw2022-data/nvmw2022-paper35-final_version_your_extended_abstract.pdf}
-
+@gwk{} sources:
+@itemize
+@item @url{https://queue.acm.org/detail.cfm?id=3534855}
+@item
@url{http://nvmw.ucsd.edu/nvmw2022-program/nvmw2022-data/nvmw2022-paper35-final_version_your_extended_abstract.pdf}
+@end itemize
@sp 1
@@ -241,7 +242,7 @@ The first @gwk{} invocation sees the special envar
prepended on the
command line, so it activates @pmg{}. The second @gwk{} invocation,
however, does @emph{not} see the envar and therefore does not access
the script variable stored in the heap file. The third @gwk{}
-invocation sees the special envar and therefore uses the script
+invocation does see the special envar and therefore uses the script
variable from the heap file.
While sometimes less error prone than ambient envars, per-command
@@ -293,8 +294,8 @@ happily ever after''):
@noindent
The @command{truncate} command above creates a heap file large enough
to store all of the data it must eventually contain, with plenty of
-room to spare (as we'll see in @ref{Sparse Heap Files}, this isn't
-wasteful). The @command{export} command ensures that subsequent
+room to spare. (As we'll see in @ref{Sparse Heap Files}, this isn't
+wasteful.) The @command{export} command ensures that subsequent
@gwk{} invocations activate @pmg{}. The first @pmg{} command stores
@cite{Tom Sawyer}'s word frequencies in associative array @code{ts[]}.
Because this array is persistent, subsequent @pmg{} commands can
@@ -381,7 +382,7 @@ and @code{max} are initialized exactly once, when the heap
file is
first used, and @emph{not} every time the script runs. Furthermore,
whereas script-defined variables such as @code{min} retain their
values across @pmg{} executions, built-in AWK variables such as
-@code{NR} are re-set to zero every time @pmg{} runs, so we can't use
+@code{NR} are reset to zero every time @pmg{} runs, so we can't use
them in the same way. Here's a modified script for @pmg{}:
@verbatim
$ cat summary_persistent.awk
@@ -427,6 +428,19 @@ bundle both script-defined data and also user-defined
@emph{functions}
in a persistent heap that may be passed freely between unrelated AWK
scripts.
+@c ADR doesn't like return in count() below
+@c TK: it was put there for a reason:
+@c $ truncate -s 10M funcs.pma
+@c $ export GAWK_PERSIST_FILE=funcs.pma
+@c $ gawk 'function count(A,t) {for(i in A)t++; return t}'
+@c $ gawk 'BEGIN { a["x"] = 4; a["y"] = 5; a["z"] = 6 }'
+@c $ gawk 'BEGIN { print count(a) }'
+@c 3
+@c $ gawk 'BEGIN { delete a }'
+@c $ gawk 'BEGIN { print count(a) }'
+@c [!!blank line, not zero!!]
+@c $
+
The following shell transcript repeatedly invokes @pmg{} to create and
then employ a user-defined function. These separate invocations
involve several different AWK scripts that communicate via the heap
@@ -506,7 +520,7 @@ This chapter explains several performance advantages that
result from
the implementation of persistent memory in @pmg{}, shows how tuning
the underlying operating system sometimes improves performance, and
presents experimental performance measurements. To make the
-discussion concrete, we use examples from a ``GNU/Linux'' system---GNU
+discussion concrete, we use examples from a GNU/Linux system---GNU
utilities atop the Linux OS---but the principles apply to other modern
operating systems.
@@ -621,6 +635,28 @@ tables beneath AWK's signature associative arrays
inherently require
random memory accesses, so large associative arrays can be
problematic.
+@c ADR comments regarding below, "SSDs alleviate much of the
+@c performance problem of hard disks vs. RAM disks."
+@c
+@c TK replies: When a significant amount of paging to *any*
+@c conventional block storage device starts, speed plummets by orders
+@c of magnitude. I'd wager that the difference between paging vs. not
+@c is larger than the difference between paging to SSD vs. HDD. So
+@c while SSDs are faster than HDDs, when paging begins they won't
+@c usually make the difference between acceptable vs. unacceptable
+@c performance.
+@c
+@c If you decide to try to find out for yourself, note that on many
+@c Linux systems the notorious OOM killer terminates a process well
+@c before its anonymous-memory footprint reaches the capacity of DRAM,
+@c so it's difficult even to provoke the phenomenon of interest. And
+@c paging anonymous memory to swap can be managed differently than
+@c paging involving a file-backed memory mapping.
+@c
+@c Bottom line: For the large majority of purposes, gawk users
+@c would be wise to avoid paging entirely, regardless of whether
+@c the pm-gawk feature is used.
+
Persistence changes the rules in our favor: The OS pages data to
@pmg{}'s @emph{heap file} instead of the swap area. This won't help
performance much if the heap file resides in a conventional
@@ -751,7 +787,7 @@ surprising ways. Certain well-known textbook algorithms
continue to
grind away fruitlessly long after having computed all of their
output. @*
@c
-@url{https://queue.acm.org/detail.cfm?id=3424304}}
+See @url{https://queue.acm.org/detail.cfm?id=3424304}.}
@c
To apply this maxim to @pmg{} we must distinguish two concepts that
are frequently conflated: persistence and durability.@footnote{In
@@ -760,8 +796,8 @@ denote novel byte-addressable non-volatile memory
hardware---an
unfortunate practice that contradicts sensible long-standing
convention and causes needless confusion. NVM provides durability.
Persistent memory is a software abstraction that doesn't require NVM.
-@url{https://queue.acm.org/detail.cfm?id=3358957}} (A third logically
-distinct concept is the subject of @ref{Data Integrity}.)
+See @url{https://queue.acm.org/detail.cfm?id=3358957}.} (A third
+logically distinct concept is the subject of @ref{Data Integrity}.)
@dfn{Persistent} data outlive the processes that access them, but
don't necessarily last forever. For example, as explained in
@@ -825,20 +861,21 @@ from cache. Read about @command{sync} and
@node Experiments
@section Experiments
-The C-shell (@command{csh}) script listed below illustrates concepts and
-implements tips presented in this chapter. It produced the results
-discussed in @ref{Results} in roughly 20 minutes on an aging laptop.
-You should be able to cut and paste the code listing below into a file
-and get it running without excessive fuss; write to me if you have
-difficulty.
+The C-shell (@command{csh}) script listed below illustrates concepts
+and implements tips presented in this chapter. It produced the
+results discussed in @ref{Results} in roughly 20 minutes on an aging
+laptop. You can cut and paste the code listing below into a file, or
+download it from @url{http://web.eecs.umich.edu/~tpkelly/pma/}.
+
+@c TODO: post script to Web site when finalized
The script measures the performance of four different ways to support
-word frequency queries over a text corpus: The naive approach of
-reading the corpus into an associative array for every query; manually
-dumping a text representation of the word-frequency table and manually
-loading it prior to a query; using @gwk{}'s @code{rwarray} extension
-to dump and load an associative array; and using @pmg{} to maintain a
-persistent associative array.
+word frequency queries over a text corpus: The na@"{@dotless{i}}ve
+approach of reading the corpus into an associative array for every
+query; manually dumping a text representation of the word-frequency
+table and manually loading it prior to a query; using @gwk{}'s
+@code{rwarray} extension to dump and load an associative array; and
+using @pmg{} to maintain a persistent associative array.
Comments at the top explain prerequisites. Lines 8--10 set input
parameters: the directory where tests are run and where files
@@ -864,11 +901,16 @@ Lines 71--100 run the four different AWK approaches on
the same random
input, reporting separately the time to build and to query the
associative array containing word frequencies.
+@c ADR suggests making shell script available on web site
+@c TK will do eventually
+
@sp 1
+@c first line of C-shell script can't contain line-number comment
+
@smallformat
@verbatim
-#!/bin/csh -f
# 1
+#!/bin/csh -f
# Set PMG envar to path of pm-gawk executable and AWKLIBPATH
# 2
# to find rwarray.so
# 3
# Requires "sudo" to work; consider this for /etc/sudoers file:
# 4
@@ -1103,7 +1145,7 @@ copies as sparse as the original. If reflink copying is
not
available, @command{--sparse=always} should be used.} Fortunately you
can install, say, an XFS file system @emph{inside an ordinary file} on
some other file system, such as @code{ext4}.@footnote{See
-@url{https://www.usenix.org/system/files/login/articles/login_winter19_08_kelly.pdf}}
+@url{https://www.usenix.org/system/files/login/articles/login_winter19_08_kelly.pdf}.}
@c The @command{filefrag} utility reveals how the storage allocated to
@c the two files changes if they diverge.
@@ -1157,8 +1199,7 @@ provided useful feedback. Bentley suggested the
min/max/mean example
in @ref{Examples}, and also the exercise of making Kernighan & Pike's
``Markov'' script persistent. Volos provided and tested the advice on
tuning OS parameters in @ref{Virtual Memory and Big Data}. Stan Park
-answered several questions about virtual memory, file systems, and
-utilities.
+provided insights about virtual memory, file systems, and utilities.
@c ==================================================================
@c ==================================================================
@@ -1170,17 +1211,28 @@ utilities.
@c UPDATE below or remove this section if it's obsolete
@gwk{} 5.2 featuring persistent memory is expected to be released in
-August 2022; look for it at @url{http://ftp.gnu.org/gnu/gawk/}. If
+September 2022; look for it at @url{http://ftp.gnu.org/gnu/gawk/}. If
5.2 is not released yet, the master git branch is available at
@c
@url{http://git.savannah.gnu.org/cgit/gawk.git/snapshot/gawk-master.tar.gz}.
@c
-Unpack the tarball, run @command{./configure}, @command{make}, and
-@command{make check}, then try some of the examples presented earlier.
-In the normal course of events, 5.2 and later @gwk{} releases
-featuring @pmg{} will appear in the software package management
-systems of major GNU/Linux distros. Eventually @pmg{} will be
-available in the default @gwk{} on such systems.
+Unpack the tarball, run @command{./bootstrap.sh},
+@command{./configure}, @command{make}, and @command{make check}, then
+try some of the examples presented earlier. In the normal course of
+events, 5.2 and later @gwk{} releases featuring @pmg{} will appear in
+the software package management systems of major GNU/Linux distros.
+Eventually @pmg{} will be available in the default @gwk{} on such
+systems.
+
+@c ADR comments on above, "run ./bootstrap.sh, ./configure ..."
+@c TK replies: I haven't been doing this. Neither the README nor the
+@c INSTALL in the gawk tarball mention bootstrap.sh. If it's
+@c important, shouldn't they? The top of bootstrap.sh says its
+@c purpose is "to avoid out-of-date issues in Git sandboxes."
+@c When a neurodivergent source code control system requires us to
+@c write shell scripts to work around the problems that it creates
+@c gratuitously, the universe is trying to tell us something about
+@c it.
@c official gawk:
@c http://ftp.gnu.org/gnu/gawk/
[where to look for 5.2 after release]
@@ -1203,7 +1255,7 @@ using the heap file that you intend; using the wrong heap
file is a
common mistake. Other fertile sources of bugs for newcomers are the
fact that a @code{BEGIN} block is executed every time @pmg{} runs,
which isn't always what you really want, and the fact that built-in
-AWK variables such as @code{NR} are always re-set to zero every time
+AWK variables such as @code{NR} are always reset to zero every time
the interpreter runs. See the discussion of initialization
surrounding the min/max/mean script in @ref{Examples}.
@@ -1339,14 +1391,6 @@ creativity in early adopters, who have devised uses that
@pmg{}'s
designers never anticipated. I'm curious to see what new purposes
you find for it.
-@c TODO: future enhancements:
-@c pma version string consisting entirely of emojis
-@c benefits: compact, recognizable, lively
-@c problem: representing dates/numbers
-@c solution(?): emojis can probably encode Mayan dates (need to
investigate)
-@c problem: do Bayonne, Camden, ..., Newark, etc. have their own
emojis?
-@c solution(?): there are many different kinds of p**p emojis
-
@c ==================================================================
@c ==================================================================
@c ==================================================================
@@ -1357,145 +1401,3 @@ you find for it.
@c ==================================================================
@c ==================================================================
-@c Arnold Robbins recommendations, distilled from 547 line diff
-@c
-@c @emph -> @dfn for definitions of terms [done]
-@c Use the @dfn command to identify the introductory or
-@c defining use of a technical term. Use the command
-@c only in passages whose purpose is to introduce a
-@c term which will be used again or which the reader
-@c ought to know. Mere passing mention of a term for
-@c the first time does not deserve @dfn.
-@c -> @cite for book titles [done]
-@c Use the @cite command for the name of a book that
-@c lacks a companion Info file. The command produces
-@c italics in the printed manual, and quotation marks
-@c in the Info file. If a book is written in Texinfo,
-@c it is better to use a cross-reference command since
-@c a reader can easily follow such a reference in
-@c Info. See Section 5.4 [@xref], page 44.
-@c
-@c @code -> @command [merely to encourage carpal tunnel syndrome?]
-@c Use the @command command to indicate command names,
-@c such as ls or cc
-@c -> @samp for, um, things like "$" prompt of bash and "unset envar"
-@c Use the @samp command to indicate text that is a
-@c literal example or âsampleâ of a sequence of
-@c characters in a file, string, pattern, etc. ....
-@c Basically, @samp is a catchall for whatever is not
-@c covered by @code, @kbd, @key, @command, etc.
-@c -> @file for /proc/meminfo and pma.c
-@c Use the @file command to indicate text that is the
-@c name of a file, buffer, or directory, or is the name
-@c of a node in Info. You can also use the command for
-@c file name suffixes. Do not use @file for symbols in
-@c a programming language; use @code.
-@c -> @env for envars
-@c Use the @env command to indicate environment
-@c variables, as used by many operating systems,
-@c including GNU. Do not use it for metasyntactic
-@c variables; use @var for those (see the previous
-@c section).
-@c
-@c stuff that is done or otherwise addressed:
-@c
-@c [done, with tweaks]
-@c > @tex
-@c > \gdef\linkcolor{0.5 0.09 0.12} % Dark Red
-@c > \gdef\urlcolor{0.5 0.09 0.12} % Also
-@c > \global\urefurlonlylinktrue
-@c > @end tex
-@c
-@c < easier, improves performance, and enables @code{gawk} to handle larger
-@c ---
-@c > improves performance for certain kinds of I/O-bound workloads, [no,
I/O is orthogonal to asymptotic efficiency]
-@c > and enables @command{gawk} to handle larger
-@c
-@c @verbatim -> @kbd and @print [bad idea, extremely error prone]
-@c
-@c "Linux" -> "GNU/Linux" [in some places but not all; done with nuance]
-@c
-@c re-set -> reset [no, i like the former]
-@c
-@c > @c ADR: Define median and mode. Not everyone remembers what they are.
[done]
-@c
-@c remove "like the gawk of yesteryear" [done]
-@c
-@c 550c561 [it's not clear what the runtime overhead would be; it might
well be negligible]
-@c < ordinary file} on some other file system; for details see my article
-@c ---
-@c > ordinary file} on some other file system (with some runtime overhead);
for details see my article
-@c
-@c This expedient makes reflink copying available on popular file systems
-@c such as the @code{ext} family.
-@c @c ADR: You should also mention @samp{cp --sparse} here. [added TODO
comment]
-@c
-@c 572,574c584,588 [done]
-@c < Arnold Robbins got @value{ACRO} started by encouraging and supporting
-@c < Haris Volos, Zi Fan Tan, and Jianan Li as they developed a prototype
-@c < based on a fork of the @code{gawk} source. Robbins moreover
-@c ---
-@c > Haris Volos, Zi Fan Tan, and Jianan Li developed a prototype
-@c > based on a fork of the @command{gawk} source. Advice from Arnold
Robbins
-@c > (the @command{gawk} maintainer)
-@c > to me, which I forwarded to them, proved very helpful.
-@c > Robbins moreover
-@c
-@c 579c593 [done]
-@c < improvements to @code{pma}. Nelson Beebe provided access to Solaris
-@c ---
-@c > improvements to @code{pma}. Nelson H.@: F.@: Beebe provided access to
Solaris
-@c
-@c 582c596 [done]
-@c < Jon Bentley suggested the min/max/mean example in this manual and also
-@c ---
-@c > Jon Bentley suggested the min/max/mean example in @ref{Examples}, and
also
-@c
-@c 585,586c599,600 [done]
-@c < provided and tested the advice on tuning OS paging parameters in this
-@c < manual.
-@c ---
-@c > provided and tested the advice on tuning OS paging parameters in
-@c > @ref{System Configuration}.
-@c
-@c 650,651c664,665 [done]
-@c < runs, which isn't always what the programmer really wants, and the
-@c < fact that built-in AWK variables such as @code{NR} are always re-set
[I like ``re-set'']
-@c ---
-@c > runs, which isn't always what you really want, and the
-@c > fact that built-in AWK variables such as @code{NR} are always reset
-@c
-@c 678c692,694 [done]
-@c < The new @value{ACRO} persistence feature is based on a new persistent
-@c ---
-@c > @c ADR: Remove "new"; it won't be new for very long, and this
-@c > @c document will be around for a long time.
-@c > The @value{ACRO} persistence feature is based on a persistent
-@c
-@c @code{gdbm} -> GDBM [done, my way]
-@c
-@c 744,747c760,763 [done]
-@c < persistence for @code{gawk} in late 2021. While I was writing
-@c < @code{pma} in early 2022 the others, with advice and encouragement
-@c < from @code{gawk} maintainer Arnold Robbins, prototyped @value{ACRO} in
-@c < a fork of the @code{gawk} source. Experience with the prototype
-@c ---
-@c > persistence for @command{gawk} in late 2021. While I was writing
-@c > @code{pma} in early 2022 the others,
-@c > prototyped @value{ACRO} in
-@c > a fork of the @command{gawk} source. Experience with the prototype
-@c 749,751c765,767
-@c < @value{ACRO}, and by spring 2022 Robbins was implementing persistence
-@c < in the official version of @code{gawk}. The persistence feature in
-@c < official @code{gawk} differs slightly from the prototype: The former
-@c ---
-@c > @value{ACRO}, and by spring 2022 Arnold Robbins was implementing
persistence
-@c > in the official version of @command{gawk}. The persistence feature in
-@c > official @command{gawk} differs slightly from the prototype: The former
-@c
-@c 753c769 [done]
-@c < interpreter whereas the latter uses a command-line option. In many
-@c ---
-@c > interpreter whereas the latter uses a mandatory command-line option.
In many
-@c
-
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=e873b8a58e91267ece646a621bd73c59fa0a3814
commit e873b8a58e91267ece646a621bd73c59fa0a3814
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Wed Aug 17 16:53:19 2022 +0300
Small doc fixups.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 6f26d864..985cb3a5 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,9 +1,12 @@
-2202-08-16 John E. Malmberg <wb8tyw@qsl.net>
+2022-08-17 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Fix up the formatting in the VMS bits.
+ * wordlist: Updated.
- * gawktexi.in (OpenVMS):
+2202-08-16 John E. Malmberg <wb8tyw@qsl.net>
- * Start of support for VMS Software, Inc. releases
- * End of support for VAX/VMS and older OpenVMS versions.
+ * gawktexi.in (OpenVMS): Start of support for VMS Software, Inc.
+ releases. End of support for VAX/VMS and older OpenVMS versions.
2022-08-15 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/doc/gawk.info b/doc/gawk.info
index 6c1f3404..96a8d6b7 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -30111,6 +30111,8 @@ current version of 'gawk'.
- DJGPP
+ - VAX/VMS
+
File: gawk.info, Node: Feature History, Next: Common Extensions, Prev:
POSIX/GNU, Up: Language History
@@ -31781,6 +31783,9 @@ issues all the necessary 'CC' and 'LINK' commands.
There is also a
'Makefile' for use with the 'MMS' and 'MMK' utilities. From the source
directory, use either:
+ The vmsbuild.com method of building is no longer being maintained and
+is planned to be removed in the future.
+
$ @[.vms]vmsbuild.com
or:
@@ -31798,10 +31803,15 @@ available from
<https://github.com/endlesssoftware/mmk>.
With ODS-5 volumes and extended parsing enabled, the case of the
target parameter may need to be exact.
- 'gawk' has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 using
-Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS
-8.3. The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
-Alpha and IA64 VMS 8.4 used HP C 7.3.(1)
+ 'gawk' has been tested using these VMS Software, Inc. Community
+editions.
+
+ * HP C V7.3-010 on OpenVMS Alpha V8.4-2L1.
+
+ * HP C V7.3-020 on OpenVMS IA64 V8.4-2L3.(1)
+
+ Due to HPE cancelling the Hobbyist licensing program, no more testing
+is being done on older releases of VAX/VMS and OpenVMS.
*Note VMS GNV:: for information on building 'gawk' as a PCSI kit that
is compatible with the GNV product.
@@ -31839,7 +31849,7 @@ be exact case with CRC shortening for symbols longer
than 32 bits.
/name=(as_is,short)
/float=ieee/ieee_mode=denorm_results
- For VAX:
+ For VAX(1):
/name=(as_is,short)
@@ -31864,6 +31874,11 @@ these definitions yourself. The 'config.h' file
created when building
similar one, then you must remember to include it before any
VMS-supplied header files.
+ ---------- Footnotes ----------
+
+ (1) Dynamic extensions do not currently work on VAX, this is here for
+reference only.
+
File: gawk.info, Node: VMS Installation Details, Next: VMS Running, Prev:
VMS Dynamic Extensions, Up: VMS Installation
@@ -39743,80 +39758,81 @@ Node: SVR41208009
Node: POSIX1209443
Node: BTL1210824
Node: POSIX/GNU1211553
-Node: Feature History1217459
-Node: Common Extensions1235198
-Node: Ranges and Locales1236481
-Ref: Ranges and Locales-Footnote-11241097
-Ref: Ranges and Locales-Footnote-21241124
-Ref: Ranges and Locales-Footnote-31241359
-Node: Contributors1241582
-Node: History summary1247579
-Node: Installation1248959
-Node: Gawk Distribution1249903
-Node: Getting1250387
-Node: Extracting1251350
-Node: Distribution contents1252988
-Node: Unix Installation1260494
-Node: Quick Installation1261298
-Node: Compiling with MPFR1263718
-Node: Shell Startup Files1264408
-Node: Additional Configuration Options1265497
-Node: Configuration Philosophy1267812
-Node: Compiling from Git1270208
-Node: Building the Documentation1270763
-Node: Non-Unix Installation1272147
-Node: PC Installation1272607
-Node: PC Binary Installation1273448
-Node: PC Compiling1274321
-Node: PC Using1275427
-Node: Cygwin1278923
-Node: MSYS1280147
-Node: VMS Installation1280749
-Node: VMS Compilation1281468
-Ref: VMS Compilation-Footnote-11282697
-Node: VMS Dynamic Extensions1282755
-Node: VMS Installation Details1284440
-Node: VMS Running1286702
-Node: VMS GNV1290981
-Node: Bugs1291695
-Node: Bug definition1292607
-Node: Bug address1295543
-Node: Usenet1298731
-Node: Performance bugs1299920
-Node: Asking for help1302841
-Node: Maintainers1304808
-Node: Other Versions1305815
-Node: Installation summary1314085
-Node: Notes1315442
-Node: Compatibility Mode1316236
-Node: Additions1317018
-Node: Accessing The Source1317943
-Node: Adding Code1319380
-Node: New Ports1326195
-Node: Derived Files1330570
-Ref: Derived Files-Footnote-11336230
-Ref: Derived Files-Footnote-21336265
-Ref: Derived Files-Footnote-31336863
-Node: Future Extensions1336977
-Node: Implementation Limitations1337635
-Node: Extension Design1338845
-Node: Old Extension Problems1339989
-Ref: Old Extension Problems-Footnote-11341507
-Node: Extension New Mechanism Goals1341564
-Ref: Extension New Mechanism Goals-Footnote-11344928
-Node: Extension Other Design Decisions1345117
-Node: Extension Future Growth1347230
-Node: Notes summary1347836
-Node: Basic Concepts1348994
-Node: Basic High Level1349675
-Ref: figure-general-flow1349957
-Ref: figure-process-flow1350643
-Ref: Basic High Level-Footnote-11353945
-Node: Basic Data Typing1354130
-Node: Glossary1357458
-Node: Copying1389345
-Node: GNU Free Documentation License1426888
-Node: Index1452008
+Node: Feature History1217478
+Node: Common Extensions1235217
+Node: Ranges and Locales1236500
+Ref: Ranges and Locales-Footnote-11241116
+Ref: Ranges and Locales-Footnote-21241143
+Ref: Ranges and Locales-Footnote-31241378
+Node: Contributors1241601
+Node: History summary1247598
+Node: Installation1248978
+Node: Gawk Distribution1249922
+Node: Getting1250406
+Node: Extracting1251369
+Node: Distribution contents1253007
+Node: Unix Installation1260513
+Node: Quick Installation1261317
+Node: Compiling with MPFR1263737
+Node: Shell Startup Files1264427
+Node: Additional Configuration Options1265516
+Node: Configuration Philosophy1267831
+Node: Compiling from Git1270227
+Node: Building the Documentation1270782
+Node: Non-Unix Installation1272166
+Node: PC Installation1272626
+Node: PC Binary Installation1273467
+Node: PC Compiling1274340
+Node: PC Using1275446
+Node: Cygwin1278942
+Node: MSYS1280166
+Node: VMS Installation1280768
+Node: VMS Compilation1281487
+Ref: VMS Compilation-Footnote-11282882
+Node: VMS Dynamic Extensions1282940
+Ref: VMS Dynamic Extensions-Footnote-11284664
+Node: VMS Installation Details1284754
+Node: VMS Running1287016
+Node: VMS GNV1291295
+Node: Bugs1292009
+Node: Bug definition1292921
+Node: Bug address1295857
+Node: Usenet1299045
+Node: Performance bugs1300234
+Node: Asking for help1303155
+Node: Maintainers1305122
+Node: Other Versions1306129
+Node: Installation summary1314399
+Node: Notes1315756
+Node: Compatibility Mode1316550
+Node: Additions1317332
+Node: Accessing The Source1318257
+Node: Adding Code1319694
+Node: New Ports1326509
+Node: Derived Files1330884
+Ref: Derived Files-Footnote-11336544
+Ref: Derived Files-Footnote-21336579
+Ref: Derived Files-Footnote-31337177
+Node: Future Extensions1337291
+Node: Implementation Limitations1337949
+Node: Extension Design1339159
+Node: Old Extension Problems1340303
+Ref: Old Extension Problems-Footnote-11341821
+Node: Extension New Mechanism Goals1341878
+Ref: Extension New Mechanism Goals-Footnote-11345242
+Node: Extension Other Design Decisions1345431
+Node: Extension Future Growth1347544
+Node: Notes summary1348150
+Node: Basic Concepts1349308
+Node: Basic High Level1349989
+Ref: figure-general-flow1350271
+Ref: figure-process-flow1350957
+Ref: Basic High Level-Footnote-11354259
+Node: Basic Data Typing1354444
+Node: Glossary1357772
+Node: Copying1389659
+Node: GNU Free Documentation License1427202
+Node: Index1452322
End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index f4dee7d0..9f63351f 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -41222,6 +41222,9 @@ OS/2
@item
DJGPP
+@item
+VAX/VMS
+
@end itemize
@c XXX ADD MORE STUFF HERE
@@ -43490,6 +43493,9 @@ that issues all the necessary @code{CC} and @code{LINK}
commands. There is
also a @file{Makefile} for use with the @code{MMS} and @code{MMK} utilities.
From the source directory, use either:
+The vmsbuild.com method of building is no longer being maintained and is
+planned to be removed in the future.
+
@example
$ @kbd{@@[.vms]vmsbuild.com}
@end example
@@ -43515,11 +43521,20 @@ can better handle ODS-5 volumes with upper- and
lowercase @value{FN}s.
With ODS-5 volumes and extended parsing enabled, the case of the target
parameter may need to be exact.
-@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
-using Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS
8.3.
-The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
-Alpha and IA64 VMS 8.4 used HP C 7.3.@footnote{The IA64 architecture
+@command{gawk} has been tested using these VMS Software, Inc.@:
+Community editions.
+
+@itemize @bullet
+@item
+HP C V7.3-010 on OpenVMS Alpha V8.4-2L1.
+
+@item
+HP C V7.3-020 on OpenVMS IA64 V8.4-2L3.@footnote{The IA64 architecture
is also known as ``Itanium.''}
+@end itemize
+
+Due to HPE cancelling the Hobbyist licensing program, no more testing is
+being done on older releases of VAX/VMS and OpenVMS.
@xref{VMS GNV} for information on building
@command{gawk} as a PCSI kit that is compatible with the GNV product.
@@ -43558,7 +43573,8 @@ For Alpha and Itanium:
/float=ieee/ieee_mode=denorm_results
@end example
-For VAX:
+For VAX@footnote{Dynamic extensions do not currently work on VAX,
+this is here for reference only.}:
@example
/name=(as_is,short)
@@ -43726,7 +43742,6 @@ When defining it, the value should be quoted so that it
retains a single
translation and not a multitranslation @code{RMS} searchlist.
@cindex redirection @subentry on VMS
-
This restriction also applies to running @command{gawk} under GNV,
as redirection is always to a DCL command.
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index cac5f9bd..a464cfe3 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -42336,7 +42336,7 @@ that issues all the necessary @code{CC} and @code{LINK}
commands. There is
also a @file{Makefile} for use with the @code{MMS} and @code{MMK} utilities.
From the source directory, use either:
-The vmsbuild.com method of building is no longer being maaintained and is
+The vmsbuild.com method of building is no longer being maintained and is
planned to be removed in the future.
@example
@@ -42364,20 +42364,21 @@ can better handle ODS-5 volumes with upper- and
lowercase @value{FN}s.
With ODS-5 volumes and extended parsing enabled, the case of the target
parameter may need to be exact.
-@command{gawk} has been tested usign VMS Software, Inc. Community editions.
+@command{gawk} has been tested using these VMS Software, Inc.@:
+Community editions.
+@itemize @bullet
@item
-HP C V7.3-010 on OpenVMS Alpha V8.4-2L1
+HP C V7.3-010 on OpenVMS Alpha V8.4-2L1.
@item
-HP C V7.3-020 on OpenVMS IA64 V8.4-2L3
+HP C V7.3-020 on OpenVMS IA64 V8.4-2L3.@footnote{The IA64 architecture
+is also known as ``Itanium.''}
+@end itemize
-Due to HPE cancelling the Hobbyist licenaing program, no more testing is
+Due to HPE cancelling the Hobbyist licensing program, no more testing is
being done on older releases of VAX/VMS and OpenVMS.
-@footnote{The IA64 architecture
-is also known as ``Itanium.''}
-
@xref{VMS GNV} for information on building
@command{gawk} as a PCSI kit that is compatible with the GNV product.
@@ -42415,10 +42416,8 @@ For Alpha and Itanium:
/float=ieee/ieee_mode=denorm_results
@end example
-For VAX:
-
-Dynamic exentions do not currently work on VAX, this is here for
-reference only.
+For VAX@footnote{Dynamic extensions do not currently work on VAX,
+this is here for reference only.}:
@example
/name=(as_is,short)
@@ -42586,7 +42585,6 @@ When defining it, the value should be quoted so that it
retains a single
translation and not a multitranslation @code{RMS} searchlist.
@cindex redirection @subentry on VMS
-
This restriction also applies to running @command{gawk} under GNV,
as redirection is always to a DCL command.
diff --git a/doc/wordlist b/doc/wordlist
index 1f25fc30..398c4c2d 100644
--- a/doc/wordlist
+++ b/doc/wordlist
@@ -207,6 +207,7 @@ Gzip
HELPLIB
HH
HHMM
+HPE
HT
HUP
HURD
@@ -392,6 +393,7 @@ PCSI
PDF
PEBKAC
PMA
+PMGAWKTITLE
PNG
POS
PQgetvalue
@@ -641,6 +643,7 @@ austingroupbugs
autoconf
automake
autotools
+aux
avahi
aval
avg
-----------------------------------------------------------------------
Summary of changes:
doc/ChangeLog | 15 ++-
doc/gawk.info | 174 ++++++++++++++++--------------
doc/gawk.texi | 27 +++--
doc/gawktexi.in | 24 ++---
doc/pm-gawk.info | 136 ++++++++++++------------
doc/pm-gawk.texi | 314 +++++++++++++++++++------------------------------------
doc/wordlist | 3 +
7 files changed, 317 insertions(+), 376 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, master, updated. gawk-4.1.0-4873-g1d717fa2,
Arnold Robbins <=