[Top][All Lists]

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

[SCM] gawk branch, master, updated. gawk-4.1.0-4831-gd59ea9ea

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-4831-gd59ea9ea
Date: Fri, 5 Aug 2022 06:27:04 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  d59ea9ea50b1daf21b246494ffbc5ab052abd539 (commit)
       via  5a4f80b82aa7691a02939db5199c1ae47b8e7649 (commit)
       via  5c367a81acd0e9ed222ce08edbb2bf4e7e0ee7de (commit)
       via  f2a2524997c8153d026080054ba5ae65587c1b69 (commit)
      from  9a66aa6f0a24bf65c35eb7daf85ee0b837de6d6a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit d59ea9ea50b1daf21b246494ffbc5ab052abd539
Author: Arnold D. Robbins <>
Date:   Fri Aug 5 13:26:42 2022 +0300

    Next test tarball.

diff --git a/configure b/configure
index 25e4e720..62c7d6d4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for GNU Awk 5.1.62.
+# Generated by GNU Autoconf 2.71 for GNU Awk 5.1.63.
 # Report bugs to <>.
@@ -611,8 +611,8 @@ MAKEFLAGS=
 # Identity of this package.
@@ -1374,7 +1374,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Awk 5.1.62 to adapt to many kinds of systems.
+\`configure' configures GNU Awk 5.1.63 to adapt to many kinds of systems.
 Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1445,7 +1445,7 @@ fi
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Awk 5.1.62:";;
+     short | recursive ) echo "Configuration of GNU Awk 5.1.63:";;
   cat <<\_ACEOF
@@ -1570,7 +1570,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Awk configure 5.1.62
+GNU Awk configure 5.1.63
 generated by GNU Autoconf 2.71
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2227,7 +2227,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
-It was created by GNU Awk $as_me 5.1.62, which was
+It was created by GNU Awk $as_me 5.1.63, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
   $ $0$ac_configure_args_raw
@@ -3521,7 +3521,7 @@ fi
 # Define the identity of the package.
- VERSION='5.1.62'
+ VERSION='5.1.63'
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -14349,7 +14349,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
-This file was extended by GNU Awk $as_me 5.1.62, which was
+This file was extended by GNU Awk $as_me 5.1.63, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
@@ -14419,7 +14419,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | 
sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-GNU Awk config.status 5.1.62
+GNU Awk config.status 5.1.63
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
diff --git a/ b/
index 6ae86e88..f4c59f88 100644
--- a/
+++ b/
@@ -23,7 +23,7 @@ dnl
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([GNU Awk],[5.1.62],[],[gawk])
+AC_INIT([GNU Awk],[5.1.63],[],[gawk])
 # This is a hack. Different versions of install on different systems
 # are just too different. Chuck it and use install-sh.
diff --git a/doc/ b/doc/
index 92e4c7a6..0b9579ea 100644
--- a/doc/
+++ b/doc/
@@ -22224,10 +22224,15 @@ information the persistent memory allocator will 
print.  'gawk' sets the
 default to one.  See the 'support/pma.c' source code to understand what
 the different verbosity levels are.
-     NOTE: Persistent memory and the use of MPFR (the '-M' option) don't
-     mix!  If you use '-M' then you will get a core dump on the second
-     'gawk' run.  This may eventually be fixed.  But then again, it may
-     not.
+     NOTE: If you use MPFR mode (the '-M' option) on the first run of a
+     program using persistent memory, you _must_ continue to use it on
+     all subsequent runs.  Similarly, if you don't use '-M' on the first
+     run, do not use it on any subsequent runs.
+     Mixing and matching MPFR mode and regular mode with the same
+     backing file will lead to strange results and/or core dumps.
+     'gawk' does not currently detect such a situation and may not do so
+     in the future either.
    Here are articles and web links that provide more information about
 persistent memory and why it's useful in a scripting language like
@@ -37766,7 +37771,7 @@ Index
 * Kahrs, Jürgen <1>:                     Contributors.        (line  71)
 * Kasal, Stepan:                         Acknowledgments.     (line  60)
 * Kelly, Terence:                        Persistent Memory.   (line  68)
-* Kelly, Terence <1>:                    Persistent Memory.   (line 101)
+* Kelly, Terence <1>:                    Persistent Memory.   (line 106)
 * Kelly, Terence <2>:                    Feature History.     (line 508)
 * Kenobi, Obi-Wan:                       Undocumented.        (line   6)
 * Kernighan, Brian:                      History.             (line  17)
@@ -39557,244 +39562,244 @@ Ref: Two-way I/O-Footnote-2884578
 Node: TCP/IP Networking884660
 Node: Profiling887736
 Node: Persistent Memory897042
-Ref: Persistent Memory-Footnote-1904279
-Node: Extension Philosophy904406
-Node: Advanced Features Summary905893
-Node: Internationalization908065
-Node: I18N and L10N909739
-Node: Explaining gettext910426
-Ref: Explaining gettext-Footnote-1916318
-Ref: Explaining gettext-Footnote-2916503
-Node: Programmer i18n916668
-Ref: Programmer i18n-Footnote-1921617
-Node: Translator i18n921666
-Node: String Extraction922460
-Ref: String Extraction-Footnote-1923592
-Node: Printf Ordering923678
-Ref: Printf Ordering-Footnote-1926464
-Node: I18N Portability926528
-Ref: I18N Portability-Footnote-1928984
-Node: I18N Example929047
-Ref: I18N Example-Footnote-1932322
-Ref: I18N Example-Footnote-2932395
-Node: Gawk I18N932504
-Node: I18N Summary933126
-Node: Debugger934467
-Node: Debugging935467
-Node: Debugging Concepts935908
-Node: Debugging Terms937717
-Node: Awk Debugging940292
-Ref: Awk Debugging-Footnote-1941237
-Node: Sample Debugging Session941369
-Node: Debugger Invocation941903
-Node: Finding The Bug943289
-Node: List of Debugger Commands949763
-Node: Breakpoint Control951096
-Node: Debugger Execution Control954790
-Node: Viewing And Changing Data958152
-Node: Execution Stack961693
-Node: Debugger Info963330
-Node: Miscellaneous Debugger Commands967401
-Node: Readline Support972463
-Node: Limitations973359
-Node: Debugging Summary975913
-Node: Namespaces977192
-Node: Global Namespace978303
-Node: Qualified Names979701
-Node: Default Namespace980700
-Node: Changing The Namespace981441
-Node: Naming Rules983055
-Node: Internal Name Management984903
-Node: Namespace Example985945
-Node: Namespace And Features988507
-Node: Namespace Summary989942
-Node: Arbitrary Precision Arithmetic991419
-Node: Computer Arithmetic992906
-Ref: table-numeric-ranges996672
-Ref: table-floating-point-ranges997166
-Ref: Computer Arithmetic-Footnote-1997825
-Node: Math Definitions997882
-Ref: table-ieee-formats1000858
-Node: MPFR features1001426
-Node: MPFR On Parole1001871
-Ref: MPFR On Parole-Footnote-11002700
-Node: MPFR Intro1002855
-Node: FP Math Caution1004535
-Ref: FP Math Caution-Footnote-11005607
-Node: Inexactness of computations1005976
-Node: Inexact representation1007007
-Node: Comparing FP Values1008367
-Node: Errors accumulate1009608
-Node: Strange values1011064
-Ref: Strange values-Footnote-11013652
-Node: Getting Accuracy1013757
-Node: Try To Round1016467
-Node: Setting precision1017366
-Ref: table-predefined-precision-strings1018063
-Node: Setting the rounding mode1019894
-Ref: table-gawk-rounding-modes1020268
-Ref: Setting the rounding mode-Footnote-11024200
-Node: Arbitrary Precision Integers1024379
-Ref: Arbitrary Precision Integers-Footnote-11027554
-Node: Checking for MPFR1027703
-Node: POSIX Floating Point Problems1029177
-Ref: POSIX Floating Point Problems-Footnote-11033830
-Node: Floating point summary1033868
-Node: Dynamic Extensions1036058
-Node: Extension Intro1037611
-Node: Plugin License1038877
-Node: Extension Mechanism Outline1039674
-Ref: figure-load-extension1040113
-Ref: figure-register-new-function1041679
-Ref: figure-call-new-function1042772
-Node: Extension API Description1044835
-Node: Extension API Functions Introduction1046548
-Ref: table-api-std-headers1048384
-Node: General Data Types1052634
-Ref: General Data Types-Footnote-11061340
-Node: Memory Allocation Functions1061639
-Ref: Memory Allocation Functions-Footnote-11066140
-Node: Constructor Functions1066239
-Node: API Ownership of MPFR and GMP Values1069892
-Node: Registration Functions1071425
-Node: Extension Functions1072125
-Node: Exit Callback Functions1077447
-Node: Extension Version String1078697
-Node: Input Parsers1079360
-Node: Output Wrappers1092081
-Node: Two-way processors1096593
-Node: Printing Messages1098858
-Ref: Printing Messages-Footnote-11100029
-Node: Updating ERRNO1100182
-Node: Requesting Values1100921
-Ref: table-value-types-returned1101658
-Node: Accessing Parameters1102767
-Node: Symbol Table Access1104004
-Node: Symbol table by name1104516
-Ref: Symbol table by name-Footnote-11107541
-Node: Symbol table by cookie1107669
-Ref: Symbol table by cookie-Footnote-11111854
-Node: Cached values1111918
-Ref: Cached values-Footnote-11115454
-Node: Array Manipulation1115607
-Ref: Array Manipulation-Footnote-11116698
-Node: Array Data Types1116735
-Ref: Array Data Types-Footnote-11119393
-Node: Array Functions1119485
-Node: Flattening Arrays1124270
-Node: Creating Arrays1131246
-Node: Redirection API1136013
-Node: Extension API Variables1138846
-Node: Extension Versioning1139557
-Ref: gawk-api-version1139986
-Node: Extension GMP/MPFR Versioning1141718
-Node: Extension API Informational Variables1143346
-Node: Extension API Boilerplate1144419
-Node: Changes from API V11148393
-Node: Finding Extensions1149965
-Node: Extension Example1150524
-Node: Internal File Description1151322
-Node: Internal File Ops1155402
-Ref: Internal File Ops-Footnote-11166752
-Node: Using Internal File Ops1166892
-Ref: Using Internal File Ops-Footnote-11169275
-Node: Extension Samples1169549
-Node: Extension Sample File Functions1171078
-Node: Extension Sample Fnmatch1178727
-Node: Extension Sample Fork1180214
-Node: Extension Sample Inplace1181432
-Node: Extension Sample Ord1185058
-Node: Extension Sample Readdir1185894
-Ref: table-readdir-file-types1186783
-Node: Extension Sample Revout1187851
-Node: Extension Sample Rev2way1188440
-Node: Extension Sample Read write array1189180
-Node: Extension Sample Readfile1192345
-Node: Extension Sample Time1193440
-Node: Extension Sample API Tests1195192
-Node: gawkextlib1195684
-Node: Extension summary1198602
-Node: Extension Exercises1202304
-Node: Language History1203546
-Node: V7/SVR3.11205202
-Node: SVR41207354
-Node: POSIX1208788
-Node: BTL1210169
-Node: POSIX/GNU1210898
-Node: Feature History1216804
-Node: Common Extensions1234543
-Node: Ranges and Locales1235826
-Ref: Ranges and Locales-Footnote-11240442
-Ref: Ranges and Locales-Footnote-21240469
-Ref: Ranges and Locales-Footnote-31240704
-Node: Contributors1240927
-Node: History summary1246924
-Node: Installation1248304
-Node: Gawk Distribution1249248
-Node: Getting1249732
-Node: Extracting1250695
-Node: Distribution contents1252333
-Node: Unix Installation1259394
-Node: Quick Installation1260198
-Node: Compiling with MPFR1262618
-Node: Shell Startup Files1263308
-Node: Additional Configuration Options1264397
-Node: Configuration Philosophy1266712
-Node: Compiling from Git1269108
-Node: Building the Documentation1269663
-Node: Non-Unix Installation1271047
-Node: PC Installation1271507
-Node: PC Binary Installation1272348
-Node: PC Compiling1273221
-Node: PC Using1274327
-Node: Cygwin1277823
-Node: MSYS1279047
-Node: VMS Installation1279649
-Node: VMS Compilation1280368
-Ref: VMS Compilation-Footnote-11281597
-Node: VMS Dynamic Extensions1281655
-Node: VMS Installation Details1283340
-Node: VMS Running1285602
-Node: VMS GNV1289881
-Node: Bugs1290595
-Node: Bug definition1291507
-Node: Bug address1294443
-Node: Usenet1297631
-Node: Performance bugs1298820
-Node: Asking for help1301741
-Node: Maintainers1303708
-Node: Other Versions1304715
-Node: Installation summary1312985
-Node: Notes1314342
-Node: Compatibility Mode1315136
-Node: Additions1315918
-Node: Accessing The Source1316843
-Node: Adding Code1318280
-Node: New Ports1325095
-Node: Derived Files1329470
-Ref: Derived Files-Footnote-11335130
-Ref: Derived Files-Footnote-21335165
-Ref: Derived Files-Footnote-31335763
-Node: Future Extensions1335877
-Node: Implementation Limitations1336535
-Node: Extension Design1337745
-Node: Old Extension Problems1338889
-Ref: Old Extension Problems-Footnote-11340407
-Node: Extension New Mechanism Goals1340464
-Ref: Extension New Mechanism Goals-Footnote-11343828
-Node: Extension Other Design Decisions1344017
-Node: Extension Future Growth1346130
-Node: Notes summary1346736
-Node: Basic Concepts1347894
-Node: Basic High Level1348575
-Ref: figure-general-flow1348857
-Ref: figure-process-flow1349543
-Ref: Basic High Level-Footnote-11352845
-Node: Basic Data Typing1353030
-Node: Glossary1356358
-Node: Copying1388245
-Node: GNU Free Documentation License1425788
-Node: Index1450908
+Ref: Persistent Memory-Footnote-1904550
+Node: Extension Philosophy904677
+Node: Advanced Features Summary906164
+Node: Internationalization908336
+Node: I18N and L10N910010
+Node: Explaining gettext910697
+Ref: Explaining gettext-Footnote-1916589
+Ref: Explaining gettext-Footnote-2916774
+Node: Programmer i18n916939
+Ref: Programmer i18n-Footnote-1921888
+Node: Translator i18n921937
+Node: String Extraction922731
+Ref: String Extraction-Footnote-1923863
+Node: Printf Ordering923949
+Ref: Printf Ordering-Footnote-1926735
+Node: I18N Portability926799
+Ref: I18N Portability-Footnote-1929255
+Node: I18N Example929318
+Ref: I18N Example-Footnote-1932593
+Ref: I18N Example-Footnote-2932666
+Node: Gawk I18N932775
+Node: I18N Summary933397
+Node: Debugger934738
+Node: Debugging935738
+Node: Debugging Concepts936179
+Node: Debugging Terms937988
+Node: Awk Debugging940563
+Ref: Awk Debugging-Footnote-1941508
+Node: Sample Debugging Session941640
+Node: Debugger Invocation942174
+Node: Finding The Bug943560
+Node: List of Debugger Commands950034
+Node: Breakpoint Control951367
+Node: Debugger Execution Control955061
+Node: Viewing And Changing Data958423
+Node: Execution Stack961964
+Node: Debugger Info963601
+Node: Miscellaneous Debugger Commands967672
+Node: Readline Support972734
+Node: Limitations973630
+Node: Debugging Summary976184
+Node: Namespaces977463
+Node: Global Namespace978574
+Node: Qualified Names979972
+Node: Default Namespace980971
+Node: Changing The Namespace981712
+Node: Naming Rules983326
+Node: Internal Name Management985174
+Node: Namespace Example986216
+Node: Namespace And Features988778
+Node: Namespace Summary990213
+Node: Arbitrary Precision Arithmetic991690
+Node: Computer Arithmetic993177
+Ref: table-numeric-ranges996943
+Ref: table-floating-point-ranges997437
+Ref: Computer Arithmetic-Footnote-1998096
+Node: Math Definitions998153
+Ref: table-ieee-formats1001129
+Node: MPFR features1001697
+Node: MPFR On Parole1002142
+Ref: MPFR On Parole-Footnote-11002971
+Node: MPFR Intro1003126
+Node: FP Math Caution1004806
+Ref: FP Math Caution-Footnote-11005878
+Node: Inexactness of computations1006247
+Node: Inexact representation1007278
+Node: Comparing FP Values1008638
+Node: Errors accumulate1009879
+Node: Strange values1011335
+Ref: Strange values-Footnote-11013923
+Node: Getting Accuracy1014028
+Node: Try To Round1016738
+Node: Setting precision1017637
+Ref: table-predefined-precision-strings1018334
+Node: Setting the rounding mode1020165
+Ref: table-gawk-rounding-modes1020539
+Ref: Setting the rounding mode-Footnote-11024471
+Node: Arbitrary Precision Integers1024650
+Ref: Arbitrary Precision Integers-Footnote-11027825
+Node: Checking for MPFR1027974
+Node: POSIX Floating Point Problems1029448
+Ref: POSIX Floating Point Problems-Footnote-11034101
+Node: Floating point summary1034139
+Node: Dynamic Extensions1036329
+Node: Extension Intro1037882
+Node: Plugin License1039148
+Node: Extension Mechanism Outline1039945
+Ref: figure-load-extension1040384
+Ref: figure-register-new-function1041950
+Ref: figure-call-new-function1043043
+Node: Extension API Description1045106
+Node: Extension API Functions Introduction1046819
+Ref: table-api-std-headers1048655
+Node: General Data Types1052905
+Ref: General Data Types-Footnote-11061611
+Node: Memory Allocation Functions1061910
+Ref: Memory Allocation Functions-Footnote-11066411
+Node: Constructor Functions1066510
+Node: API Ownership of MPFR and GMP Values1070163
+Node: Registration Functions1071696
+Node: Extension Functions1072396
+Node: Exit Callback Functions1077718
+Node: Extension Version String1078968
+Node: Input Parsers1079631
+Node: Output Wrappers1092352
+Node: Two-way processors1096864
+Node: Printing Messages1099129
+Ref: Printing Messages-Footnote-11100300
+Node: Updating ERRNO1100453
+Node: Requesting Values1101192
+Ref: table-value-types-returned1101929
+Node: Accessing Parameters1103038
+Node: Symbol Table Access1104275
+Node: Symbol table by name1104787
+Ref: Symbol table by name-Footnote-11107812
+Node: Symbol table by cookie1107940
+Ref: Symbol table by cookie-Footnote-11112125
+Node: Cached values1112189
+Ref: Cached values-Footnote-11115725
+Node: Array Manipulation1115878
+Ref: Array Manipulation-Footnote-11116969
+Node: Array Data Types1117006
+Ref: Array Data Types-Footnote-11119664
+Node: Array Functions1119756
+Node: Flattening Arrays1124541
+Node: Creating Arrays1131517
+Node: Redirection API1136284
+Node: Extension API Variables1139117
+Node: Extension Versioning1139828
+Ref: gawk-api-version1140257
+Node: Extension GMP/MPFR Versioning1141989
+Node: Extension API Informational Variables1143617
+Node: Extension API Boilerplate1144690
+Node: Changes from API V11148664
+Node: Finding Extensions1150236
+Node: Extension Example1150795
+Node: Internal File Description1151593
+Node: Internal File Ops1155673
+Ref: Internal File Ops-Footnote-11167023
+Node: Using Internal File Ops1167163
+Ref: Using Internal File Ops-Footnote-11169546
+Node: Extension Samples1169820
+Node: Extension Sample File Functions1171349
+Node: Extension Sample Fnmatch1178998
+Node: Extension Sample Fork1180485
+Node: Extension Sample Inplace1181703
+Node: Extension Sample Ord1185329
+Node: Extension Sample Readdir1186165
+Ref: table-readdir-file-types1187054
+Node: Extension Sample Revout1188122
+Node: Extension Sample Rev2way1188711
+Node: Extension Sample Read write array1189451
+Node: Extension Sample Readfile1192616
+Node: Extension Sample Time1193711
+Node: Extension Sample API Tests1195463
+Node: gawkextlib1195955
+Node: Extension summary1198873
+Node: Extension Exercises1202575
+Node: Language History1203817
+Node: V7/SVR3.11205473
+Node: SVR41207625
+Node: POSIX1209059
+Node: BTL1210440
+Node: POSIX/GNU1211169
+Node: Feature History1217075
+Node: Common Extensions1234814
+Node: Ranges and Locales1236097
+Ref: Ranges and Locales-Footnote-11240713
+Ref: Ranges and Locales-Footnote-21240740
+Ref: Ranges and Locales-Footnote-31240975
+Node: Contributors1241198
+Node: History summary1247195
+Node: Installation1248575
+Node: Gawk Distribution1249519
+Node: Getting1250003
+Node: Extracting1250966
+Node: Distribution contents1252604
+Node: Unix Installation1259665
+Node: Quick Installation1260469
+Node: Compiling with MPFR1262889
+Node: Shell Startup Files1263579
+Node: Additional Configuration Options1264668
+Node: Configuration Philosophy1266983
+Node: Compiling from Git1269379
+Node: Building the Documentation1269934
+Node: Non-Unix Installation1271318
+Node: PC Installation1271778
+Node: PC Binary Installation1272619
+Node: PC Compiling1273492
+Node: PC Using1274598
+Node: Cygwin1278094
+Node: MSYS1279318
+Node: VMS Installation1279920
+Node: VMS Compilation1280639
+Ref: VMS Compilation-Footnote-11281868
+Node: VMS Dynamic Extensions1281926
+Node: VMS Installation Details1283611
+Node: VMS Running1285873
+Node: VMS GNV1290152
+Node: Bugs1290866
+Node: Bug definition1291778
+Node: Bug address1294714
+Node: Usenet1297902
+Node: Performance bugs1299091
+Node: Asking for help1302012
+Node: Maintainers1303979
+Node: Other Versions1304986
+Node: Installation summary1313256
+Node: Notes1314613
+Node: Compatibility Mode1315407
+Node: Additions1316189
+Node: Accessing The Source1317114
+Node: Adding Code1318551
+Node: New Ports1325366
+Node: Derived Files1329741
+Ref: Derived Files-Footnote-11335401
+Ref: Derived Files-Footnote-21335436
+Ref: Derived Files-Footnote-31336034
+Node: Future Extensions1336148
+Node: Implementation Limitations1336806
+Node: Extension Design1338016
+Node: Old Extension Problems1339160
+Ref: Old Extension Problems-Footnote-11340678
+Node: Extension New Mechanism Goals1340735
+Ref: Extension New Mechanism Goals-Footnote-11344099
+Node: Extension Other Design Decisions1344288
+Node: Extension Future Growth1346401
+Node: Notes summary1347007
+Node: Basic Concepts1348165
+Node: Basic High Level1348846
+Ref: figure-general-flow1349128
+Ref: figure-process-flow1349814
+Ref: Basic High Level-Footnote-11353116
+Node: Basic Data Typing1353301
+Node: Glossary1356629
+Node: Copying1388516
+Node: GNU Free Documentation License1426059
+Node: Index1451179
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 95564fb7..bf45332e 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -31156,10 +31156,15 @@ and error information the persistent memory allocator 
will print.
 source code to understand what the different verbosity levels are.
 @quotation NOTE
-Persistent memory and the use of MPFR (the @option{-M} option)
-don't mix! If you use @option{-M} then you will get a core dump on the
-second @command{gawk} run.  This may eventually be fixed. But then again,
-it may not.
+If you use MPFR mode (the @option{-M} option) on the first run
+of a program using persistent memory, you @emph{must} continue
+to use it on all subsequent runs.  Similarly, if you don't use @option{-M}
+on the first run, do not use it on any subsequent runs.
+Mixing and matching MPFR mode and regular mode with the same
+backing file will lead to strange results and/or core dumps.
+@command{gawk} does not currently detect such a situation and
+may not do so in the future either.
 @end quotation
 Here are articles and web links that provide more information about
diff --git a/pc/config.h b/pc/config.h
index ec2e3e24..59f3578c 100644
--- a/pc/config.h
+++ b/pc/config.h
@@ -373,7 +373,7 @@
 #define PACKAGE_NAME "GNU Awk"
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU Awk 5.1.62"
+#define PACKAGE_STRING "GNU Awk 5.1.63"
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gawk"
@@ -382,7 +382,7 @@
 #define PACKAGE_URL "";
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "5.1.62"
+#define PACKAGE_VERSION "5.1.63"
 /* Define to 1 if *printf supports %a format */
@@ -510,7 +510,7 @@
 /* Version number of package */
-#define VERSION "5.1.62"
+#define VERSION "5.1.63"
 /* Number of bits in a file offset, on hosts where this is settable. */

commit 5a4f80b82aa7691a02939db5199c1ae47b8e7649
Author: Arnold D. Robbins <>
Date:   Fri Aug 5 12:18:32 2022 +0300

    Squashed commit of the following:
    commit 49fb92a0349c267235ad8dd25cec12419219a001
    Merge: 3e90e77d 9a66aa6f
    Author: Arnold D. Robbins <>
    Date:   Fri Aug 5 12:12:13 2022 +0300
        Merge branch 'master' into feature/fix-mpfr-and-pma
    commit 3e90e77d014f625258f3c3254d0ec9a1c7110ca0
    Author: Arnold D. Robbins <>
    Date:   Wed Aug 3 22:22:27 2022 +0300
        Update ChangeLogs.
    commit fcbd7c65266a9085562e7bade5b64b5673b59fe6
    Merge: 15a9bb74 6a84bead
    Author: Arnold D. Robbins <>
    Date:   Wed Aug 3 22:18:54 2022 +0300
        Merge branch 'master' into feature/fix-mpfr-and-pma
    commit 15a9bb74868fdb8def1df9840b296d8dae8dde87
    Merge: d6ddf6b1 ee1c6608
    Author: Arnold D. Robbins <>
    Date:   Wed Aug 3 20:56:42 2022 +0300
        Merge branch 'master' into feature/fix-mpfr-and-pma
    commit d6ddf6b1abe98f2d39d758adc82a1fa474832dc0
    Author: Arnold D. Robbins <>
    Date:   Mon Aug 1 22:13:20 2022 +0300
        Fix pma and mpfr to work together.

diff --git a/ChangeLog b/ChangeLog
index e5d1c51a..903584d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2022-08-03         Arnold D. Robbins     <>
+       * mpfr.c (mpfr_mem_alloc, mpfr_mem_realloc, mpfr_mem_free):
+       New functions that just call malloc/realloc/free. Those are
+       redefined to the pma_* functions if using pma.
+       * awk.h (mpfr_mem_alloc, mpfr_mem_realloc, mpfr_mem_free):
+       Add declarations.
+       * main.c (main): Call mp_set_memory_functions with the new
+       functions as arguments.
 2022-08-03         Arnold D. Robbins     <>
        * builtin.c (format_tree): When collecting positional field widths or
diff --git a/awk.h b/awk.h
index 84fd714c..bbe817dd 100644
--- a/awk.h
+++ b/awk.h
@@ -1709,6 +1709,9 @@ extern NODE *mpg_node(unsigned int);
 extern const char *mpg_fmt(const char *, ...);
 extern int mpg_strtoui(mpz_ptr, char *, size_t, char **, int);
 extern void mpg_zero(NODE *n);
+extern void *mpfr_mem_alloc(size_t alloc_size);
+extern void *mpfr_mem_realloc(void *ptr, size_t old_size, size_t new_size);
+extern void mpfr_mem_free(void *ptr, size_t size);
 /* msg.c */
 extern void gawk_exit(int status);
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0e8da079..aa44ccd3 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2022-08-03         Arnold D. Robbins     <>
+       * (Persistent Memory): Document not to mix runs of
+       gawk with and without -M for the same backing file.
 2022-08-03         Arnold D. Robbins     <>
        * (Persistent Memory): Document that gawk's variables
diff --git a/doc/ b/doc/
index d319589e..09830ea4 100644
--- a/doc/
+++ b/doc/
@@ -30038,10 +30038,15 @@ and error information the persistent memory allocator 
will print.
 source code to understand what the different verbosity levels are.
 @quotation NOTE
-Persistent memory and the use of MPFR (the @option{-M} option)
-don't mix! If you use @option{-M} then you will get a core dump on the
-second @command{gawk} run.  This may eventually be fixed. But then again,
-it may not.
+If you use MPFR mode (the @option{-M} option) on the first run
+of a program using persistent memory, you @emph{must} continue
+to use it on all subsequent runs.  Similarly, if you don't use @option{-M}
+on the first run, do not use it on any subsequent runs.
+Mixing and matching MPFR mode and regular mode with the same
+backing file will lead to strange results and/or core dumps.
+@command{gawk} does not currently detect such a situation and
+may not do so in the future either.
 @end quotation
 Here are articles and web links that provide more information about
diff --git a/main.c b/main.c
index ca913844..7f00160b 100644
--- a/main.c
+++ b/main.c
@@ -251,6 +251,9 @@ for PMA */
        if (using_persistent_malloc)
                warning(_("persistent memory is not supported"));
+#ifdef HAVE_MPFR
+       mp_set_memory_functions(mpfr_mem_alloc, mpfr_mem_realloc, 
        /* do these checks early */
        if (getenv("TIDYMEM") != NULL)
diff --git a/mpfr.c b/mpfr.c
index 40833124..21bac6cd 100644
--- a/mpfr.c
+++ b/mpfr.c
@@ -1963,6 +1963,38 @@ mpfr_unset(NODE *n)
+ * Custom memory allocation functions for GMP / MPFR. We need these so that the
+ * persistent memory feature will also work with the -M option.
+ *
+ * These just call malloc/realloc/free; if we are using PMA then those are
+ * redefined as macros to point at the pma functions, so all should "just 
+ */
+/* mpfr_mem_alloc --- allocate memory */
+void *
+mpfr_mem_alloc(size_t alloc_size)
+       return malloc(alloc_size);
+/* mpfr_mem_realloc --- reallocate memory */
+void *
+mpfr_mem_realloc(void *ptr, size_t old_size, size_t new_size)
+       return realloc(ptr, new_size);
+/* mpfr_mem_free --- free memory */
+mpfr_mem_free(void *ptr, size_t size)
+       free(ptr);


Summary of changes:
 ChangeLog          |  10 ++
 awk.h              |   3 +
 configure          |  20 +--       |   2 +-
 doc/ChangeLog      |   5 +
 doc/      | 491 +++++++++++++++++++++++++++--------------------------
 doc/gawk.texi      |  13 +-
 doc/    |  13 +-
 doc/it/ChangeLog   |   4 +
 doc/it/ |  21 ++-
 main.c             |   3 +
 mpfr.c             |  32 ++++
 pc/config.h        |   6 +-
 13 files changed, 352 insertions(+), 271 deletions(-)


reply via email to

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