aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2022-02-09 07:39:36 +0200
committerArnold D. Robbins <arnold@skeeve.com>2022-02-09 07:39:36 +0200
commit8785cde2cb5e54790cc395cab1a35b1a685ee8c0 (patch)
tree2245cdacf79ddba6cec5ddd220b1e907a85c93d4 /doc
parent18213a779d239baf5e24ba52d77ba920f314ab7e (diff)
parent0b94b68387b85310b7104bb669d7b698e92888d2 (diff)
downloadegawk-8785cde2cb5e54790cc395cab1a35b1a685ee8c0.tar.gz
egawk-8785cde2cb5e54790cc395cab1a35b1a685ee8c0.tar.bz2
egawk-8785cde2cb5e54790cc395cab1a35b1a685ee8c0.zip
Merge branch 'gawk-5.1-stable'
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog9
-rw-r--r--doc/gawk.info666
-rw-r--r--doc/gawk.texi28
-rw-r--r--doc/gawktexi.in28
4 files changed, 396 insertions, 335 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 95515c3b..04bec844 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,13 @@
+2022-02-07 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Indirect Calls): Expand discussion of calling
+ built-in functions directly.
+ (POSIX Floating Point Problems): Add a note that the sign of
+ NaN values can vary.
+
2022-01-05 Arnold D. Robbins <arnold@skeeve.com>
- * gawktexi.ini (Indirect Calls): Use `the_function' everywhere.
+ * gawktexi.in (Indirect Calls): Use `the_function' everywhere.
Thanks to John Naman, <gawker@703n.com> for the report.
2021-12-10 Arnold D. Robbins <arnold@skeeve.com>
diff --git a/doc/gawk.info b/doc/gawk.info
index e11d3b06..0be3deca 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -15577,14 +15577,27 @@ Dynamic Extensions::). There are some limitations when calling built-in
functions indirectly, as follows.
* You cannot pass a regular expression constant to a built-in
- function through an indirect function call.(1) This applies to the
+ function through an indirect function call. This applies to the
'sub()', 'gsub()', 'gensub()', 'match()', 'split()' and
- 'patsplit()' functions.
+ 'patsplit()' functions. However, you can pass a strongly typed
+ regexp constant (*note Strong Regexp Constants::).
* If calling 'sub()' or 'gsub()', you may only pass two arguments,
since those functions are unusual in that they update their third
argument. This means that '$0' will be updated.
+ * You cannot indirectly call built-in functions that can take '$0' as
+ a default parameter; you must supply an argument instead. For
+ example, you must pass an argument to 'length()' if calling it
+ indirectly.
+
+ * Calling a built-in function indirectly with the wrong number of
+ arguments for that function causes a fatal error. For example,
+ calling 'length()' with two arguments. These errors are found at
+ runtime instead of when 'gawk' parses your program, since 'gawk'
+ doesn't know until runtime if you have passed the correct number of
+ arguments or not.
+
'gawk' does its best to make indirect function calls efficient. For
example, in the following case:
@@ -15593,11 +15606,6 @@ example, in the following case:
'gawk' looks up the actual function to call only once.
- ---------- Footnotes ----------
-
- (1) This may change in a future version; recheck the documentation
-that comes with your version of 'gawk' to see if it has.
-

File: gawk.info, Node: Functions Summary, Prev: Indirect Calls, Up: Functions
@@ -25278,6 +25286,13 @@ described: '+inf', '-inf', '+nan', or '-nan'. Similarly, in POSIX mode,
'gawk' prints the result of the system's C 'printf()' function using the
'%g' format string for the value, whatever that may be.
+ NOTE: The sign used for NaN values can vary! The result depends
+ upon both the underlying system architecture and the underlying
+ library used to format NaN values. In particular, it's possible to
+ get different results for the same function call depending upon
+ whether or not 'gawk' is running in MPFR mode ('-M') or not.
+ Caveat Emptor!
+
---------- Footnotes ----------
(1) You asked for it, you got it.
@@ -39013,325 +39028,324 @@ Ref: Function Caveats-Footnote-1637557
Node: Return Statement637677
Node: Dynamic Typing640656
Node: Indirect Calls641586
-Ref: Indirect Calls-Footnote-1651853
-Node: Functions Summary651981
-Node: Library Functions654686
-Ref: Library Functions-Footnote-1658293
-Ref: Library Functions-Footnote-2658436
-Node: Library Names658607
-Ref: Library Names-Footnote-1662274
-Ref: Library Names-Footnote-2662497
-Node: General Functions662583
-Node: Strtonum Function663765
-Node: Assert Function666787
-Node: Round Function670113
-Node: Cliff Random Function671653
-Node: Ordinal Functions672669
-Ref: Ordinal Functions-Footnote-1675732
-Ref: Ordinal Functions-Footnote-2675984
-Node: Join Function676194
-Ref: Join Function-Footnote-1677964
-Node: Getlocaltime Function678164
-Node: Readfile Function681906
-Node: Shell Quoting683883
-Node: Isnumeric Function685311
-Node: Data File Management686699
-Node: Filetrans Function687331
-Node: Rewind Function691427
-Node: File Checking693336
-Ref: File Checking-Footnote-1694670
-Node: Empty Files694871
-Node: Ignoring Assigns696850
-Node: Getopt Function698400
-Ref: Getopt Function-Footnote-1713697
-Node: Passwd Functions713897
-Ref: Passwd Functions-Footnote-1722736
-Node: Group Functions722824
-Ref: Group Functions-Footnote-1730722
-Node: Walking Arrays730929
-Node: Library Functions Summary733937
-Node: Library Exercises735343
-Node: Sample Programs735808
-Node: Running Examples736578
-Node: Clones737306
-Node: Cut Program738530
-Node: Egrep Program748670
-Node: Id Program757671
-Node: Split Program767606
-Ref: Split Program-Footnote-1777499
-Node: Tee Program777672
-Node: Uniq Program780462
-Node: Wc Program788050
-Node: Bytes vs. Characters788437
-Node: Using extensions789985
-Node: wc program790739
-Node: Miscellaneous Programs795604
-Node: Dupword Program796817
-Node: Alarm Program798847
-Node: Translate Program803702
-Ref: Translate Program-Footnote-1808267
-Node: Labels Program808537
-Ref: Labels Program-Footnote-1811888
-Node: Word Sorting811972
-Node: History Sorting816044
-Node: Extract Program818269
-Node: Simple Sed826282
-Node: Igawk Program829356
-Ref: Igawk Program-Footnote-1843687
-Ref: Igawk Program-Footnote-2843889
-Ref: Igawk Program-Footnote-3844011
-Node: Anagram Program844126
-Node: Signature Program847188
-Node: Programs Summary848435
-Node: Programs Exercises849649
-Ref: Programs Exercises-Footnote-1853779
-Node: Advanced Features853865
-Node: Nondecimal Data855996
-Node: Boolean Typed Values857594
-Node: Array Sorting859475
-Node: Controlling Array Traversal860180
-Ref: Controlling Array Traversal-Footnote-1868548
-Node: Array Sorting Functions868666
-Ref: Array Sorting Functions-Footnote-1874040
-Node: Two-way I/O874236
-Ref: Two-way I/O-Footnote-1881962
-Ref: Two-way I/O-Footnote-2882149
-Node: TCP/IP Networking882231
-Node: Profiling885307
-Node: Extension Philosophy894616
-Node: Advanced Features Summary896095
-Node: Internationalization898110
-Node: I18N and L10N899784
-Node: Explaining gettext900471
-Ref: Explaining gettext-Footnote-1906363
-Ref: Explaining gettext-Footnote-2906548
-Node: Programmer i18n906713
-Ref: Programmer i18n-Footnote-1911662
-Node: Translator i18n911711
-Node: String Extraction912505
-Ref: String Extraction-Footnote-1913637
-Node: Printf Ordering913723
-Ref: Printf Ordering-Footnote-1916509
-Node: I18N Portability916573
-Ref: I18N Portability-Footnote-1919029
-Node: I18N Example919092
-Ref: I18N Example-Footnote-1922367
-Ref: I18N Example-Footnote-2922440
-Node: Gawk I18N922549
-Node: I18N Summary923171
-Node: Debugger924512
-Node: Debugging925512
-Node: Debugging Concepts925953
-Node: Debugging Terms927762
-Node: Awk Debugging930337
-Ref: Awk Debugging-Footnote-1931282
-Node: Sample Debugging Session931414
-Node: Debugger Invocation931948
-Node: Finding The Bug933334
-Node: List of Debugger Commands939808
-Node: Breakpoint Control941141
-Node: Debugger Execution Control944835
-Node: Viewing And Changing Data948197
-Node: Execution Stack951738
-Node: Debugger Info953375
-Node: Miscellaneous Debugger Commands957446
-Node: Readline Support962508
-Node: Limitations963404
-Node: Debugging Summary965958
-Node: Namespaces967237
-Node: Global Namespace968348
-Node: Qualified Names969746
-Node: Default Namespace970745
-Node: Changing The Namespace971486
-Node: Naming Rules973100
-Node: Internal Name Management974948
-Node: Namespace Example975990
-Node: Namespace And Features978552
-Node: Namespace Summary979987
-Node: Arbitrary Precision Arithmetic981464
-Node: Computer Arithmetic982951
-Ref: table-numeric-ranges986717
-Ref: table-floating-point-ranges987211
-Ref: Computer Arithmetic-Footnote-1987870
-Node: Math Definitions987927
-Ref: table-ieee-formats990903
-Node: MPFR features991471
-Node: FP Math Caution993189
-Ref: FP Math Caution-Footnote-1994261
-Node: Inexactness of computations994630
-Node: Inexact representation995661
-Node: Comparing FP Values997021
-Node: Errors accumulate998262
-Node: Strange values999718
-Ref: Strange values-Footnote-11002306
-Node: Getting Accuracy1002411
-Node: Try To Round1005121
-Node: Setting precision1006020
-Ref: table-predefined-precision-strings1006717
-Node: Setting the rounding mode1008548
-Ref: table-gawk-rounding-modes1008922
-Ref: Setting the rounding mode-Footnote-11012854
-Node: Arbitrary Precision Integers1013033
-Ref: Arbitrary Precision Integers-Footnote-11016208
-Node: Checking for MPFR1016357
-Node: POSIX Floating Point Problems1017831
-Ref: POSIX Floating Point Problems-Footnote-11022116
-Node: Floating point summary1022154
-Node: Dynamic Extensions1024344
-Node: Extension Intro1025897
-Node: Plugin License1027163
-Node: Extension Mechanism Outline1027960
-Ref: figure-load-extension1028399
-Ref: figure-register-new-function1029965
-Ref: figure-call-new-function1031058
-Node: Extension API Description1033121
-Node: Extension API Functions Introduction1034834
-Ref: table-api-std-headers1036670
-Node: General Data Types1040920
-Ref: General Data Types-Footnote-11049626
-Node: Memory Allocation Functions1049925
-Ref: Memory Allocation Functions-Footnote-11054426
-Node: Constructor Functions1054525
-Node: API Ownership of MPFR and GMP Values1058178
-Node: Registration Functions1059491
-Node: Extension Functions1060191
-Node: Exit Callback Functions1065513
-Node: Extension Version String1066763
-Node: Input Parsers1067426
-Node: Output Wrappers1080147
-Node: Two-way processors1084659
-Node: Printing Messages1086924
-Ref: Printing Messages-Footnote-11088095
-Node: Updating ERRNO1088248
-Node: Requesting Values1088987
-Ref: table-value-types-returned1089724
-Node: Accessing Parameters1090833
-Node: Symbol Table Access1092070
-Node: Symbol table by name1092582
-Ref: Symbol table by name-Footnote-11095607
-Node: Symbol table by cookie1095735
-Ref: Symbol table by cookie-Footnote-11099920
-Node: Cached values1099984
-Ref: Cached values-Footnote-11103520
-Node: Array Manipulation1103673
-Ref: Array Manipulation-Footnote-11104764
-Node: Array Data Types1104801
-Ref: Array Data Types-Footnote-11107459
-Node: Array Functions1107551
-Node: Flattening Arrays1112049
-Node: Creating Arrays1119025
-Node: Redirection API1123792
-Node: Extension API Variables1126625
-Node: Extension Versioning1127336
-Ref: gawk-api-version1127765
-Node: Extension GMP/MPFR Versioning1129497
-Node: Extension API Informational Variables1131125
-Node: Extension API Boilerplate1132198
-Node: Changes from API V11136172
-Node: Finding Extensions1137744
-Node: Extension Example1138303
-Node: Internal File Description1139101
-Node: Internal File Ops1143181
-Ref: Internal File Ops-Footnote-11154531
-Node: Using Internal File Ops1154671
-Ref: Using Internal File Ops-Footnote-11157054
-Node: Extension Samples1157328
-Node: Extension Sample File Functions1158857
-Node: Extension Sample Fnmatch1166506
-Node: Extension Sample Fork1167993
-Node: Extension Sample Inplace1169211
-Node: Extension Sample Ord1172837
-Node: Extension Sample Readdir1173673
-Ref: table-readdir-file-types1174562
-Node: Extension Sample Revout1175630
-Node: Extension Sample Rev2way1176219
-Node: Extension Sample Read write array1176959
-Node: Extension Sample Readfile1178901
-Node: Extension Sample Time1179996
-Node: Extension Sample API Tests1181748
-Node: gawkextlib1182240
-Node: Extension summary1185158
-Node: Extension Exercises1188860
-Node: Language History1190102
-Node: V7/SVR3.11191758
-Node: SVR41193910
-Node: POSIX1195344
-Node: BTL1196725
-Node: POSIX/GNU1197454
-Node: Feature History1203232
-Node: Common Extensions1220407
-Node: Ranges and Locales1221690
-Ref: Ranges and Locales-Footnote-11226306
-Ref: Ranges and Locales-Footnote-21226333
-Ref: Ranges and Locales-Footnote-31226568
-Node: Contributors1226791
-Node: History summary1232788
-Node: Installation1234168
-Node: Gawk Distribution1235112
-Node: Getting1235596
-Node: Extracting1236559
-Node: Distribution contents1238197
-Node: Unix Installation1245258
-Node: Quick Installation1246062
-Node: Compiling with MPFR1248482
-Node: Shell Startup Files1249172
-Node: Additional Configuration Options1250261
-Node: Configuration Philosophy1252576
-Node: Compiling from Git1254972
-Node: Building the Documentation1255527
-Node: Non-Unix Installation1256911
-Node: PC Installation1257371
-Node: PC Binary Installation1258209
-Node: PC Compiling1259082
-Node: PC Using1260199
-Node: Cygwin1263752
-Node: MSYS1264976
-Node: VMS Installation1265578
-Node: VMS Compilation1266297
-Ref: VMS Compilation-Footnote-11267526
-Node: VMS Dynamic Extensions1267584
-Node: VMS Installation Details1269269
-Node: VMS Running1271531
-Node: VMS GNV1275810
-Node: Bugs1276524
-Node: Bug definition1277436
-Node: Bug address1280372
-Node: Usenet1283760
-Node: Performance bugs1284949
-Node: Asking for help1287870
-Node: Maintainers1289837
-Node: Other Versions1291031
-Node: Installation summary1299195
-Node: Notes1300559
-Node: Compatibility Mode1301353
-Node: Additions1302135
-Node: Accessing The Source1303060
-Node: Adding Code1304497
-Node: New Ports1310689
-Node: Derived Files1315064
-Ref: Derived Files-Footnote-11320724
-Ref: Derived Files-Footnote-21320759
-Ref: Derived Files-Footnote-31321357
-Node: Future Extensions1321471
-Node: Implementation Limitations1322129
-Node: Extension Design1323339
-Node: Old Extension Problems1324483
-Ref: Old Extension Problems-Footnote-11326001
-Node: Extension New Mechanism Goals1326058
-Ref: Extension New Mechanism Goals-Footnote-11329422
-Node: Extension Other Design Decisions1329611
-Node: Extension Future Growth1331724
-Node: Notes summary1332330
-Node: Basic Concepts1333488
-Node: Basic High Level1334169
-Ref: figure-general-flow1334451
-Ref: figure-process-flow1335137
-Ref: Basic High Level-Footnote-11338439
-Node: Basic Data Typing1338624
-Node: Glossary1341952
-Node: Copying1373839
-Node: GNU Free Documentation License1411382
-Node: Index1436502
+Node: Functions Summary652513
+Node: Library Functions655218
+Ref: Library Functions-Footnote-1658825
+Ref: Library Functions-Footnote-2658968
+Node: Library Names659139
+Ref: Library Names-Footnote-1662806
+Ref: Library Names-Footnote-2663029
+Node: General Functions663115
+Node: Strtonum Function664297
+Node: Assert Function667319
+Node: Round Function670645
+Node: Cliff Random Function672185
+Node: Ordinal Functions673201
+Ref: Ordinal Functions-Footnote-1676264
+Ref: Ordinal Functions-Footnote-2676516
+Node: Join Function676726
+Ref: Join Function-Footnote-1678496
+Node: Getlocaltime Function678696
+Node: Readfile Function682438
+Node: Shell Quoting684415
+Node: Isnumeric Function685843
+Node: Data File Management687231
+Node: Filetrans Function687863
+Node: Rewind Function691959
+Node: File Checking693868
+Ref: File Checking-Footnote-1695202
+Node: Empty Files695403
+Node: Ignoring Assigns697382
+Node: Getopt Function698932
+Ref: Getopt Function-Footnote-1714229
+Node: Passwd Functions714429
+Ref: Passwd Functions-Footnote-1723268
+Node: Group Functions723356
+Ref: Group Functions-Footnote-1731254
+Node: Walking Arrays731461
+Node: Library Functions Summary734469
+Node: Library Exercises735875
+Node: Sample Programs736340
+Node: Running Examples737110
+Node: Clones737838
+Node: Cut Program739062
+Node: Egrep Program749202
+Node: Id Program758203
+Node: Split Program768138
+Ref: Split Program-Footnote-1778031
+Node: Tee Program778204
+Node: Uniq Program780994
+Node: Wc Program788582
+Node: Bytes vs. Characters788969
+Node: Using extensions790517
+Node: wc program791271
+Node: Miscellaneous Programs796136
+Node: Dupword Program797349
+Node: Alarm Program799379
+Node: Translate Program804234
+Ref: Translate Program-Footnote-1808799
+Node: Labels Program809069
+Ref: Labels Program-Footnote-1812420
+Node: Word Sorting812504
+Node: History Sorting816576
+Node: Extract Program818801
+Node: Simple Sed826814
+Node: Igawk Program829888
+Ref: Igawk Program-Footnote-1844219
+Ref: Igawk Program-Footnote-2844421
+Ref: Igawk Program-Footnote-3844543
+Node: Anagram Program844658
+Node: Signature Program847720
+Node: Programs Summary848967
+Node: Programs Exercises850181
+Ref: Programs Exercises-Footnote-1854311
+Node: Advanced Features854397
+Node: Nondecimal Data856528
+Node: Boolean Typed Values858126
+Node: Array Sorting860007
+Node: Controlling Array Traversal860712
+Ref: Controlling Array Traversal-Footnote-1869080
+Node: Array Sorting Functions869198
+Ref: Array Sorting Functions-Footnote-1874572
+Node: Two-way I/O874768
+Ref: Two-way I/O-Footnote-1882494
+Ref: Two-way I/O-Footnote-2882681
+Node: TCP/IP Networking882763
+Node: Profiling885839
+Node: Extension Philosophy895148
+Node: Advanced Features Summary896627
+Node: Internationalization898642
+Node: I18N and L10N900316
+Node: Explaining gettext901003
+Ref: Explaining gettext-Footnote-1906895
+Ref: Explaining gettext-Footnote-2907080
+Node: Programmer i18n907245
+Ref: Programmer i18n-Footnote-1912194
+Node: Translator i18n912243
+Node: String Extraction913037
+Ref: String Extraction-Footnote-1914169
+Node: Printf Ordering914255
+Ref: Printf Ordering-Footnote-1917041
+Node: I18N Portability917105
+Ref: I18N Portability-Footnote-1919561
+Node: I18N Example919624
+Ref: I18N Example-Footnote-1922899
+Ref: I18N Example-Footnote-2922972
+Node: Gawk I18N923081
+Node: I18N Summary923703
+Node: Debugger925044
+Node: Debugging926044
+Node: Debugging Concepts926485
+Node: Debugging Terms928294
+Node: Awk Debugging930869
+Ref: Awk Debugging-Footnote-1931814
+Node: Sample Debugging Session931946
+Node: Debugger Invocation932480
+Node: Finding The Bug933866
+Node: List of Debugger Commands940340
+Node: Breakpoint Control941673
+Node: Debugger Execution Control945367
+Node: Viewing And Changing Data948729
+Node: Execution Stack952270
+Node: Debugger Info953907
+Node: Miscellaneous Debugger Commands957978
+Node: Readline Support963040
+Node: Limitations963936
+Node: Debugging Summary966490
+Node: Namespaces967769
+Node: Global Namespace968880
+Node: Qualified Names970278
+Node: Default Namespace971277
+Node: Changing The Namespace972018
+Node: Naming Rules973632
+Node: Internal Name Management975480
+Node: Namespace Example976522
+Node: Namespace And Features979084
+Node: Namespace Summary980519
+Node: Arbitrary Precision Arithmetic981996
+Node: Computer Arithmetic983483
+Ref: table-numeric-ranges987249
+Ref: table-floating-point-ranges987743
+Ref: Computer Arithmetic-Footnote-1988402
+Node: Math Definitions988459
+Ref: table-ieee-formats991435
+Node: MPFR features992003
+Node: FP Math Caution993721
+Ref: FP Math Caution-Footnote-1994793
+Node: Inexactness of computations995162
+Node: Inexact representation996193
+Node: Comparing FP Values997553
+Node: Errors accumulate998794
+Node: Strange values1000250
+Ref: Strange values-Footnote-11002838
+Node: Getting Accuracy1002943
+Node: Try To Round1005653
+Node: Setting precision1006552
+Ref: table-predefined-precision-strings1007249
+Node: Setting the rounding mode1009080
+Ref: table-gawk-rounding-modes1009454
+Ref: Setting the rounding mode-Footnote-11013386
+Node: Arbitrary Precision Integers1013565
+Ref: Arbitrary Precision Integers-Footnote-11016740
+Node: Checking for MPFR1016889
+Node: POSIX Floating Point Problems1018363
+Ref: POSIX Floating Point Problems-Footnote-11023016
+Node: Floating point summary1023054
+Node: Dynamic Extensions1025244
+Node: Extension Intro1026797
+Node: Plugin License1028063
+Node: Extension Mechanism Outline1028860
+Ref: figure-load-extension1029299
+Ref: figure-register-new-function1030865
+Ref: figure-call-new-function1031958
+Node: Extension API Description1034021
+Node: Extension API Functions Introduction1035734
+Ref: table-api-std-headers1037570
+Node: General Data Types1041820
+Ref: General Data Types-Footnote-11050526
+Node: Memory Allocation Functions1050825
+Ref: Memory Allocation Functions-Footnote-11055326
+Node: Constructor Functions1055425
+Node: API Ownership of MPFR and GMP Values1059078
+Node: Registration Functions1060391
+Node: Extension Functions1061091
+Node: Exit Callback Functions1066413
+Node: Extension Version String1067663
+Node: Input Parsers1068326
+Node: Output Wrappers1081047
+Node: Two-way processors1085559
+Node: Printing Messages1087824
+Ref: Printing Messages-Footnote-11088995
+Node: Updating ERRNO1089148
+Node: Requesting Values1089887
+Ref: table-value-types-returned1090624
+Node: Accessing Parameters1091733
+Node: Symbol Table Access1092970
+Node: Symbol table by name1093482
+Ref: Symbol table by name-Footnote-11096507
+Node: Symbol table by cookie1096635
+Ref: Symbol table by cookie-Footnote-11100820
+Node: Cached values1100884
+Ref: Cached values-Footnote-11104420
+Node: Array Manipulation1104573
+Ref: Array Manipulation-Footnote-11105664
+Node: Array Data Types1105701
+Ref: Array Data Types-Footnote-11108359
+Node: Array Functions1108451
+Node: Flattening Arrays1112949
+Node: Creating Arrays1119925
+Node: Redirection API1124692
+Node: Extension API Variables1127525
+Node: Extension Versioning1128236
+Ref: gawk-api-version1128665
+Node: Extension GMP/MPFR Versioning1130397
+Node: Extension API Informational Variables1132025
+Node: Extension API Boilerplate1133098
+Node: Changes from API V11137072
+Node: Finding Extensions1138644
+Node: Extension Example1139203
+Node: Internal File Description1140001
+Node: Internal File Ops1144081
+Ref: Internal File Ops-Footnote-11155431
+Node: Using Internal File Ops1155571
+Ref: Using Internal File Ops-Footnote-11157954
+Node: Extension Samples1158228
+Node: Extension Sample File Functions1159757
+Node: Extension Sample Fnmatch1167406
+Node: Extension Sample Fork1168893
+Node: Extension Sample Inplace1170111
+Node: Extension Sample Ord1173737
+Node: Extension Sample Readdir1174573
+Ref: table-readdir-file-types1175462
+Node: Extension Sample Revout1176530
+Node: Extension Sample Rev2way1177119
+Node: Extension Sample Read write array1177859
+Node: Extension Sample Readfile1179801
+Node: Extension Sample Time1180896
+Node: Extension Sample API Tests1182648
+Node: gawkextlib1183140
+Node: Extension summary1186058
+Node: Extension Exercises1189760
+Node: Language History1191002
+Node: V7/SVR3.11192658
+Node: SVR41194810
+Node: POSIX1196244
+Node: BTL1197625
+Node: POSIX/GNU1198354
+Node: Feature History1204132
+Node: Common Extensions1221307
+Node: Ranges and Locales1222590
+Ref: Ranges and Locales-Footnote-11227206
+Ref: Ranges and Locales-Footnote-21227233
+Ref: Ranges and Locales-Footnote-31227468
+Node: Contributors1227691
+Node: History summary1233688
+Node: Installation1235068
+Node: Gawk Distribution1236012
+Node: Getting1236496
+Node: Extracting1237459
+Node: Distribution contents1239097
+Node: Unix Installation1246158
+Node: Quick Installation1246962
+Node: Compiling with MPFR1249382
+Node: Shell Startup Files1250072
+Node: Additional Configuration Options1251161
+Node: Configuration Philosophy1253476
+Node: Compiling from Git1255872
+Node: Building the Documentation1256427
+Node: Non-Unix Installation1257811
+Node: PC Installation1258271
+Node: PC Binary Installation1259109
+Node: PC Compiling1259982
+Node: PC Using1261099
+Node: Cygwin1264652
+Node: MSYS1265876
+Node: VMS Installation1266478
+Node: VMS Compilation1267197
+Ref: VMS Compilation-Footnote-11268426
+Node: VMS Dynamic Extensions1268484
+Node: VMS Installation Details1270169
+Node: VMS Running1272431
+Node: VMS GNV1276710
+Node: Bugs1277424
+Node: Bug definition1278336
+Node: Bug address1281272
+Node: Usenet1284660
+Node: Performance bugs1285849
+Node: Asking for help1288770
+Node: Maintainers1290737
+Node: Other Versions1291931
+Node: Installation summary1300095
+Node: Notes1301459
+Node: Compatibility Mode1302253
+Node: Additions1303035
+Node: Accessing The Source1303960
+Node: Adding Code1305397
+Node: New Ports1311589
+Node: Derived Files1315964
+Ref: Derived Files-Footnote-11321624
+Ref: Derived Files-Footnote-21321659
+Ref: Derived Files-Footnote-31322257
+Node: Future Extensions1322371
+Node: Implementation Limitations1323029
+Node: Extension Design1324239
+Node: Old Extension Problems1325383
+Ref: Old Extension Problems-Footnote-11326901
+Node: Extension New Mechanism Goals1326958
+Ref: Extension New Mechanism Goals-Footnote-11330322
+Node: Extension Other Design Decisions1330511
+Node: Extension Future Growth1332624
+Node: Notes summary1333230
+Node: Basic Concepts1334388
+Node: Basic High Level1335069
+Ref: figure-general-flow1335351
+Ref: figure-process-flow1336037
+Ref: Basic High Level-Footnote-11339339
+Node: Basic Data Typing1339524
+Node: Glossary1342852
+Node: Copying1374739
+Node: GNU Free Documentation License1412282
+Node: Index1437402

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 730208a6..bfd1a00b 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -22281,16 +22281,28 @@ built-in functions indirectly, as follows.
@itemize @value{BULLET}
@item
You cannot pass a regular expression constant to a built-in function
-through an indirect function call.@footnote{This may change in a future
-version; recheck the documentation that comes with your version of
-@command{gawk} to see if it has.} This applies to the @code{sub()},
+through an indirect function call. This applies to the @code{sub()},
@code{gsub()}, @code{gensub()}, @code{match()}, @code{split()} and
-@code{patsplit()} functions.
+@code{patsplit()} functions. However, you can pass a strongly typed
+regexp constant (@pxref{Strong Regexp Constants}).
@item
If calling @code{sub()} or @code{gsub()}, you may only pass two arguments,
since those functions are unusual in that they update their third argument.
This means that @code{$0} will be updated.
+
+@item
+You cannot indirectly call built-in functions that can take @code{$0} as
+a default parameter; you must supply an argument instead. For example,
+you must pass an argument to @code{length()} if calling it indirectly.
+
+@item
+Calling a built-in function indirectly with the wrong number of arguments
+for that function causes a fatal error. For example, calling
+@code{length()} with two arguments. These errors are found at runtime
+instead of when @command{gawk} parses your program, since @command{gawk}
+doesn't know until runtime if you have passed the correct number of
+arguments or not.
@end itemize
@command{gawk} does its best to make indirect function calls efficient.
@@ -35284,6 +35296,14 @@ Similarly, in POSIX mode, @command{gawk} prints the result of
the system's C @code{printf()} function using the @code{%g} format string
for the value, whatever that may be.
+@quotation NOTE
+The sign used for NaN values can vary! The result depends upon both
+the underlying system architecture and the underlying library used to
+format NaN values. In particular, it's possible to get different results
+for the same function call depending upon whether or not @command{gawk}
+is running in MPFR mode (@option{-M}) or not. Caveat Emptor!
+@end quotation
+
@node Floating point summary
@section Summary
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 2a9321bc..66de1068 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -21193,16 +21193,28 @@ built-in functions indirectly, as follows.
@itemize @value{BULLET}
@item
You cannot pass a regular expression constant to a built-in function
-through an indirect function call.@footnote{This may change in a future
-version; recheck the documentation that comes with your version of
-@command{gawk} to see if it has.} This applies to the @code{sub()},
+through an indirect function call. This applies to the @code{sub()},
@code{gsub()}, @code{gensub()}, @code{match()}, @code{split()} and
-@code{patsplit()} functions.
+@code{patsplit()} functions. However, you can pass a strongly typed
+regexp constant (@pxref{Strong Regexp Constants}).
@item
If calling @code{sub()} or @code{gsub()}, you may only pass two arguments,
since those functions are unusual in that they update their third argument.
This means that @code{$0} will be updated.
+
+@item
+You cannot indirectly call built-in functions that can take @code{$0} as
+a default parameter; you must supply an argument instead. For example,
+you must pass an argument to @code{length()} if calling it indirectly.
+
+@item
+Calling a built-in function indirectly with the wrong number of arguments
+for that function causes a fatal error. For example, calling
+@code{length()} with two arguments. These errors are found at runtime
+instead of when @command{gawk} parses your program, since @command{gawk}
+doesn't know until runtime if you have passed the correct number of
+arguments or not.
@end itemize
@command{gawk} does its best to make indirect function calls efficient.
@@ -34127,6 +34139,14 @@ Similarly, in POSIX mode, @command{gawk} prints the result of
the system's C @code{printf()} function using the @code{%g} format string
for the value, whatever that may be.
+@quotation NOTE
+The sign used for NaN values can vary! The result depends upon both
+the underlying system architecture and the underlying library used to
+format NaN values. In particular, it's possible to get different results
+for the same function call depending upon whether or not @command{gawk}
+is running in MPFR mode (@option{-M}) or not. Caveat Emptor!
+@end quotation
+
@node Floating point summary
@section Summary