diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2022-06-20 08:38:06 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2022-06-20 08:38:06 +0300 |
commit | 03f79dcb6aff98574c32609c80ecdd6e52730244 (patch) | |
tree | 6324e693e427eef402338a418e9a9f9e1e2625d1 | |
parent | f2e718519ec9759fa0f2f5cc329fb4d5102d37c6 (diff) | |
download | gawk-03f79dcb6aff98574c32609c80ecdd6e52730244.tar.gz |
MPFR now "on parole" instead of deprecated.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 12 | ||||
-rw-r--r-- | doc/ChangeLog | 5 | ||||
-rw-r--r-- | doc/gawk.1 | 17 | ||||
-rw-r--r-- | doc/gawk.info | 1367 | ||||
-rw-r--r-- | doc/gawk.texi | 40 | ||||
-rw-r--r-- | doc/gawktexi.in | 40 | ||||
-rw-r--r-- | main.c | 6 |
8 files changed, 777 insertions, 716 deletions
@@ -1,3 +1,9 @@ +2022-06-20 Arnold D. Robbins <arnold@skeeve.com> + + * NEWS: MPFR is now "on parole" instead of deprecated. + * main.c (deprecate_mpfr): ifdef'ed out. + (parse_args): Comment out call to deprecate_mpfr(). + 2022-06-15 Andrew J. Schorr <aschorr@telemetry-investments.com> * main.c (load_environ): Init ENVIRON_node before filling @@ -7,12 +7,12 @@ Changes from 5.1.x to 5.2.0 --------------------------- -*********************************************************************** -* MPFR mode (the -M option) is now DEPRECATED. This feature will be * -* removed in 2024. Using -M produces a warning message unless you * -* set GAWK_NO_MPFR_WARN in the environment. For more information see * -* https://...... * -*********************************************************************** +***************************************************************************** +* MPFR mode (the -M option) is now ON PAROLE. This feature is now being * +* supported by a volunteer in the development team and not by the primary * +* maintainer. If this situation changes, then the feature will be removed. * +* For more information see https://...... * +***************************************************************************** 1. Numeric scalars now compare in the same way as C for the relational operators. Comparison order for sorting has not changed. This only diff --git a/doc/ChangeLog b/doc/ChangeLog index eee7808f..eea6a919 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2022-06-20 Arnold D. Robbins <arnold@skeeve.com> + + * gawk.1: MPFR is now "on parole" instead of deprecated. + * gawktexi.in: Ditto. Update copyright year. + 2022-06-06 Andrew J. Schorr <aschorr@telemetry-investments.com> * gawktexi.in (Array Functions): Add new function destroy_array. @@ -13,7 +13,7 @@ . if \w'\(rq' .ds rq "\(rq . \} .\} -.TH GAWK 1 "May 03 2022" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "Jun 08 2022" "Free Software Foundation" "Utility Commands" .SH NAME gawk \- pattern scanning and processing language .SH SYNOPSIS @@ -267,12 +267,19 @@ issues a warning.) .sp .B NOTE: This feature is -.IR deprecated . -It will be removed from +.IR "on parole" . +The primary .I gawk -in 2024 and its use produces a warning messge. Set +maintainer is no longer supporting it, although there is +a member of the development team who is. If this situation +changes, the feature +will be removed from +.IR gawk . +.ig +Set .B GAWK_NO_MPFR_WARN in the environment to silence the warning. +.. .TP .BR \-n ", "\c .B \-\^\-non\-decimal\-data @@ -2315,11 +2322,13 @@ If has been specified, .I gawk issues a warning message to this effect. +.ig .PP Set .B GAWK_NO_MPFR_WARN in the environment to silence the warning about MPFR mode being deprecated. +.. .SH EXIT STATUS If the .B exit diff --git a/doc/gawk.info b/doc/gawk.info index 804caf15..4d87e3e1 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -1,6 +1,6 @@ This is gawk.info, produced by makeinfo version 6.8 from gawk.texi. -Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2021 +Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2022 Free Software Foundation, Inc. @@ -37,7 +37,7 @@ General Introduction This file documents 'awk', a program that you can use to select particular records in a file and perform operations upon them. - Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2021 + Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2022 Free Software Foundation, Inc. @@ -552,7 +552,7 @@ in (a) below. A copy of the license is included in the section entitled * Computer Arithmetic:: A quick intro to computer math. * Math Definitions:: Defining terms used. * MPFR features:: The MPFR features in 'gawk'. -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. * FP Math Caution:: Things to know. * Inexactness of computations:: Floating point math is not exact. @@ -2751,10 +2751,11 @@ The following list describes options mandated by the POSIX standard: libraries (*note Arbitrary Precision Arithmetic::). As of version 5.2, the arbitrary precision arithmetic features in - 'gawk' are _deprecated_. They will be removed from 'gawk' in 2024. - If you use this option, 'gawk' generates a warning message. Create - the environment variable 'GAWK_NO_MPFR_WARN' with an arbitrary - value in order to silence the warning. + 'gawk' are "on parole." The primary maintainer is no longer + willing to support this feature, but another member of the + development team has stepped up to take it over. As long as this + situation reamins stable, MPFR will be supported. If it changes, + the MPFR support will be removed from 'gawk'. '-n' '--non-decimal-data' @@ -3207,10 +3208,6 @@ used by regular users: On systems that do not support the 'usleep()' system call, the value is rounded up to an integral number of seconds. -'GAWK_NO_MPFR_WARN' - Specifies that 'gawk' should not print a deprecation warning when - used with the '-M'/'--bignum' options. - 'GAWK_READ_TIMEOUT' Specifies the time, in milliseconds, for 'gawk' to wait for input before returning with an error. *Note Read Timeout::. @@ -24590,29 +24587,29 @@ This minor node briefly describes arbitrary-precision arithmetic in * Menu: -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. -File: gawk.info, Node: MPFR Deprecated, Next: MPFR Intro, Up: MPFR features +File: gawk.info, Node: MPFR On Parole, Next: MPFR Intro, Up: MPFR features -16.3.1 Arbitrary Precision Arithmetic is Deprecated! ----------------------------------------------------- +16.3.1 Arbitrary Precision Arithmetic is On Parole! +--------------------------------------------------- -As of version 5.2, arbitrary precision arithmetic in 'gawk' is -_deprecated_. It will be removed from 'gawk' in 2024. +As of version 5.2, arbitrary precision arithmetic in 'gawk' is "on +parole." The primary 'gawk' maintainer is no longer maintaining it. +Fortunately, a volunteer from the development team has agreed to take it +over. - This feature is deprecated because its inclusion was a mistake. It + This feature is on parole because its inclusion was a mistake. It has led to endless bug reports, misuse of the feature and public abuse of the maintainer, for no real increased value. - If you use this feature, you should start working now to find a -different toolset with which to accomplish your goals.(1) + If the situation with support changes, the feature will be removed +from 'gawk'. - If the feature is very important to you, then consider if you are -willing to volunteer to maintain it, so that it can continue to be -included in 'gawk'. If that is the case, contact the maintainer to -discuss it with him. You may do so by submitting a bug report. + If you use this feature, you should consider finding a different +toolset with which to accomplish your goals.(1) ---------- Footnotes ---------- @@ -24621,7 +24618,7 @@ that still supports arbitrary precision arithmetic. It simply will be unmaintained. -File: gawk.info, Node: MPFR Intro, Prev: MPFR Deprecated, Up: MPFR features +File: gawk.info, Node: MPFR Intro, Prev: MPFR On Parole, Up: MPFR features 16.3.2 Arbitrary Precision Introduction --------------------------------------- @@ -35402,7 +35399,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 353) +* - (hyphen), -- end of options marker: Options. (line 354) * - (hyphen), in bracket expressions: Bracket Expressions. (line 25) * - (hyphen), -= operator: Assignment Ops. (line 129) * - (hyphen), -- operator: Increment Ops. (line 48) @@ -35438,21 +35435,21 @@ Index * --include option: Options. (line 180) * --lint option: Command Line. (line 20) * --lint option <1>: Options. (line 215) -* --lint-old option: Options. (line 343) +* --lint-old option: Options. (line 344) * --load option: Options. (line 203) -* --no-optimize option: Options. (line 328) -* --non-decimal-data option: Options. (line 254) +* --no-optimize option: Options. (line 329) +* --non-decimal-data option: Options. (line 255) * --non-decimal-data option <1>: Nondecimal Data. (line 6) * --non-decimal-data option, strtonum() function and: Nondecimal Data. (line 35) -* --optimize option: Options. (line 279) -* --posix option: Options. (line 301) -* --posix option, --traditional option and: Options. (line 316) -* --pretty-print option: Options. (line 268) -* --profile option: Options. (line 289) +* --optimize option: Options. (line 280) +* --posix option: Options. (line 302) +* --posix option, --traditional option and: Options. (line 317) +* --pretty-print option: Options. (line 269) +* --profile option: Options. (line 290) * --profile option <1>: Profiling. (line 12) -* --re-interval option: Options. (line 322) -* --sandbox option: Options. (line 333) +* --re-interval option: Options. (line 323) +* --sandbox option: Options. (line 334) * --sandbox option, input redirection with getline: Getline. (line 19) * --sandbox option, output redirection with print, printf: Redirection. (line 6) @@ -35461,9 +35458,9 @@ Index * --source option: Options. (line 120) * --trace option: Options. (line 197) * --traditional option: Options. (line 85) -* --traditional option, --posix option and: Options. (line 316) -* --use-lc-numeric option: Options. (line 263) -* --version option: Options. (line 348) +* --traditional option, --posix option and: Options. (line 317) +* --use-lc-numeric option: Options. (line 264) +* --version option: Options. (line 349) * -b option: Options. (line 72) * -c option: Options. (line 85) * -C option: Options. (line 92) @@ -35471,12 +35468,12 @@ Index * -D option: Options. (line 111) * -e option: Options. (line 120) * -E option: Options. (line 146) -* -e option <1>: Options. (line 389) +* -e option <1>: Options. (line 390) * -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 361) -* -f option, multiple uses: Options. (line 366) +* -F option, -Ft sets FS to TAB: Options. (line 362) +* -f option, multiple uses: Options. (line 367) * -F option, command-line: Command Line Field Separator. (line 6) * -g option: Options. (line 168) @@ -35485,19 +35482,19 @@ Index * -I option: Options. (line 197) * -l option: Options. (line 203) * -l option <1>: Options. (line 215) -* -L option: Options. (line 343) +* -L option: Options. (line 344) * -M option: Options. (line 242) -* -n option: Options. (line 254) -* -N option: Options. (line 263) -* -o option: Options. (line 268) -* -O option: Options. (line 279) -* -p option: Options. (line 289) -* -P option: Options. (line 301) -* -r option: Options. (line 322) -* -s option: Options. (line 328) -* -S option: Options. (line 333) +* -n option: Options. (line 255) +* -N option: Options. (line 264) +* -o option: Options. (line 269) +* -O option: Options. (line 280) +* -p option: Options. (line 290) +* -P option: Options. (line 302) +* -r option: Options. (line 323) +* -s option: Options. (line 329) +* -S option: Options. (line 334) * -v option: Options. (line 36) -* -V option: Options. (line 348) +* -V option: Options. (line 349) * -v option <1>: Assignment Options. (line 12) * -W option: Options. (line 50) * . (period), regexp operator: Regexp Operator Details. @@ -35733,7 +35730,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 333) +* ARGV array: Options. (line 334) * ARGV array, indexing into: Other Arguments. (line 21) * arithmetic operators: Arithmetic Ops. (line 6) * array manipulation in extensions: Array Manipulation. (line 6) @@ -35857,7 +35854,7 @@ Index * awk, uses for <1>: Getting Started. (line 12) * awk, uses for <2>: When. (line 6) * awk, invoking: Command Line. (line 6) -* awk, profiling, enabling: Options. (line 289) +* awk, profiling, enabling: Options. (line 290) * awk, implementations, limits: Getline Notes. (line 14) * awk, implementation issues, pipes: Redirection. (line 129) * awk, new vs. old, OFMT variable: Strings And Numbers. (line 56) @@ -36307,7 +36304,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 410) +* csh utility, POSIXLY_CORRECT environment variable: Options. (line 411) * csh utility, |& operator, comparison with: Two-way I/O. (line 27) * CSV (comma separated values) data, parsing with FPAT: Splitting By Content. (line 20) @@ -36541,7 +36538,7 @@ Index * debugging, example session: Sample Debugging Session. (line 6) * debugging gawk, bug reports: Bugs. (line 9) -* decimal point character, locale specific: Options. (line 313) +* decimal point character, locale specific: Options. (line 314) * decrement operators: Increment Ops. (line 35) * default keyword: Switch Statement. (line 6) * Deifik, Scott: Acknowledgments. (line 60) @@ -36738,7 +36735,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 395) +* environment variables, POSIXLY_CORRECT: Options. (line 396) * environment variables, used by gawk: Environment Variables. (line 6) * environment variables, AWKPATH: AWKPATH Variable. (line 6) @@ -37031,7 +37028,7 @@ Index * Free Software Foundation (FSF) <3>: Glossary. (line 403) * FreeBSD: Glossary. (line 747) * FS variable, --field-separator option and: Options. (line 21) -* FS variable, TAB character as: Options. (line 310) +* FS variable, TAB character as: Options. (line 311) * FS variable: Field Separators. (line 15) * FS variable, changing value of: Field Separators. (line 34) * FS variable, containing ^: Regexp Field Splitting. @@ -37106,8 +37103,8 @@ Index * gawk, uses for: Preface. (line 34) * gawk, awk and <1>: This Manual. (line 14) * gawk, newlines in: Statements/Lines. (line 12) -* gawk, extensions, disabling: Options. (line 301) -* gawk, version of, printing information about: Options. (line 348) +* gawk, extensions, disabling: Options. (line 302) +* gawk, version of, printing information about: Options. (line 349) * gawk, ARGIND variable in: Other Arguments. (line 21) * gawk, PROCINFO array in: Other Arguments. (line 21) * gawk, escape sequences: Escape Sequences. (line 120) @@ -37312,13 +37309,13 @@ Index * help debugger command: Miscellaneous Debugger Commands. (line 67) * hexadecimal numbers: Nondecimal-numbers. (line 6) -* hexadecimal values, enabling interpretation of: Options. (line 254) +* hexadecimal values, enabling interpretation of: Options. (line 255) * history expansion, in debugger: Readline Support. (line 6) * histsort.awk program: History Sorting. (line 25) * 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 353) +* hyphen (-), -- end of options marker: Options. (line 354) * hyphen (-), in bracket expressions: Bracket Expressions. (line 25) * hyphen (-), -= operator: Assignment Ops. (line 129) * hyphen (-), -- operator: Increment Ops. (line 48) @@ -37542,7 +37539,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 395) + (line 396) * lint checking: User-modified. (line 90) * lint checking, array subscripts: Uninitialized Subscripts. (line 43) @@ -37561,7 +37558,7 @@ Index * local variables, in a function: Variable Scope. (line 6) * local variables, show in debugger: Debugger Info. (line 34) * locale categories: Explaining gettext. (line 81) -* locale decimal point character: Options. (line 313) +* locale decimal point character: Options. (line 314) * locale, definition of: Locales. (line 6) * log: Numeric Functions. (line 28) * log files, timestamps in: Time Functions. (line 6) @@ -37680,7 +37677,7 @@ Index * networks, support for: Special Network. (line 6) * networks, programming: TCP/IP Networking. (line 6) * newlines: Statements/Lines. (line 6) -* newlines <1>: Options. (line 307) +* newlines <1>: Options. (line 308) * newlines, in dynamic regexps: Computed Regexps. (line 60) * newlines, in regexp constants: Computed Regexps. (line 70) * newlines, as record separators: awk split records. (line 12) @@ -37757,7 +37754,7 @@ Index * o debugger command (alias for option): Debugger Info. (line 57) * obsolete features: Obsolete. (line 6) * octal numbers: Nondecimal-numbers. (line 6) -* octal values, enabling interpretation of: Options. (line 254) +* octal values, enabling interpretation of: Options. (line 255) * OFMT variable: OFMT. (line 15) * OFMT variable, POSIX awk and: OFMT. (line 27) * OFMT variable <1>: Strings And Numbers. (line 56) @@ -37888,7 +37885,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 415) +* portability, POSIXLY_CORRECT environment variable: Options. (line 416) * portability: Escape Sequences. (line 103) * portability, backslash in escape sequences: Escape Sequences. (line 108) @@ -37964,8 +37961,8 @@ Index * POSIX awk, date utility and: Time Functions. (line 254) * POSIX awk, function keyword in: Definition Syntax. (line 99) * POSIX awk, changes in awk versions: POSIX. (line 6) -* POSIX mode: Options. (line 301) -* POSIX mode <1>: Options. (line 395) +* POSIX mode: Options. (line 302) +* POSIX mode <1>: Options. (line 396) * POSIX mode <2>: Regexp Operator Details. (line 47) * POSIX mode <3>: Input Summary. (line 69) @@ -37985,7 +37982,7 @@ Index * POSIX mode <12>: POSIX Floating Point Problems. (line 83) * POSIX mode <13>: Feature History. (line 315) -* POSIXLY_CORRECT environment variable: Options. (line 395) +* POSIXLY_CORRECT environment variable: Options. (line 396) * PREC variable: User-modified. (line 126) * precedence, regexp operators: Regexp Operator Details. (line 137) @@ -37997,7 +37994,7 @@ Index * predefined variables, conveying information: Auto-set. (line 6) * pretty printer, interaction with namespaces: Namespace And Features. (line 9) -* pretty printing: Options. (line 266) +* pretty printing: Options. (line 267) * pretty printing <1>: Profiling. (line 228) * pretty printing, profiling, difference with: Profiling. (line 235) * print debugger command: Viewing And Changing Data. @@ -38169,7 +38166,7 @@ Index (line 149) * register loadable extension: Registration Functions. (line 6) -* regular expressions, interval expressions and: Options. (line 322) +* regular expressions, interval expressions and: Options. (line 323) * regular expressions: Regexp. (line 6) * regular expressions, as patterns: Regexp Usage. (line 6) * regular expressions, operators: Regexp Usage. (line 19) @@ -38271,7 +38268,7 @@ Index (line 68) * sample debugging session: Sample Debugging Session. (line 6) -* sandbox mode: Options. (line 333) +* sandbox mode: Options. (line 334) * save debugger options: Debugger Info. (line 85) * scalar or array: Type Functions. (line 11) * scalar values: Basic Data Typing. (line 13) @@ -38631,7 +38628,7 @@ Index * treating files, as single records: gawk split records. (line 104) * troubleshooting, typographical errors, global variables: Options. (line 102) -* troubleshooting, --non-decimal-data option: Options. (line 254) +* troubleshooting, --non-decimal-data option: Options. (line 255) * troubleshooting, backslash before nonspecial character: Escape Sequences. (line 108) * troubleshooting, regexp constants vs. string constants: Computed Regexps. @@ -38819,7 +38816,7 @@ Index (line 13) * while statement, use of regexps in: Regexp Usage. (line 19) * while statement: While Statement. (line 6) -* whitespace, newlines as: Options. (line 307) +* whitespace, newlines as: Options. (line 308) * whitespace, definition of: Fields. (line 6) * whitespace, as field separators: Default Field Splitting. (line 6) @@ -38855,615 +38852,615 @@ Index Tag Table: Node: Top1200 -Node: Foreword345721 -Node: Foreword450163 -Node: Preface51695 -Ref: Preface-Footnote-154554 -Ref: Preface-Footnote-254663 -Ref: Preface-Footnote-354897 -Node: History55039 -Node: Names57391 -Ref: Names-Footnote-158495 -Node: This Manual58642 -Ref: This Manual-Footnote-165281 -Node: Conventions65381 -Node: Manual History67750 -Ref: Manual History-Footnote-170747 -Ref: Manual History-Footnote-270788 -Node: How To Contribute70862 -Node: Acknowledgments71784 -Node: Getting Started76721 -Node: Running gawk79160 -Node: One-shot80350 -Node: Read Terminal81613 -Node: Long83606 -Node: Executable Scripts85119 -Ref: Executable Scripts-Footnote-187752 -Node: Comments87855 -Node: Quoting90339 -Node: DOS Quoting95865 -Node: Sample Data Files97921 -Node: Very Simple100516 -Node: Two Rules106618 -Node: More Complex108503 -Node: Statements/Lines110835 -Ref: Statements/Lines-Footnote-1115319 -Node: Other Features115584 -Node: When116520 -Ref: When-Footnote-1118274 -Node: Intro Summary118339 -Node: Invoking Gawk119223 -Node: Command Line120737 -Node: Options121535 -Ref: Options-Footnote-1139719 -Ref: Options-Footnote-2139950 -Node: Other Arguments139975 -Node: Naming Standard Input143986 -Node: Environment Variables145196 -Node: AWKPATH Variable145754 -Ref: AWKPATH Variable-Footnote-1149166 -Ref: AWKPATH Variable-Footnote-2149200 -Node: AWKLIBPATH Variable149571 -Ref: AWKLIBPATH Variable-Footnote-1151268 -Node: Other Environment Variables151643 -Node: Exit Status155731 -Node: Include Files156408 -Node: Loading Shared Libraries160098 -Node: Obsolete161526 -Node: Undocumented162146 -Node: Invoking Summary162443 -Node: Regexp165284 -Node: Regexp Usage166738 -Node: Escape Sequences168775 -Node: Regexp Operators175017 -Node: Regexp Operator Details175502 -Ref: Regexp Operator Details-Footnote-1182866 -Node: Interval Expressions183013 -Ref: Interval Expressions-Footnote-1185188 -Node: Bracket Expressions185286 -Ref: table-char-classes187762 -Node: Leftmost Longest191089 -Node: Computed Regexps192392 -Node: GNU Regexp Operators195819 -Node: Case-sensitivity199497 -Ref: Case-sensitivity-Footnote-1202363 -Ref: Case-sensitivity-Footnote-2202598 -Node: Regexp Summary202706 -Node: Reading Files204172 -Node: Records206441 -Node: awk split records207516 -Node: gawk split records212216 -Ref: gawk split records-Footnote-1217290 -Node: Fields217327 -Node: Nonconstant Fields220068 -Ref: Nonconstant Fields-Footnote-1222304 -Node: Changing Fields222508 -Node: Field Separators228539 -Node: Default Field Splitting231237 -Node: Regexp Field Splitting232355 -Node: Single Character Fields236032 -Node: Command Line Field Separator237092 -Node: Full Line Fields240310 -Ref: Full Line Fields-Footnote-1241832 -Ref: Full Line Fields-Footnote-2241878 -Node: Field Splitting Summary241979 -Node: Constant Size244053 -Node: Fixed width data244785 -Node: Skipping intervening248252 -Node: Allowing trailing data249050 -Node: Fields with fixed data250087 -Node: Splitting By Content251605 -Ref: Splitting By Content-Footnote-1255441 -Node: More CSV255604 -Node: FS versus FPAT257219 -Node: Testing field creation258379 -Node: Multiple Line260004 -Node: Getline266281 -Node: Plain Getline268750 -Node: Getline/Variable271323 -Node: Getline/File272474 -Node: Getline/Variable/File273862 -Ref: Getline/Variable/File-Footnote-1275467 -Node: Getline/Pipe275555 -Node: Getline/Variable/Pipe278259 -Node: Getline/Coprocess279394 -Node: Getline/Variable/Coprocess280661 -Node: Getline Notes281403 -Node: Getline Summary284200 -Ref: table-getline-variants284624 -Node: Read Timeout285373 -Ref: Read Timeout-Footnote-1289289 -Node: Retrying Input289347 -Node: Command-line directories290546 -Node: Input Summary291452 -Node: Input Exercises294624 -Node: Printing295058 -Node: Print296892 -Node: Print Examples298349 -Node: Output Separators301129 -Node: OFMT303146 -Node: Printf304502 -Node: Basic Printf305287 -Node: Control Letters306861 -Node: Format Modifiers312023 -Node: Printf Examples318038 -Node: Redirection320524 -Node: Special FD327365 -Ref: Special FD-Footnote-1330533 -Node: Special Files330607 -Node: Other Inherited Files331224 -Node: Special Network332225 -Node: Special Caveats333085 -Node: Close Files And Pipes334034 -Ref: table-close-pipe-return-values340941 -Ref: Close Files And Pipes-Footnote-1341755 -Ref: Close Files And Pipes-Footnote-2341903 -Node: Nonfatal342055 -Node: Output Summary344393 -Node: Output Exercises345615 -Node: Expressions346294 -Node: Values347482 -Node: Constants348160 -Node: Scalar Constants348851 -Ref: Scalar Constants-Footnote-1351361 -Node: Nondecimal-numbers351611 -Node: Regexp Constants354612 -Node: Using Constant Regexps355138 -Node: Standard Regexp Constants355760 -Node: Strong Regexp Constants358948 -Node: Variables362663 -Node: Using Variables363320 -Node: Assignment Options365230 -Node: Conversion367701 -Node: Strings And Numbers368225 -Ref: Strings And Numbers-Footnote-1371288 -Node: Locale influences conversions371397 -Ref: table-locale-affects374155 -Node: All Operators374774 -Node: Arithmetic Ops375403 -Node: Concatenation378119 -Ref: Concatenation-Footnote-1380966 -Node: Assignment Ops381073 -Ref: table-assign-ops386064 -Node: Increment Ops387378 -Node: Truth Values and Conditions390838 -Node: Truth Values391912 -Node: Typing and Comparison392960 -Node: Variable Typing393780 -Ref: Variable Typing-Footnote-1400243 -Ref: Variable Typing-Footnote-2400315 -Node: Comparison Operators400392 -Ref: table-relational-ops400811 -Node: POSIX String Comparison404307 -Ref: POSIX String Comparison-Footnote-1406002 -Ref: POSIX String Comparison-Footnote-2406141 -Node: Boolean Ops406225 -Ref: Boolean Ops-Footnote-1410707 -Node: Conditional Exp410799 -Node: Function Calls412535 -Node: Precedence416412 -Node: Locales420071 -Node: Expressions Summary421703 -Node: Patterns and Actions424276 -Node: Pattern Overview425396 -Node: Regexp Patterns427073 -Node: Expression Patterns427615 -Node: Ranges431396 -Node: BEGIN/END434504 -Node: Using BEGIN/END435265 -Ref: Using BEGIN/END-Footnote-1438019 -Node: I/O And BEGIN/END438125 -Node: BEGINFILE/ENDFILE440438 -Node: Empty443669 -Node: Using Shell Variables443986 -Node: Action Overview446260 -Node: Statements448585 -Node: If Statement450433 -Node: While Statement451928 -Node: Do Statement453956 -Node: For Statement455104 -Node: Switch Statement458359 -Node: Break Statement460800 -Node: Continue Statement462892 -Node: Next Statement464719 -Node: Nextfile Statement467102 -Node: Exit Statement469791 -Node: Built-in Variables472194 -Node: User-modified473327 -Node: Auto-set481094 -Ref: Auto-set-Footnote-1497901 -Ref: Auto-set-Footnote-2498107 -Node: ARGC and ARGV498163 -Node: Pattern Action Summary502376 -Node: Arrays504806 -Node: Array Basics506135 -Node: Array Intro506979 -Ref: figure-array-elements508954 -Ref: Array Intro-Footnote-1511659 -Node: Reference to Elements511787 -Node: Assigning Elements514251 -Node: Array Example514742 -Node: Scanning an Array516696 -Node: Controlling Scanning519718 -Ref: Controlling Scanning-Footnote-1526174 -Node: Numeric Array Subscripts526490 -Node: Uninitialized Subscripts528674 -Node: Delete530293 -Ref: Delete-Footnote-1533045 -Node: Multidimensional533102 -Node: Multiscanning536197 -Node: Arrays of Arrays537788 -Node: Arrays Summary542556 -Node: Functions544649 -Node: Built-in545687 -Node: Calling Built-in546840 -Node: Boolean Functions548836 -Node: Numeric Functions549390 -Ref: Numeric Functions-Footnote-1553417 -Ref: Numeric Functions-Footnote-2554065 -Ref: Numeric Functions-Footnote-3554113 -Node: String Functions554385 -Ref: String Functions-Footnote-1579227 -Ref: String Functions-Footnote-2579355 -Ref: String Functions-Footnote-3579603 -Node: Gory Details579690 -Ref: table-sub-escapes581481 -Ref: table-sub-proposed583001 -Ref: table-posix-sub584365 -Ref: table-gensub-escapes585907 -Ref: Gory Details-Footnote-1586731 -Node: I/O Functions586885 -Ref: table-system-return-values593339 -Ref: I/O Functions-Footnote-1595420 -Ref: I/O Functions-Footnote-2595568 -Node: Time Functions595688 -Ref: Time Functions-Footnote-1606359 -Ref: Time Functions-Footnote-2606427 -Ref: Time Functions-Footnote-3606585 -Ref: Time Functions-Footnote-4606696 -Ref: Time Functions-Footnote-5606808 -Ref: Time Functions-Footnote-6607035 -Node: Bitwise Functions607301 -Ref: table-bitwise-ops607895 -Ref: Bitwise Functions-Footnote-1613959 -Ref: Bitwise Functions-Footnote-2614132 -Node: Type Functions614323 -Node: I18N Functions617743 -Node: User-defined619394 -Node: Definition Syntax620206 -Ref: Definition Syntax-Footnote-1625900 -Node: Function Example625971 -Ref: Function Example-Footnote-1628893 -Node: Function Calling628915 -Node: Calling A Function629503 -Node: Variable Scope630461 -Node: Pass By Value/Reference633455 -Node: Function Caveats636099 -Ref: Function Caveats-Footnote-1638146 -Node: Return Statement638266 -Node: Dynamic Typing641245 -Node: Indirect Calls642175 -Node: Functions Summary653102 -Node: Library Functions655807 -Ref: Library Functions-Footnote-1659414 -Ref: Library Functions-Footnote-2659557 -Node: Library Names659728 -Ref: Library Names-Footnote-1663395 -Ref: Library Names-Footnote-2663618 -Node: General Functions663704 -Node: Strtonum Function664886 -Node: Assert Function667908 -Node: Round Function671234 -Node: Cliff Random Function672774 -Node: Ordinal Functions673790 -Ref: Ordinal Functions-Footnote-1676853 -Ref: Ordinal Functions-Footnote-2677105 -Node: Join Function677315 -Ref: Join Function-Footnote-1679085 -Node: Getlocaltime Function679285 -Node: Readfile Function683027 -Node: Shell Quoting685004 -Node: Isnumeric Function686432 -Node: Data File Management687820 -Node: Filetrans Function688452 -Node: Rewind Function692548 -Node: File Checking694457 -Ref: File Checking-Footnote-1695791 -Node: Empty Files695992 -Node: Ignoring Assigns697971 -Node: Getopt Function699521 -Ref: Getopt Function-Footnote-1714818 -Node: Passwd Functions715018 -Ref: Passwd Functions-Footnote-1723857 -Node: Group Functions723945 -Ref: Group Functions-Footnote-1731843 -Node: Walking Arrays732050 -Node: Library Functions Summary735058 -Node: Library Exercises736464 -Node: Sample Programs736929 -Node: Running Examples737699 -Node: Clones738427 -Node: Cut Program739651 -Node: Egrep Program749791 -Node: Id Program758792 -Node: Split Program768727 -Ref: Split Program-Footnote-1778620 -Node: Tee Program778793 -Node: Uniq Program781583 -Node: Wc Program789171 -Node: Bytes vs. Characters789558 -Node: Using extensions791106 -Node: wc program791860 -Node: Miscellaneous Programs796725 -Node: Dupword Program797938 -Node: Alarm Program799968 -Node: Translate Program804823 -Ref: Translate Program-Footnote-1809388 -Node: Labels Program809658 -Ref: Labels Program-Footnote-1813009 -Node: Word Sorting813093 -Node: History Sorting817165 -Node: Extract Program819390 -Node: Simple Sed827403 -Node: Igawk Program830477 -Ref: Igawk Program-Footnote-1844808 -Ref: Igawk Program-Footnote-2845010 -Ref: Igawk Program-Footnote-3845132 -Node: Anagram Program845247 -Node: Signature Program848309 -Node: Programs Summary849556 -Node: Programs Exercises850770 -Ref: Programs Exercises-Footnote-1854900 -Node: Advanced Features854986 -Node: Nondecimal Data857117 -Node: Boolean Typed Values858715 -Node: Array Sorting860596 -Node: Controlling Array Traversal861301 -Ref: Controlling Array Traversal-Footnote-1869669 -Node: Array Sorting Functions869787 -Ref: Array Sorting Functions-Footnote-1875698 -Node: Two-way I/O875894 -Ref: Two-way I/O-Footnote-1883620 -Ref: Two-way I/O-Footnote-2883807 -Node: TCP/IP Networking883889 -Node: Profiling886965 -Node: Extension Philosophy896274 -Node: Advanced Features Summary897753 -Node: Internationalization899768 -Node: I18N and L10N901442 -Node: Explaining gettext902129 -Ref: Explaining gettext-Footnote-1908021 -Ref: Explaining gettext-Footnote-2908206 -Node: Programmer i18n908371 -Ref: Programmer i18n-Footnote-1913320 -Node: Translator i18n913369 -Node: String Extraction914163 -Ref: String Extraction-Footnote-1915295 -Node: Printf Ordering915381 -Ref: Printf Ordering-Footnote-1918167 -Node: I18N Portability918231 -Ref: I18N Portability-Footnote-1920687 -Node: I18N Example920750 -Ref: I18N Example-Footnote-1924025 -Ref: I18N Example-Footnote-2924098 -Node: Gawk I18N924207 -Node: I18N Summary924829 -Node: Debugger926170 -Node: Debugging927170 -Node: Debugging Concepts927611 -Node: Debugging Terms929420 -Node: Awk Debugging931995 -Ref: Awk Debugging-Footnote-1932940 -Node: Sample Debugging Session933072 -Node: Debugger Invocation933606 -Node: Finding The Bug934992 -Node: List of Debugger Commands941466 -Node: Breakpoint Control942799 -Node: Debugger Execution Control946493 -Node: Viewing And Changing Data949855 -Node: Execution Stack953396 -Node: Debugger Info955033 -Node: Miscellaneous Debugger Commands959104 -Node: Readline Support964166 -Node: Limitations965062 -Node: Debugging Summary967616 -Node: Namespaces968895 -Node: Global Namespace970006 -Node: Qualified Names971404 -Node: Default Namespace972403 -Node: Changing The Namespace973144 -Node: Naming Rules974758 -Node: Internal Name Management976606 -Node: Namespace Example977648 -Node: Namespace And Features980210 -Node: Namespace Summary981645 -Node: Arbitrary Precision Arithmetic983122 -Node: Computer Arithmetic984609 -Ref: table-numeric-ranges988375 -Ref: table-floating-point-ranges988869 -Ref: Computer Arithmetic-Footnote-1989528 -Node: Math Definitions989585 -Ref: table-ieee-formats992561 -Node: MPFR features993129 -Node: MPFR Deprecated993575 -Ref: MPFR Deprecated-Footnote-1994505 -Node: MPFR Intro994660 -Node: FP Math Caution996300 -Ref: FP Math Caution-Footnote-1997372 -Node: Inexactness of computations997741 -Node: Inexact representation998772 -Node: Comparing FP Values1000132 -Node: Errors accumulate1001373 -Node: Strange values1002829 -Ref: Strange values-Footnote-11005417 -Node: Getting Accuracy1005522 -Node: Try To Round1008232 -Node: Setting precision1009131 -Ref: table-predefined-precision-strings1009828 -Node: Setting the rounding mode1011659 -Ref: table-gawk-rounding-modes1012033 -Ref: Setting the rounding mode-Footnote-11015965 -Node: Arbitrary Precision Integers1016144 -Ref: Arbitrary Precision Integers-Footnote-11019319 -Node: Checking for MPFR1019468 -Node: POSIX Floating Point Problems1020942 -Ref: POSIX Floating Point Problems-Footnote-11025595 -Node: Floating point summary1025633 -Node: Dynamic Extensions1027823 -Node: Extension Intro1029376 -Node: Plugin License1030642 -Node: Extension Mechanism Outline1031439 -Ref: figure-load-extension1031878 -Ref: figure-register-new-function1033444 -Ref: figure-call-new-function1034537 -Node: Extension API Description1036600 -Node: Extension API Functions Introduction1038313 -Ref: table-api-std-headers1040149 -Node: General Data Types1044399 -Ref: General Data Types-Footnote-11053105 -Node: Memory Allocation Functions1053404 -Ref: Memory Allocation Functions-Footnote-11057905 -Node: Constructor Functions1058004 -Node: API Ownership of MPFR and GMP Values1061657 -Node: Registration Functions1063190 -Node: Extension Functions1063890 -Node: Exit Callback Functions1069212 -Node: Extension Version String1070462 -Node: Input Parsers1071125 -Node: Output Wrappers1083846 -Node: Two-way processors1088358 -Node: Printing Messages1090623 -Ref: Printing Messages-Footnote-11091794 -Node: Updating ERRNO1091947 -Node: Requesting Values1092686 -Ref: table-value-types-returned1093423 -Node: Accessing Parameters1094532 -Node: Symbol Table Access1095769 -Node: Symbol table by name1096281 -Ref: Symbol table by name-Footnote-11099306 -Node: Symbol table by cookie1099434 -Ref: Symbol table by cookie-Footnote-11103619 -Node: Cached values1103683 -Ref: Cached values-Footnote-11107219 -Node: Array Manipulation1107372 -Ref: Array Manipulation-Footnote-11108463 -Node: Array Data Types1108500 -Ref: Array Data Types-Footnote-11111158 -Node: Array Functions1111250 -Node: Flattening Arrays1116035 -Node: Creating Arrays1123011 -Node: Redirection API1127778 -Node: Extension API Variables1130611 -Node: Extension Versioning1131322 -Ref: gawk-api-version1131751 -Node: Extension GMP/MPFR Versioning1133483 -Node: Extension API Informational Variables1135111 -Node: Extension API Boilerplate1136184 -Node: Changes from API V11140158 -Node: Finding Extensions1141730 -Node: Extension Example1142289 -Node: Internal File Description1143087 -Node: Internal File Ops1147167 -Ref: Internal File Ops-Footnote-11158517 -Node: Using Internal File Ops1158657 -Ref: Using Internal File Ops-Footnote-11161040 -Node: Extension Samples1161314 -Node: Extension Sample File Functions1162843 -Node: Extension Sample Fnmatch1170492 -Node: Extension Sample Fork1171979 -Node: Extension Sample Inplace1173197 -Node: Extension Sample Ord1176823 -Node: Extension Sample Readdir1177659 -Ref: table-readdir-file-types1178548 -Node: Extension Sample Revout1179616 -Node: Extension Sample Rev2way1180205 -Node: Extension Sample Read write array1180945 -Node: Extension Sample Readfile1184110 -Node: Extension Sample Time1185205 -Node: Extension Sample API Tests1186957 -Node: gawkextlib1187449 -Node: Extension summary1190367 -Node: Extension Exercises1194069 -Node: Language History1195311 -Node: V7/SVR3.11196967 -Node: SVR41199119 -Node: POSIX1200553 -Node: BTL1201934 -Node: POSIX/GNU1202663 -Node: Feature History1208441 -Node: Common Extensions1225616 -Node: Ranges and Locales1226899 -Ref: Ranges and Locales-Footnote-11231515 -Ref: Ranges and Locales-Footnote-21231542 -Ref: Ranges and Locales-Footnote-31231777 -Node: Contributors1232000 -Node: History summary1237997 -Node: Installation1239377 -Node: Gawk Distribution1240321 -Node: Getting1240805 -Node: Extracting1241768 -Node: Distribution contents1243406 -Node: Unix Installation1250467 -Node: Quick Installation1251271 -Node: Compiling with MPFR1253691 -Node: Shell Startup Files1254381 -Node: Additional Configuration Options1255470 -Node: Configuration Philosophy1257785 -Node: Compiling from Git1260181 -Node: Building the Documentation1260736 -Node: Non-Unix Installation1262120 -Node: PC Installation1262580 -Node: PC Binary Installation1263418 -Node: PC Compiling1264291 -Node: PC Using1265408 -Node: Cygwin1268961 -Node: MSYS1270185 -Node: VMS Installation1270787 -Node: VMS Compilation1271506 -Ref: VMS Compilation-Footnote-11272735 -Node: VMS Dynamic Extensions1272793 -Node: VMS Installation Details1274478 -Node: VMS Running1276740 -Node: VMS GNV1281019 -Node: Bugs1281733 -Node: Bug definition1282645 -Node: Bug address1285581 -Node: Usenet1288769 -Node: Performance bugs1289958 -Node: Asking for help1292879 -Node: Maintainers1294846 -Node: Other Versions1296040 -Node: Installation summary1304310 -Node: Notes1305674 -Node: Compatibility Mode1306468 -Node: Additions1307250 -Node: Accessing The Source1308175 -Node: Adding Code1309612 -Node: New Ports1316427 -Node: Derived Files1320802 -Ref: Derived Files-Footnote-11326462 -Ref: Derived Files-Footnote-21326497 -Ref: Derived Files-Footnote-31327095 -Node: Future Extensions1327209 -Node: Implementation Limitations1327867 -Node: Extension Design1329077 -Node: Old Extension Problems1330221 -Ref: Old Extension Problems-Footnote-11331739 -Node: Extension New Mechanism Goals1331796 -Ref: Extension New Mechanism Goals-Footnote-11335160 -Node: Extension Other Design Decisions1335349 -Node: Extension Future Growth1337462 -Node: Notes summary1338068 -Node: Basic Concepts1339226 -Node: Basic High Level1339907 -Ref: figure-general-flow1340189 -Ref: figure-process-flow1340875 -Ref: Basic High Level-Footnote-11344177 -Node: Basic Data Typing1344362 -Node: Glossary1347690 -Node: Copying1379577 -Node: GNU Free Documentation License1417120 -Node: Index1442240 +Node: Foreword345720 +Node: Foreword450162 +Node: Preface51694 +Ref: Preface-Footnote-154553 +Ref: Preface-Footnote-254662 +Ref: Preface-Footnote-354896 +Node: History55038 +Node: Names57390 +Ref: Names-Footnote-158494 +Node: This Manual58641 +Ref: This Manual-Footnote-165280 +Node: Conventions65380 +Node: Manual History67749 +Ref: Manual History-Footnote-170746 +Ref: Manual History-Footnote-270787 +Node: How To Contribute70861 +Node: Acknowledgments71783 +Node: Getting Started76720 +Node: Running gawk79159 +Node: One-shot80349 +Node: Read Terminal81612 +Node: Long83605 +Node: Executable Scripts85118 +Ref: Executable Scripts-Footnote-187751 +Node: Comments87854 +Node: Quoting90338 +Node: DOS Quoting95864 +Node: Sample Data Files97920 +Node: Very Simple100515 +Node: Two Rules106617 +Node: More Complex108502 +Node: Statements/Lines110834 +Ref: Statements/Lines-Footnote-1115318 +Node: Other Features115583 +Node: When116519 +Ref: When-Footnote-1118273 +Node: Intro Summary118338 +Node: Invoking Gawk119222 +Node: Command Line120736 +Node: Options121534 +Ref: Options-Footnote-1139783 +Ref: Options-Footnote-2140014 +Node: Other Arguments140039 +Node: Naming Standard Input144050 +Node: Environment Variables145260 +Node: AWKPATH Variable145818 +Ref: AWKPATH Variable-Footnote-1149230 +Ref: AWKPATH Variable-Footnote-2149264 +Node: AWKLIBPATH Variable149635 +Ref: AWKLIBPATH Variable-Footnote-1151332 +Node: Other Environment Variables151707 +Node: Exit Status155659 +Node: Include Files156336 +Node: Loading Shared Libraries160026 +Node: Obsolete161454 +Node: Undocumented162074 +Node: Invoking Summary162371 +Node: Regexp165212 +Node: Regexp Usage166666 +Node: Escape Sequences168703 +Node: Regexp Operators174945 +Node: Regexp Operator Details175430 +Ref: Regexp Operator Details-Footnote-1182794 +Node: Interval Expressions182941 +Ref: Interval Expressions-Footnote-1185116 +Node: Bracket Expressions185214 +Ref: table-char-classes187690 +Node: Leftmost Longest191017 +Node: Computed Regexps192320 +Node: GNU Regexp Operators195747 +Node: Case-sensitivity199425 +Ref: Case-sensitivity-Footnote-1202291 +Ref: Case-sensitivity-Footnote-2202526 +Node: Regexp Summary202634 +Node: Reading Files204100 +Node: Records206369 +Node: awk split records207444 +Node: gawk split records212144 +Ref: gawk split records-Footnote-1217218 +Node: Fields217255 +Node: Nonconstant Fields219996 +Ref: Nonconstant Fields-Footnote-1222232 +Node: Changing Fields222436 +Node: Field Separators228467 +Node: Default Field Splitting231165 +Node: Regexp Field Splitting232283 +Node: Single Character Fields235960 +Node: Command Line Field Separator237020 +Node: Full Line Fields240238 +Ref: Full Line Fields-Footnote-1241760 +Ref: Full Line Fields-Footnote-2241806 +Node: Field Splitting Summary241907 +Node: Constant Size243981 +Node: Fixed width data244713 +Node: Skipping intervening248180 +Node: Allowing trailing data248978 +Node: Fields with fixed data250015 +Node: Splitting By Content251533 +Ref: Splitting By Content-Footnote-1255369 +Node: More CSV255532 +Node: FS versus FPAT257147 +Node: Testing field creation258307 +Node: Multiple Line259932 +Node: Getline266209 +Node: Plain Getline268678 +Node: Getline/Variable271251 +Node: Getline/File272402 +Node: Getline/Variable/File273790 +Ref: Getline/Variable/File-Footnote-1275395 +Node: Getline/Pipe275483 +Node: Getline/Variable/Pipe278187 +Node: Getline/Coprocess279322 +Node: Getline/Variable/Coprocess280589 +Node: Getline Notes281331 +Node: Getline Summary284128 +Ref: table-getline-variants284552 +Node: Read Timeout285301 +Ref: Read Timeout-Footnote-1289217 +Node: Retrying Input289275 +Node: Command-line directories290474 +Node: Input Summary291380 +Node: Input Exercises294552 +Node: Printing294986 +Node: Print296820 +Node: Print Examples298277 +Node: Output Separators301057 +Node: OFMT303074 +Node: Printf304430 +Node: Basic Printf305215 +Node: Control Letters306789 +Node: Format Modifiers311951 +Node: Printf Examples317966 +Node: Redirection320452 +Node: Special FD327293 +Ref: Special FD-Footnote-1330461 +Node: Special Files330535 +Node: Other Inherited Files331152 +Node: Special Network332153 +Node: Special Caveats333013 +Node: Close Files And Pipes333962 +Ref: table-close-pipe-return-values340869 +Ref: Close Files And Pipes-Footnote-1341683 +Ref: Close Files And Pipes-Footnote-2341831 +Node: Nonfatal341983 +Node: Output Summary344321 +Node: Output Exercises345543 +Node: Expressions346222 +Node: Values347410 +Node: Constants348088 +Node: Scalar Constants348779 +Ref: Scalar Constants-Footnote-1351289 +Node: Nondecimal-numbers351539 +Node: Regexp Constants354540 +Node: Using Constant Regexps355066 +Node: Standard Regexp Constants355688 +Node: Strong Regexp Constants358876 +Node: Variables362591 +Node: Using Variables363248 +Node: Assignment Options365158 +Node: Conversion367629 +Node: Strings And Numbers368153 +Ref: Strings And Numbers-Footnote-1371216 +Node: Locale influences conversions371325 +Ref: table-locale-affects374083 +Node: All Operators374702 +Node: Arithmetic Ops375331 +Node: Concatenation378047 +Ref: Concatenation-Footnote-1380894 +Node: Assignment Ops381001 +Ref: table-assign-ops385992 +Node: Increment Ops387306 +Node: Truth Values and Conditions390766 +Node: Truth Values391840 +Node: Typing and Comparison392888 +Node: Variable Typing393708 +Ref: Variable Typing-Footnote-1400171 +Ref: Variable Typing-Footnote-2400243 +Node: Comparison Operators400320 +Ref: table-relational-ops400739 +Node: POSIX String Comparison404235 +Ref: POSIX String Comparison-Footnote-1405930 +Ref: POSIX String Comparison-Footnote-2406069 +Node: Boolean Ops406153 +Ref: Boolean Ops-Footnote-1410635 +Node: Conditional Exp410727 +Node: Function Calls412463 +Node: Precedence416340 +Node: Locales419999 +Node: Expressions Summary421631 +Node: Patterns and Actions424204 +Node: Pattern Overview425324 +Node: Regexp Patterns427001 +Node: Expression Patterns427543 +Node: Ranges431324 +Node: BEGIN/END434432 +Node: Using BEGIN/END435193 +Ref: Using BEGIN/END-Footnote-1437947 +Node: I/O And BEGIN/END438053 +Node: BEGINFILE/ENDFILE440366 +Node: Empty443597 +Node: Using Shell Variables443914 +Node: Action Overview446188 +Node: Statements448513 +Node: If Statement450361 +Node: While Statement451856 +Node: Do Statement453884 +Node: For Statement455032 +Node: Switch Statement458287 +Node: Break Statement460728 +Node: Continue Statement462820 +Node: Next Statement464647 +Node: Nextfile Statement467030 +Node: Exit Statement469719 +Node: Built-in Variables472122 +Node: User-modified473255 +Node: Auto-set481022 +Ref: Auto-set-Footnote-1497829 +Ref: Auto-set-Footnote-2498035 +Node: ARGC and ARGV498091 +Node: Pattern Action Summary502304 +Node: Arrays504734 +Node: Array Basics506063 +Node: Array Intro506907 +Ref: figure-array-elements508882 +Ref: Array Intro-Footnote-1511587 +Node: Reference to Elements511715 +Node: Assigning Elements514179 +Node: Array Example514670 +Node: Scanning an Array516624 +Node: Controlling Scanning519646 +Ref: Controlling Scanning-Footnote-1526102 +Node: Numeric Array Subscripts526418 +Node: Uninitialized Subscripts528602 +Node: Delete530221 +Ref: Delete-Footnote-1532973 +Node: Multidimensional533030 +Node: Multiscanning536125 +Node: Arrays of Arrays537716 +Node: Arrays Summary542484 +Node: Functions544577 +Node: Built-in545615 +Node: Calling Built-in546768 +Node: Boolean Functions548764 +Node: Numeric Functions549318 +Ref: Numeric Functions-Footnote-1553345 +Ref: Numeric Functions-Footnote-2553993 +Ref: Numeric Functions-Footnote-3554041 +Node: String Functions554313 +Ref: String Functions-Footnote-1579155 +Ref: String Functions-Footnote-2579283 +Ref: String Functions-Footnote-3579531 +Node: Gory Details579618 +Ref: table-sub-escapes581409 +Ref: table-sub-proposed582929 +Ref: table-posix-sub584293 +Ref: table-gensub-escapes585835 +Ref: Gory Details-Footnote-1586659 +Node: I/O Functions586813 +Ref: table-system-return-values593267 +Ref: I/O Functions-Footnote-1595348 +Ref: I/O Functions-Footnote-2595496 +Node: Time Functions595616 +Ref: Time Functions-Footnote-1606287 +Ref: Time Functions-Footnote-2606355 +Ref: Time Functions-Footnote-3606513 +Ref: Time Functions-Footnote-4606624 +Ref: Time Functions-Footnote-5606736 +Ref: Time Functions-Footnote-6606963 +Node: Bitwise Functions607229 +Ref: table-bitwise-ops607823 +Ref: Bitwise Functions-Footnote-1613887 +Ref: Bitwise Functions-Footnote-2614060 +Node: Type Functions614251 +Node: I18N Functions617671 +Node: User-defined619322 +Node: Definition Syntax620134 +Ref: Definition Syntax-Footnote-1625828 +Node: Function Example625899 +Ref: Function Example-Footnote-1628821 +Node: Function Calling628843 +Node: Calling A Function629431 +Node: Variable Scope630389 +Node: Pass By Value/Reference633383 +Node: Function Caveats636027 +Ref: Function Caveats-Footnote-1638074 +Node: Return Statement638194 +Node: Dynamic Typing641173 +Node: Indirect Calls642103 +Node: Functions Summary653030 +Node: Library Functions655735 +Ref: Library Functions-Footnote-1659342 +Ref: Library Functions-Footnote-2659485 +Node: Library Names659656 +Ref: Library Names-Footnote-1663323 +Ref: Library Names-Footnote-2663546 +Node: General Functions663632 +Node: Strtonum Function664814 +Node: Assert Function667836 +Node: Round Function671162 +Node: Cliff Random Function672702 +Node: Ordinal Functions673718 +Ref: Ordinal Functions-Footnote-1676781 +Ref: Ordinal Functions-Footnote-2677033 +Node: Join Function677243 +Ref: Join Function-Footnote-1679013 +Node: Getlocaltime Function679213 +Node: Readfile Function682955 +Node: Shell Quoting684932 +Node: Isnumeric Function686360 +Node: Data File Management687748 +Node: Filetrans Function688380 +Node: Rewind Function692476 +Node: File Checking694385 +Ref: File Checking-Footnote-1695719 +Node: Empty Files695920 +Node: Ignoring Assigns697899 +Node: Getopt Function699449 +Ref: Getopt Function-Footnote-1714746 +Node: Passwd Functions714946 +Ref: Passwd Functions-Footnote-1723785 +Node: Group Functions723873 +Ref: Group Functions-Footnote-1731771 +Node: Walking Arrays731978 +Node: Library Functions Summary734986 +Node: Library Exercises736392 +Node: Sample Programs736857 +Node: Running Examples737627 +Node: Clones738355 +Node: Cut Program739579 +Node: Egrep Program749719 +Node: Id Program758720 +Node: Split Program768655 +Ref: Split Program-Footnote-1778548 +Node: Tee Program778721 +Node: Uniq Program781511 +Node: Wc Program789099 +Node: Bytes vs. Characters789486 +Node: Using extensions791034 +Node: wc program791788 +Node: Miscellaneous Programs796653 +Node: Dupword Program797866 +Node: Alarm Program799896 +Node: Translate Program804751 +Ref: Translate Program-Footnote-1809316 +Node: Labels Program809586 +Ref: Labels Program-Footnote-1812937 +Node: Word Sorting813021 +Node: History Sorting817093 +Node: Extract Program819318 +Node: Simple Sed827331 +Node: Igawk Program830405 +Ref: Igawk Program-Footnote-1844736 +Ref: Igawk Program-Footnote-2844938 +Ref: Igawk Program-Footnote-3845060 +Node: Anagram Program845175 +Node: Signature Program848237 +Node: Programs Summary849484 +Node: Programs Exercises850698 +Ref: Programs Exercises-Footnote-1854828 +Node: Advanced Features854914 +Node: Nondecimal Data857045 +Node: Boolean Typed Values858643 +Node: Array Sorting860524 +Node: Controlling Array Traversal861229 +Ref: Controlling Array Traversal-Footnote-1869597 +Node: Array Sorting Functions869715 +Ref: Array Sorting Functions-Footnote-1875626 +Node: Two-way I/O875822 +Ref: Two-way I/O-Footnote-1883548 +Ref: Two-way I/O-Footnote-2883735 +Node: TCP/IP Networking883817 +Node: Profiling886893 +Node: Extension Philosophy896202 +Node: Advanced Features Summary897681 +Node: Internationalization899696 +Node: I18N and L10N901370 +Node: Explaining gettext902057 +Ref: Explaining gettext-Footnote-1907949 +Ref: Explaining gettext-Footnote-2908134 +Node: Programmer i18n908299 +Ref: Programmer i18n-Footnote-1913248 +Node: Translator i18n913297 +Node: String Extraction914091 +Ref: String Extraction-Footnote-1915223 +Node: Printf Ordering915309 +Ref: Printf Ordering-Footnote-1918095 +Node: I18N Portability918159 +Ref: I18N Portability-Footnote-1920615 +Node: I18N Example920678 +Ref: I18N Example-Footnote-1923953 +Ref: I18N Example-Footnote-2924026 +Node: Gawk I18N924135 +Node: I18N Summary924757 +Node: Debugger926098 +Node: Debugging927098 +Node: Debugging Concepts927539 +Node: Debugging Terms929348 +Node: Awk Debugging931923 +Ref: Awk Debugging-Footnote-1932868 +Node: Sample Debugging Session933000 +Node: Debugger Invocation933534 +Node: Finding The Bug934920 +Node: List of Debugger Commands941394 +Node: Breakpoint Control942727 +Node: Debugger Execution Control946421 +Node: Viewing And Changing Data949783 +Node: Execution Stack953324 +Node: Debugger Info954961 +Node: Miscellaneous Debugger Commands959032 +Node: Readline Support964094 +Node: Limitations964990 +Node: Debugging Summary967544 +Node: Namespaces968823 +Node: Global Namespace969934 +Node: Qualified Names971332 +Node: Default Namespace972331 +Node: Changing The Namespace973072 +Node: Naming Rules974686 +Node: Internal Name Management976534 +Node: Namespace Example977576 +Node: Namespace And Features980138 +Node: Namespace Summary981573 +Node: Arbitrary Precision Arithmetic983050 +Node: Computer Arithmetic984537 +Ref: table-numeric-ranges988303 +Ref: table-floating-point-ranges988797 +Ref: Computer Arithmetic-Footnote-1989456 +Node: Math Definitions989513 +Ref: table-ieee-formats992489 +Node: MPFR features993057 +Node: MPFR On Parole993502 +Ref: MPFR On Parole-Footnote-1994331 +Node: MPFR Intro994486 +Node: FP Math Caution996125 +Ref: FP Math Caution-Footnote-1997197 +Node: Inexactness of computations997566 +Node: Inexact representation998597 +Node: Comparing FP Values999957 +Node: Errors accumulate1001198 +Node: Strange values1002654 +Ref: Strange values-Footnote-11005242 +Node: Getting Accuracy1005347 +Node: Try To Round1008057 +Node: Setting precision1008956 +Ref: table-predefined-precision-strings1009653 +Node: Setting the rounding mode1011484 +Ref: table-gawk-rounding-modes1011858 +Ref: Setting the rounding mode-Footnote-11015790 +Node: Arbitrary Precision Integers1015969 +Ref: Arbitrary Precision Integers-Footnote-11019144 +Node: Checking for MPFR1019293 +Node: POSIX Floating Point Problems1020767 +Ref: POSIX Floating Point Problems-Footnote-11025420 +Node: Floating point summary1025458 +Node: Dynamic Extensions1027648 +Node: Extension Intro1029201 +Node: Plugin License1030467 +Node: Extension Mechanism Outline1031264 +Ref: figure-load-extension1031703 +Ref: figure-register-new-function1033269 +Ref: figure-call-new-function1034362 +Node: Extension API Description1036425 +Node: Extension API Functions Introduction1038138 +Ref: table-api-std-headers1039974 +Node: General Data Types1044224 +Ref: General Data Types-Footnote-11052930 +Node: Memory Allocation Functions1053229 +Ref: Memory Allocation Functions-Footnote-11057730 +Node: Constructor Functions1057829 +Node: API Ownership of MPFR and GMP Values1061482 +Node: Registration Functions1063015 +Node: Extension Functions1063715 +Node: Exit Callback Functions1069037 +Node: Extension Version String1070287 +Node: Input Parsers1070950 +Node: Output Wrappers1083671 +Node: Two-way processors1088183 +Node: Printing Messages1090448 +Ref: Printing Messages-Footnote-11091619 +Node: Updating ERRNO1091772 +Node: Requesting Values1092511 +Ref: table-value-types-returned1093248 +Node: Accessing Parameters1094357 +Node: Symbol Table Access1095594 +Node: Symbol table by name1096106 +Ref: Symbol table by name-Footnote-11099131 +Node: Symbol table by cookie1099259 +Ref: Symbol table by cookie-Footnote-11103444 +Node: Cached values1103508 +Ref: Cached values-Footnote-11107044 +Node: Array Manipulation1107197 +Ref: Array Manipulation-Footnote-11108288 +Node: Array Data Types1108325 +Ref: Array Data Types-Footnote-11110983 +Node: Array Functions1111075 +Node: Flattening Arrays1115860 +Node: Creating Arrays1122836 +Node: Redirection API1127603 +Node: Extension API Variables1130436 +Node: Extension Versioning1131147 +Ref: gawk-api-version1131576 +Node: Extension GMP/MPFR Versioning1133308 +Node: Extension API Informational Variables1134936 +Node: Extension API Boilerplate1136009 +Node: Changes from API V11139983 +Node: Finding Extensions1141555 +Node: Extension Example1142114 +Node: Internal File Description1142912 +Node: Internal File Ops1146992 +Ref: Internal File Ops-Footnote-11158342 +Node: Using Internal File Ops1158482 +Ref: Using Internal File Ops-Footnote-11160865 +Node: Extension Samples1161139 +Node: Extension Sample File Functions1162668 +Node: Extension Sample Fnmatch1170317 +Node: Extension Sample Fork1171804 +Node: Extension Sample Inplace1173022 +Node: Extension Sample Ord1176648 +Node: Extension Sample Readdir1177484 +Ref: table-readdir-file-types1178373 +Node: Extension Sample Revout1179441 +Node: Extension Sample Rev2way1180030 +Node: Extension Sample Read write array1180770 +Node: Extension Sample Readfile1183935 +Node: Extension Sample Time1185030 +Node: Extension Sample API Tests1186782 +Node: gawkextlib1187274 +Node: Extension summary1190192 +Node: Extension Exercises1193894 +Node: Language History1195136 +Node: V7/SVR3.11196792 +Node: SVR41198944 +Node: POSIX1200378 +Node: BTL1201759 +Node: POSIX/GNU1202488 +Node: Feature History1208266 +Node: Common Extensions1225441 +Node: Ranges and Locales1226724 +Ref: Ranges and Locales-Footnote-11231340 +Ref: Ranges and Locales-Footnote-21231367 +Ref: Ranges and Locales-Footnote-31231602 +Node: Contributors1231825 +Node: History summary1237822 +Node: Installation1239202 +Node: Gawk Distribution1240146 +Node: Getting1240630 +Node: Extracting1241593 +Node: Distribution contents1243231 +Node: Unix Installation1250292 +Node: Quick Installation1251096 +Node: Compiling with MPFR1253516 +Node: Shell Startup Files1254206 +Node: Additional Configuration Options1255295 +Node: Configuration Philosophy1257610 +Node: Compiling from Git1260006 +Node: Building the Documentation1260561 +Node: Non-Unix Installation1261945 +Node: PC Installation1262405 +Node: PC Binary Installation1263243 +Node: PC Compiling1264116 +Node: PC Using1265233 +Node: Cygwin1268786 +Node: MSYS1270010 +Node: VMS Installation1270612 +Node: VMS Compilation1271331 +Ref: VMS Compilation-Footnote-11272560 +Node: VMS Dynamic Extensions1272618 +Node: VMS Installation Details1274303 +Node: VMS Running1276565 +Node: VMS GNV1280844 +Node: Bugs1281558 +Node: Bug definition1282470 +Node: Bug address1285406 +Node: Usenet1288594 +Node: Performance bugs1289783 +Node: Asking for help1292704 +Node: Maintainers1294671 +Node: Other Versions1295865 +Node: Installation summary1304135 +Node: Notes1305499 +Node: Compatibility Mode1306293 +Node: Additions1307075 +Node: Accessing The Source1308000 +Node: Adding Code1309437 +Node: New Ports1316252 +Node: Derived Files1320627 +Ref: Derived Files-Footnote-11326287 +Ref: Derived Files-Footnote-21326322 +Ref: Derived Files-Footnote-31326920 +Node: Future Extensions1327034 +Node: Implementation Limitations1327692 +Node: Extension Design1328902 +Node: Old Extension Problems1330046 +Ref: Old Extension Problems-Footnote-11331564 +Node: Extension New Mechanism Goals1331621 +Ref: Extension New Mechanism Goals-Footnote-11334985 +Node: Extension Other Design Decisions1335174 +Node: Extension Future Growth1337287 +Node: Notes summary1337893 +Node: Basic Concepts1339051 +Node: Basic High Level1339732 +Ref: figure-general-flow1340014 +Ref: figure-process-flow1340700 +Ref: Basic High Level-Footnote-11344002 +Node: Basic Data Typing1344187 +Node: Glossary1347515 +Node: Copying1379402 +Node: GNU Free Documentation License1416945 +Node: Index1442065 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index d5d3651f..0bc75bcf 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -59,7 +59,7 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH April, 2022 +@set UPDATE-MONTH June, 2022 @set VERSION 5.1 @set PATCHLEVEL 1 @@ -286,13 +286,13 @@ Fax: +1-617-542-2652 Email: <email>gnu@@gnu.org</email> URL: <ulink url="https://www.gnu.org">https://www.gnu.org/</ulink></literallayout> -<literallayout class="normal">Copyright © 1989, 1991, 1992, 1993, 1996–2005, 2007, 2009–2021 +<literallayout class="normal">Copyright © 1989, 1991, 1992, 1993, 1996–2005, 2007, 2009–2022 Free Software Foundation, Inc. All Rights Reserved.</literallayout> @end docbook @ifnotdocbook -Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2021 @* +Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2022 @* Free Software Foundation, Inc. @end ifnotdocbook @sp 2 @@ -926,7 +926,7 @@ particular records in a file and perform operations upon them. * Computer Arithmetic:: A quick intro to computer math. * Math Definitions:: Defining terms used. * MPFR features:: The MPFR features in @command{gawk}. -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. * FP Math Caution:: Things to know. * Inexactness of computations:: Floating point math is not exact. @@ -4199,10 +4199,16 @@ if @command{gawk} is not compiled to use the GNU MPFR and MP libraries As of @value{PVERSION} 5.2, the arbitrary precision arithmetic features in @command{gawk} -are @emph{deprecated}. They will be removed from @command{gawk} in 2024. +are ``on parole.'' +The primary maintainer is no longer willing to support this feature, +but another member of the development team has stepped up to take it over. +As long as this situation reamins stable, MPFR will be supported. If it +changes, the MPFR support will be removed from @command{gawk}. +@ignore If you use this option, @command{gawk} generates a warning message. Create the environment variable @env{GAWK_NO_MPFR_WARN} with an arbitrary value in order to silence the warning. +@end ignore @item @option{-n} @itemx @option{--non-decimal-data} @@ -4830,9 +4836,11 @@ in milliseconds. On systems that do not support the @code{usleep()} system call, the value is rounded up to an integral number of seconds. +@ignore @item GAWK_NO_MPFR_WARN Specifies that @command{gawk} should not print a deprecation warning when used with the @option{-M}/@option{--bignum} options. +@end ignore @item GAWK_READ_TIMEOUT Specifies the time, in milliseconds, for @command{gawk} to @@ -34176,21 +34184,24 @@ This @value{SECTION} briefly describes arbitrary-precision arithmetic in @command{gawk}. @menu -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. @end menu -@node MPFR Deprecated -@subsection Arbitrary Precision Arithmetic is Deprecated! +@node MPFR On Parole +@subsection Arbitrary Precision Arithmetic is On Parole! As of @value{PVERSION} 5.2, arbitrary precision arithmetic in @command{gawk} -is @emph{deprecated}. It will be removed from @command{gawk} in 2024. +is ``on parole.'' The primary @command{gawk} maintainer is no +longer maintaining it. Fortunately, a volunteer from the development +team has agreed to take it over. -This feature is deprecated because its inclusion was a mistake. It has +This feature is on parole because its inclusion was a mistake. It has led to endless bug reports, misuse of the feature and public abuse of the maintainer, for no real increased value. +@ignore If you use this feature, you should start working now to find a different toolset with which to accomplish your goals.@footnote{Of course, you can always continue to use a version of @command{gawk} that still supports @@ -34200,6 +34211,15 @@ If the feature is very important to you, then consider if you are willing to volunteer to maintain it, so that it can continue to be included in @command{gawk}. If that is the case, contact the maintainer to discuss it with him. You may do so by submitting a bug report. +@end ignore + +If the situation with support changes, the feature will be removed +from @command{gawk}. + +If you use this feature, you should consider finding a different +toolset with which to accomplish your goals.@footnote{Of course, you can +always continue to use a version of @command{gawk} that still supports +arbitrary precision arithmetic. It simply will be unmaintained.} @node MPFR Intro @subsection Arbitrary Precision Introduction diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 198f3700..7b4c2a8b 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -54,7 +54,7 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH April, 2022 +@set UPDATE-MONTH June, 2022 @set VERSION 5.1 @set PATCHLEVEL 1 @@ -281,13 +281,13 @@ Fax: +1-617-542-2652 Email: <email>gnu@@gnu.org</email> URL: <ulink url="https://www.gnu.org">https://www.gnu.org/</ulink></literallayout> -<literallayout class="normal">Copyright © 1989, 1991, 1992, 1993, 1996–2005, 2007, 2009–2021 +<literallayout class="normal">Copyright © 1989, 1991, 1992, 1993, 1996–2005, 2007, 2009–2022 Free Software Foundation, Inc. All Rights Reserved.</literallayout> @end docbook @ifnotdocbook -Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2021 @* +Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2022 @* Free Software Foundation, Inc. @end ifnotdocbook @sp 2 @@ -921,7 +921,7 @@ particular records in a file and perform operations upon them. * Computer Arithmetic:: A quick intro to computer math. * Math Definitions:: Defining terms used. * MPFR features:: The MPFR features in @command{gawk}. -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. * FP Math Caution:: Things to know. * Inexactness of computations:: Floating point math is not exact. @@ -4109,10 +4109,16 @@ if @command{gawk} is not compiled to use the GNU MPFR and MP libraries As of @value{PVERSION} 5.2, the arbitrary precision arithmetic features in @command{gawk} -are @emph{deprecated}. They will be removed from @command{gawk} in 2024. +are ``on parole.'' +The primary maintainer is no longer willing to support this feature, +but another member of the development team has stepped up to take it over. +As long as this situation reamins stable, MPFR will be supported. If it +changes, the MPFR support will be removed from @command{gawk}. +@ignore If you use this option, @command{gawk} generates a warning message. Create the environment variable @env{GAWK_NO_MPFR_WARN} with an arbitrary value in order to silence the warning. +@end ignore @item @option{-n} @itemx @option{--non-decimal-data} @@ -4696,9 +4702,11 @@ in milliseconds. On systems that do not support the @code{usleep()} system call, the value is rounded up to an integral number of seconds. +@ignore @item GAWK_NO_MPFR_WARN Specifies that @command{gawk} should not print a deprecation warning when used with the @option{-M}/@option{--bignum} options. +@end ignore @item GAWK_READ_TIMEOUT Specifies the time, in milliseconds, for @command{gawk} to @@ -33058,21 +33066,24 @@ This @value{SECTION} briefly describes arbitrary-precision arithmetic in @command{gawk}. @menu -* MPFR Deprecated:: MPFR features are deprecated! +* MPFR On Parole:: MPFR features are on parole! * MPFR Intro:: MPFR General introduction. @end menu -@node MPFR Deprecated -@subsection Arbitrary Precision Arithmetic is Deprecated! +@node MPFR On Parole +@subsection Arbitrary Precision Arithmetic is On Parole! As of @value{PVERSION} 5.2, arbitrary precision arithmetic in @command{gawk} -is @emph{deprecated}. It will be removed from @command{gawk} in 2024. +is ``on parole.'' The primary @command{gawk} maintainer is no +longer maintaining it. Fortunately, a volunteer from the development +team has agreed to take it over. -This feature is deprecated because its inclusion was a mistake. It has +This feature is on parole because its inclusion was a mistake. It has led to endless bug reports, misuse of the feature and public abuse of the maintainer, for no real increased value. +@ignore If you use this feature, you should start working now to find a different toolset with which to accomplish your goals.@footnote{Of course, you can always continue to use a version of @command{gawk} that still supports @@ -33082,6 +33093,15 @@ If the feature is very important to you, then consider if you are willing to volunteer to maintain it, so that it can continue to be included in @command{gawk}. If that is the case, contact the maintainer to discuss it with him. You may do so by submitting a bug report. +@end ignore + +If the situation with support changes, the feature will be removed +from @command{gawk}. + +If you use this feature, you should consider finding a different +toolset with which to accomplish your goals.@footnote{Of course, you can +always continue to use a version of @command{gawk} that still supports +arbitrary precision arithmetic. It simply will be unmaintained.} @node MPFR Intro @subsection Arbitrary Precision Introduction @@ -66,7 +66,9 @@ static void catchstackoverflow(int emergency, stackoverflow_context_t scp); #endif static void nostalgia(void) ATTRIBUTE_NORETURN; static void version(void) ATTRIBUTE_NORETURN; +#if 0 static void deprecate_mpfr(void); +#endif static void init_fds(void); static void init_groupset(void); static void save_argv(int, char **); @@ -1688,7 +1690,7 @@ parse_args(int argc, char **argv) #else warning(_("-M ignored: MPFR/GMP support not compiled in")); #endif - deprecate_mpfr(); + // deprecate_mpfr(); break; case 'P': @@ -1857,6 +1859,7 @@ set_current_namespace(const char *new_namespace) current_namespace = new_namespace; } +#if 0 /* deprecate_mpfr --- print long info about MPFR being deprecated */ static void @@ -1875,3 +1878,4 @@ deprecate_mpfr(void) warning(_("Use `export GAWK_NO_MPFR_WARN=1' to disable this warning.")); } } +#endif |