gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, feature/pma2, updated. gawk-4.1.0-4747-g37dbf039


From: Arnold Robbins
Subject: [SCM] gawk branch, feature/pma2, updated. gawk-4.1.0-4747-g37dbf039
Date: Tue, 14 Jun 2022 15:01:45 -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, feature/pma2 has been updated
       via  37dbf039eee81652d647aa2783f4ea4cb0266f52 (commit)
      from  b0774ab145fe4828e54da22e6deb850fcceafcf4 (commit)

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

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=37dbf039eee81652d647aa2783f4ea4cb0266f52

commit 37dbf039eee81652d647aa2783f4ea4cb0266f52
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Tue Jun 14 22:01:23 2022 +0300

    Add --disable-pma configure option and doc for it.

diff --git a/ChangeLog b/ChangeLog
index 0fc21389..6b63f855 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-06-14         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * main.c (main): Set gawk_name first thing, in case we fatal out
+       on pma_init.
+       * configure.ac: Add --disable-pma option.
+
 2022-06-13         Arnold D. Robbins     <arnold@skeeve.com>
 
        * main.c (main): If persistent memory not available and
diff --git a/configure b/configure
index 302392f7..8153103e 100755
--- a/configure
+++ b/configure
@@ -801,6 +801,7 @@ enable_silent_rules
 enable_lint
 enable_builtin_intdiv0
 enable_mpfr
+enable_pma
 enable_versioned_extension_dir
 enable_dependency_tracking
 enable_largefile
@@ -1458,6 +1459,8 @@ Optional Features:
   --enable-builtin-intdiv0
                           enable built-in intdiv0 function
   --disable-mpfr          do not check for MPFR
+  --disable-pma           do not build gawk with the persistent memory
+                          allocator
   --enable-versioned-extension-dir
                           use a versioned directory for extensions
   --enable-dependency-tracking
@@ -3663,6 +3666,18 @@ then :
 fi
 
 
+SKIP_PERSIST_MALLOC=no
+# Check whether --enable-pma was given.
+if test ${enable_pma+y}
+then :
+  enableval=$enable_pma; if test "$enableval" = no
+       then
+               SKIP_PERSIST_MALLOC=yes
+       fi
+
+fi
+
+
 EXTENSIONDIR=
 # Check whether --enable-versioned-extension-dir was given.
 if test ${enable_versioned_extension_dir+y}
@@ -12521,48 +12536,52 @@ printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h
 
 
 
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+use_persistent_malloc=no
+if test "$SKIP_PERSIST_MALLOC" = no
+then
+       ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
 if test "x$ac_cv_func_mmap" = xyes
 then :
 
 fi
 
-  ac_fn_c_check_func "$LINENO" "munmap" "ac_cv_func_munmap"
+       ac_fn_c_check_func "$LINENO" "munmap" "ac_cv_func_munmap"
 if test "x$ac_cv_func_munmap" = xyes
 then :
 
 fi
 
-  if test $ac_cv_func_mmap = yes && test $ac_cv_func_munmap = yes
-  then
+       if test $ac_cv_func_mmap = yes && test $ac_cv_func_munmap = yes
+       then
 
 printf "%s\n" "#define USE_PERSISTENT_MALLOC 1" >>confdefs.h
 
-       use_persistent_malloc=yes
-       case $host_os in
-       linux-*)
-               case $CC in
-               gcc | clang)
-                       LDFLAGS="${LDFLAGS} -no-pie"
-                       export LDFLAGS
+               use_persistent_malloc=yes
+               case $host_os in
+               linux-*)
+                       case $CC in
+                       gcc | clang)
+                               LDFLAGS="${LDFLAGS} -no-pie"
+                               export LDFLAGS
+                               ;;
+                       *)
+                               # tinycc and pcc don't support -no-pie flag
+                               # their executables are non-PIE automatically
+                               # so no need to do anything
+                               ;;
+                       esac
                        ;;
+               # Other OS's go here...
                *)
-                       # tinycc and pcc don't support -no-pie flag
-                       # their executables are non-PIE automatically
-                       # so no need to do anything
+                       # For now, play it safe
+                       use_persistent_malloc=no
                        ;;
                esac
-               ;;
-       # Other OS's go here...
-       *)
-               # For now, play it safe
+       else
                use_persistent_malloc=no
-               ;;
-       esac
-  else
-       use_persistent_malloc=no
-  fi
-   if test "$use_persistent_malloc" = "yes"; then
+       fi
+fi
+ if test "$use_persistent_malloc" = "yes"; then
   USE_PERSISTENT_MALLOC_TRUE=
   USE_PERSISTENT_MALLOC_FALSE='#'
 else
diff --git a/configure.ac b/configure.ac
index d35aaa09..80cee254 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,6 +74,15 @@ AC_ARG_ENABLE([mpfr],
        fi
 )
 
+SKIP_PERSIST_MALLOC=no
+AC_ARG_ENABLE([pma],
+       [AS_HELP_STRING([--disable-pma],[do not build gawk with the persistent 
memory allocator])],
+       if test "$enableval" = no
+       then
+               SKIP_PERSIST_MALLOC=yes
+       fi
+)
+
 EXTENSIONDIR=
 AC_ARG_ENABLE([versioned-extension-dir],
        [AS_HELP_STRING([--enable-versioned-extension-dir], [use a versioned 
directory for extensions])],
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7d3dcf55..ca89074e 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2022-06-13         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * gawktexi.in (Persistent  Memory): Document --disable-pma.
+
 2022-06-13         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawktexi.in (Persistent  Memory): New section.
diff --git a/doc/gawk.info b/doc/gawk.info
index a7ad205a..58d9a353 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -22139,8 +22139,8 @@ ephemeral system memory.
 'munmap()' system calls.  'gawk' must be compiled as a non-PIE (Position
 Independent Executable) binary, since the persistent store ends up
 holding pointers to functions held within the 'gawk' executable.  This
-also means that to use the feature, you must use the same executable
-from run to run.
+also means that to use the persistent memory, you must use the same
+executable from run to run.
 
    As of this writing, persistent memory has only been tested on
 GNU/Linux systems.  On others, your mileage may vary, and/or you may
@@ -22179,8 +22179,12 @@ and arrays, not the totality of 'gawk''s internal 
state.
    As noted earlier, support for persistent memory is _experimental_.
 If it becomes burdensome,(1) then the feature will be removed.
 
-   Following are articles and web links that provide more information
-about persistent memory and why it's useful in a scripting language like
+   You can disable the use of the persistent memory allocator in 'gawk'
+with the '--disable-pma' to the 'configure' command at the time that you
+are building 'gawk' (*note Unix Installation::).
+
+   Here are articles and web links that provide more information about
+persistent memory and why it's useful in a scripting language like
 'gawk'.
 
 <https://web.eecs.umich.edu/~tpkelly/pma/>
@@ -39330,244 +39334,244 @@ Ref: Two-way I/O-Footnote-2884143
 Node: TCP/IP Networking884225
 Node: Profiling887301
 Node: Persistent Memory896607
-Ref: Persistent Memory-Footnote-1900291
-Node: Extension Philosophy900418
-Node: Advanced Features Summary901905
-Node: Internationalization904077
-Node: I18N and L10N905751
-Node: Explaining gettext906438
-Ref: Explaining gettext-Footnote-1912330
-Ref: Explaining gettext-Footnote-2912515
-Node: Programmer i18n912680
-Ref: Programmer i18n-Footnote-1917629
-Node: Translator i18n917678
-Node: String Extraction918472
-Ref: String Extraction-Footnote-1919604
-Node: Printf Ordering919690
-Ref: Printf Ordering-Footnote-1922476
-Node: I18N Portability922540
-Ref: I18N Portability-Footnote-1924996
-Node: I18N Example925059
-Ref: I18N Example-Footnote-1928334
-Ref: I18N Example-Footnote-2928407
-Node: Gawk I18N928516
-Node: I18N Summary929138
-Node: Debugger930479
-Node: Debugging931479
-Node: Debugging Concepts931920
-Node: Debugging Terms933729
-Node: Awk Debugging936304
-Ref: Awk Debugging-Footnote-1937249
-Node: Sample Debugging Session937381
-Node: Debugger Invocation937915
-Node: Finding The Bug939301
-Node: List of Debugger Commands945775
-Node: Breakpoint Control947108
-Node: Debugger Execution Control950802
-Node: Viewing And Changing Data954164
-Node: Execution Stack957705
-Node: Debugger Info959342
-Node: Miscellaneous Debugger Commands963413
-Node: Readline Support968475
-Node: Limitations969371
-Node: Debugging Summary971925
-Node: Namespaces973204
-Node: Global Namespace974315
-Node: Qualified Names975713
-Node: Default Namespace976712
-Node: Changing The Namespace977453
-Node: Naming Rules979067
-Node: Internal Name Management980915
-Node: Namespace Example981957
-Node: Namespace And Features984519
-Node: Namespace Summary985954
-Node: Arbitrary Precision Arithmetic987431
-Node: Computer Arithmetic988918
-Ref: table-numeric-ranges992684
-Ref: table-floating-point-ranges993178
-Ref: Computer Arithmetic-Footnote-1993837
-Node: Math Definitions993894
-Ref: table-ieee-formats996870
-Node: MPFR features997438
-Node: MPFR Deprecated997884
-Ref: MPFR Deprecated-Footnote-1998814
-Node: MPFR Intro998969
-Node: FP Math Caution1000609
-Ref: FP Math Caution-Footnote-11001681
-Node: Inexactness of computations1002050
-Node: Inexact representation1003081
-Node: Comparing FP Values1004441
-Node: Errors accumulate1005682
-Node: Strange values1007138
-Ref: Strange values-Footnote-11009726
-Node: Getting Accuracy1009831
-Node: Try To Round1012541
-Node: Setting precision1013440
-Ref: table-predefined-precision-strings1014137
-Node: Setting the rounding mode1015968
-Ref: table-gawk-rounding-modes1016342
-Ref: Setting the rounding mode-Footnote-11020274
-Node: Arbitrary Precision Integers1020453
-Ref: Arbitrary Precision Integers-Footnote-11023628
-Node: Checking for MPFR1023777
-Node: POSIX Floating Point Problems1025251
-Ref: POSIX Floating Point Problems-Footnote-11029904
-Node: Floating point summary1029942
-Node: Dynamic Extensions1032132
-Node: Extension Intro1033685
-Node: Plugin License1034951
-Node: Extension Mechanism Outline1035748
-Ref: figure-load-extension1036187
-Ref: figure-register-new-function1037753
-Ref: figure-call-new-function1038846
-Node: Extension API Description1040909
-Node: Extension API Functions Introduction1042622
-Ref: table-api-std-headers1044458
-Node: General Data Types1048708
-Ref: General Data Types-Footnote-11057414
-Node: Memory Allocation Functions1057713
-Ref: Memory Allocation Functions-Footnote-11062214
-Node: Constructor Functions1062313
-Node: API Ownership of MPFR and GMP Values1065966
-Node: Registration Functions1067499
-Node: Extension Functions1068199
-Node: Exit Callback Functions1073521
-Node: Extension Version String1074771
-Node: Input Parsers1075434
-Node: Output Wrappers1088155
-Node: Two-way processors1092667
-Node: Printing Messages1094932
-Ref: Printing Messages-Footnote-11096103
-Node: Updating ERRNO1096256
-Node: Requesting Values1096995
-Ref: table-value-types-returned1097732
-Node: Accessing Parameters1098841
-Node: Symbol Table Access1100078
-Node: Symbol table by name1100590
-Ref: Symbol table by name-Footnote-11103615
-Node: Symbol table by cookie1103743
-Ref: Symbol table by cookie-Footnote-11107928
-Node: Cached values1107992
-Ref: Cached values-Footnote-11111528
-Node: Array Manipulation1111681
-Ref: Array Manipulation-Footnote-11112772
-Node: Array Data Types1112809
-Ref: Array Data Types-Footnote-11115467
-Node: Array Functions1115559
-Node: Flattening Arrays1120344
-Node: Creating Arrays1127320
-Node: Redirection API1132087
-Node: Extension API Variables1134920
-Node: Extension Versioning1135631
-Ref: gawk-api-version1136060
-Node: Extension GMP/MPFR Versioning1137792
-Node: Extension API Informational Variables1139420
-Node: Extension API Boilerplate1140493
-Node: Changes from API V11144467
-Node: Finding Extensions1146039
-Node: Extension Example1146598
-Node: Internal File Description1147396
-Node: Internal File Ops1151476
-Ref: Internal File Ops-Footnote-11162826
-Node: Using Internal File Ops1162966
-Ref: Using Internal File Ops-Footnote-11165349
-Node: Extension Samples1165623
-Node: Extension Sample File Functions1167152
-Node: Extension Sample Fnmatch1174801
-Node: Extension Sample Fork1176288
-Node: Extension Sample Inplace1177506
-Node: Extension Sample Ord1181132
-Node: Extension Sample Readdir1181968
-Ref: table-readdir-file-types1182857
-Node: Extension Sample Revout1183925
-Node: Extension Sample Rev2way1184514
-Node: Extension Sample Read write array1185254
-Node: Extension Sample Readfile1188419
-Node: Extension Sample Time1189514
-Node: Extension Sample API Tests1191266
-Node: gawkextlib1191758
-Node: Extension summary1194676
-Node: Extension Exercises1198378
-Node: Language History1199620
-Node: V7/SVR3.11201276
-Node: SVR41203428
-Node: POSIX1204862
-Node: BTL1206243
-Node: POSIX/GNU1206972
-Node: Feature History1212750
-Node: Common Extensions1229925
-Node: Ranges and Locales1231208
-Ref: Ranges and Locales-Footnote-11235824
-Ref: Ranges and Locales-Footnote-21235851
-Ref: Ranges and Locales-Footnote-31236086
-Node: Contributors1236309
-Node: History summary1242306
-Node: Installation1243686
-Node: Gawk Distribution1244630
-Node: Getting1245114
-Node: Extracting1246077
-Node: Distribution contents1247715
-Node: Unix Installation1254776
-Node: Quick Installation1255580
-Node: Compiling with MPFR1258000
-Node: Shell Startup Files1258690
-Node: Additional Configuration Options1259779
-Node: Configuration Philosophy1262094
-Node: Compiling from Git1264490
-Node: Building the Documentation1265045
-Node: Non-Unix Installation1266429
-Node: PC Installation1266889
-Node: PC Binary Installation1267727
-Node: PC Compiling1268600
-Node: PC Using1269717
-Node: Cygwin1273270
-Node: MSYS1274494
-Node: VMS Installation1275096
-Node: VMS Compilation1275815
-Ref: VMS Compilation-Footnote-11277044
-Node: VMS Dynamic Extensions1277102
-Node: VMS Installation Details1278787
-Node: VMS Running1281049
-Node: VMS GNV1285328
-Node: Bugs1286042
-Node: Bug definition1286954
-Node: Bug address1289890
-Node: Usenet1293078
-Node: Performance bugs1294267
-Node: Asking for help1297188
-Node: Maintainers1299155
-Node: Other Versions1300349
-Node: Installation summary1308619
-Node: Notes1309983
-Node: Compatibility Mode1310777
-Node: Additions1311559
-Node: Accessing The Source1312484
-Node: Adding Code1313921
-Node: New Ports1320736
-Node: Derived Files1325111
-Ref: Derived Files-Footnote-11330771
-Ref: Derived Files-Footnote-21330806
-Ref: Derived Files-Footnote-31331404
-Node: Future Extensions1331518
-Node: Implementation Limitations1332176
-Node: Extension Design1333386
-Node: Old Extension Problems1334530
-Ref: Old Extension Problems-Footnote-11336048
-Node: Extension New Mechanism Goals1336105
-Ref: Extension New Mechanism Goals-Footnote-11339469
-Node: Extension Other Design Decisions1339658
-Node: Extension Future Growth1341771
-Node: Notes summary1342377
-Node: Basic Concepts1343535
-Node: Basic High Level1344216
-Ref: figure-general-flow1344498
-Ref: figure-process-flow1345184
-Ref: Basic High Level-Footnote-11348486
-Node: Basic Data Typing1348671
-Node: Glossary1351999
-Node: Copying1383886
-Node: GNU Free Documentation License1421429
-Node: Index1446549
+Ref: Persistent Memory-Footnote-1900491
+Node: Extension Philosophy900618
+Node: Advanced Features Summary902105
+Node: Internationalization904277
+Node: I18N and L10N905951
+Node: Explaining gettext906638
+Ref: Explaining gettext-Footnote-1912530
+Ref: Explaining gettext-Footnote-2912715
+Node: Programmer i18n912880
+Ref: Programmer i18n-Footnote-1917829
+Node: Translator i18n917878
+Node: String Extraction918672
+Ref: String Extraction-Footnote-1919804
+Node: Printf Ordering919890
+Ref: Printf Ordering-Footnote-1922676
+Node: I18N Portability922740
+Ref: I18N Portability-Footnote-1925196
+Node: I18N Example925259
+Ref: I18N Example-Footnote-1928534
+Ref: I18N Example-Footnote-2928607
+Node: Gawk I18N928716
+Node: I18N Summary929338
+Node: Debugger930679
+Node: Debugging931679
+Node: Debugging Concepts932120
+Node: Debugging Terms933929
+Node: Awk Debugging936504
+Ref: Awk Debugging-Footnote-1937449
+Node: Sample Debugging Session937581
+Node: Debugger Invocation938115
+Node: Finding The Bug939501
+Node: List of Debugger Commands945975
+Node: Breakpoint Control947308
+Node: Debugger Execution Control951002
+Node: Viewing And Changing Data954364
+Node: Execution Stack957905
+Node: Debugger Info959542
+Node: Miscellaneous Debugger Commands963613
+Node: Readline Support968675
+Node: Limitations969571
+Node: Debugging Summary972125
+Node: Namespaces973404
+Node: Global Namespace974515
+Node: Qualified Names975913
+Node: Default Namespace976912
+Node: Changing The Namespace977653
+Node: Naming Rules979267
+Node: Internal Name Management981115
+Node: Namespace Example982157
+Node: Namespace And Features984719
+Node: Namespace Summary986154
+Node: Arbitrary Precision Arithmetic987631
+Node: Computer Arithmetic989118
+Ref: table-numeric-ranges992884
+Ref: table-floating-point-ranges993378
+Ref: Computer Arithmetic-Footnote-1994037
+Node: Math Definitions994094
+Ref: table-ieee-formats997070
+Node: MPFR features997638
+Node: MPFR Deprecated998084
+Ref: MPFR Deprecated-Footnote-1999014
+Node: MPFR Intro999169
+Node: FP Math Caution1000809
+Ref: FP Math Caution-Footnote-11001881
+Node: Inexactness of computations1002250
+Node: Inexact representation1003281
+Node: Comparing FP Values1004641
+Node: Errors accumulate1005882
+Node: Strange values1007338
+Ref: Strange values-Footnote-11009926
+Node: Getting Accuracy1010031
+Node: Try To Round1012741
+Node: Setting precision1013640
+Ref: table-predefined-precision-strings1014337
+Node: Setting the rounding mode1016168
+Ref: table-gawk-rounding-modes1016542
+Ref: Setting the rounding mode-Footnote-11020474
+Node: Arbitrary Precision Integers1020653
+Ref: Arbitrary Precision Integers-Footnote-11023828
+Node: Checking for MPFR1023977
+Node: POSIX Floating Point Problems1025451
+Ref: POSIX Floating Point Problems-Footnote-11030104
+Node: Floating point summary1030142
+Node: Dynamic Extensions1032332
+Node: Extension Intro1033885
+Node: Plugin License1035151
+Node: Extension Mechanism Outline1035948
+Ref: figure-load-extension1036387
+Ref: figure-register-new-function1037953
+Ref: figure-call-new-function1039046
+Node: Extension API Description1041109
+Node: Extension API Functions Introduction1042822
+Ref: table-api-std-headers1044658
+Node: General Data Types1048908
+Ref: General Data Types-Footnote-11057614
+Node: Memory Allocation Functions1057913
+Ref: Memory Allocation Functions-Footnote-11062414
+Node: Constructor Functions1062513
+Node: API Ownership of MPFR and GMP Values1066166
+Node: Registration Functions1067699
+Node: Extension Functions1068399
+Node: Exit Callback Functions1073721
+Node: Extension Version String1074971
+Node: Input Parsers1075634
+Node: Output Wrappers1088355
+Node: Two-way processors1092867
+Node: Printing Messages1095132
+Ref: Printing Messages-Footnote-11096303
+Node: Updating ERRNO1096456
+Node: Requesting Values1097195
+Ref: table-value-types-returned1097932
+Node: Accessing Parameters1099041
+Node: Symbol Table Access1100278
+Node: Symbol table by name1100790
+Ref: Symbol table by name-Footnote-11103815
+Node: Symbol table by cookie1103943
+Ref: Symbol table by cookie-Footnote-11108128
+Node: Cached values1108192
+Ref: Cached values-Footnote-11111728
+Node: Array Manipulation1111881
+Ref: Array Manipulation-Footnote-11112972
+Node: Array Data Types1113009
+Ref: Array Data Types-Footnote-11115667
+Node: Array Functions1115759
+Node: Flattening Arrays1120544
+Node: Creating Arrays1127520
+Node: Redirection API1132287
+Node: Extension API Variables1135120
+Node: Extension Versioning1135831
+Ref: gawk-api-version1136260
+Node: Extension GMP/MPFR Versioning1137992
+Node: Extension API Informational Variables1139620
+Node: Extension API Boilerplate1140693
+Node: Changes from API V11144667
+Node: Finding Extensions1146239
+Node: Extension Example1146798
+Node: Internal File Description1147596
+Node: Internal File Ops1151676
+Ref: Internal File Ops-Footnote-11163026
+Node: Using Internal File Ops1163166
+Ref: Using Internal File Ops-Footnote-11165549
+Node: Extension Samples1165823
+Node: Extension Sample File Functions1167352
+Node: Extension Sample Fnmatch1175001
+Node: Extension Sample Fork1176488
+Node: Extension Sample Inplace1177706
+Node: Extension Sample Ord1181332
+Node: Extension Sample Readdir1182168
+Ref: table-readdir-file-types1183057
+Node: Extension Sample Revout1184125
+Node: Extension Sample Rev2way1184714
+Node: Extension Sample Read write array1185454
+Node: Extension Sample Readfile1188619
+Node: Extension Sample Time1189714
+Node: Extension Sample API Tests1191466
+Node: gawkextlib1191958
+Node: Extension summary1194876
+Node: Extension Exercises1198578
+Node: Language History1199820
+Node: V7/SVR3.11201476
+Node: SVR41203628
+Node: POSIX1205062
+Node: BTL1206443
+Node: POSIX/GNU1207172
+Node: Feature History1212950
+Node: Common Extensions1230125
+Node: Ranges and Locales1231408
+Ref: Ranges and Locales-Footnote-11236024
+Ref: Ranges and Locales-Footnote-21236051
+Ref: Ranges and Locales-Footnote-31236286
+Node: Contributors1236509
+Node: History summary1242506
+Node: Installation1243886
+Node: Gawk Distribution1244830
+Node: Getting1245314
+Node: Extracting1246277
+Node: Distribution contents1247915
+Node: Unix Installation1254976
+Node: Quick Installation1255780
+Node: Compiling with MPFR1258200
+Node: Shell Startup Files1258890
+Node: Additional Configuration Options1259979
+Node: Configuration Philosophy1262294
+Node: Compiling from Git1264690
+Node: Building the Documentation1265245
+Node: Non-Unix Installation1266629
+Node: PC Installation1267089
+Node: PC Binary Installation1267927
+Node: PC Compiling1268800
+Node: PC Using1269917
+Node: Cygwin1273470
+Node: MSYS1274694
+Node: VMS Installation1275296
+Node: VMS Compilation1276015
+Ref: VMS Compilation-Footnote-11277244
+Node: VMS Dynamic Extensions1277302
+Node: VMS Installation Details1278987
+Node: VMS Running1281249
+Node: VMS GNV1285528
+Node: Bugs1286242
+Node: Bug definition1287154
+Node: Bug address1290090
+Node: Usenet1293278
+Node: Performance bugs1294467
+Node: Asking for help1297388
+Node: Maintainers1299355
+Node: Other Versions1300549
+Node: Installation summary1308819
+Node: Notes1310183
+Node: Compatibility Mode1310977
+Node: Additions1311759
+Node: Accessing The Source1312684
+Node: Adding Code1314121
+Node: New Ports1320936
+Node: Derived Files1325311
+Ref: Derived Files-Footnote-11330971
+Ref: Derived Files-Footnote-21331006
+Ref: Derived Files-Footnote-31331604
+Node: Future Extensions1331718
+Node: Implementation Limitations1332376
+Node: Extension Design1333586
+Node: Old Extension Problems1334730
+Ref: Old Extension Problems-Footnote-11336248
+Node: Extension New Mechanism Goals1336305
+Ref: Extension New Mechanism Goals-Footnote-11339669
+Node: Extension Other Design Decisions1339858
+Node: Extension Future Growth1341971
+Node: Notes summary1342577
+Node: Basic Concepts1343735
+Node: Basic High Level1344416
+Ref: figure-general-flow1344698
+Ref: figure-process-flow1345384
+Ref: Basic High Level-Footnote-11348686
+Node: Basic Data Typing1348871
+Node: Glossary1352199
+Node: Copying1384086
+Node: GNU Free Documentation License1421629
+Node: Index1446749
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index ca498193..585903e5 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -30964,19 +30964,21 @@ code, it will appear that way in the output.
 @section Preserving Data Between Runs
 
 Starting with @value{PVERSION} 5.2, @command{gawk} supports
-@dfn{persistent memory}.  This experimental feature stores the values of all 
of @command{gawk}'s
-variables and arrays in a large, sparse file in the filesystem.  When 
persistent memory
-is not in use (the normal case), @command{gawk}'s data resides in ephemeral 
system
-memory.
-
-Persistent memory is enabled on systems supporting the @code{mmap()} and 
@code{munmap()}
-system calls.  @command{gawk} must be compiled as a non-PIE (Position 
Independent Executable)
-binary, since the persistent store ends up holding pointers to functions held 
within
-the @command{gawk} executable.  This also means that to use the feature, you 
must use
-the same executable from run to run.
-
-As of this writing, persistent memory has only been tested on GNU/Linux 
systems. On others,
-your mileage may vary, and/or you may need to investigate how to make it work 
for you.
+@dfn{persistent memory}.  This experimental feature stores the values of
+all of @command{gawk}'s variables and arrays in a large, sparse file in
+the filesystem.  When persistent memory is not in use (the normal case),
+@command{gawk}'s data resides in ephemeral system memory.
+
+Persistent memory is enabled on systems supporting the @code{mmap()}
+and @code{munmap()} system calls.  @command{gawk} must be compiled as a
+non-PIE (Position Independent Executable) binary, since the persistent
+store ends up holding pointers to functions held within the @command{gawk}
+executable.  This also means that to use the persistent memory, you must
+use the same executable from run to run.
+
+As of this writing, persistent memory has only been tested on GNU/Linux
+systems. On others, your mileage may vary, and/or you may need to
+investigate how to make it work for you.
 
 To use persistent memory, follow these steps:
 
@@ -31024,7 +31026,11 @@ becomes burdensome,@footnote{Meaning, there are too 
many bug reports, or
 too many strange differences in behavior from when @command{gawk} is run
 normally.} then the feature will be removed.
 
-Following are articles and web links that provide more information
+You can disable the use of the persistent memory allocator in @command{gawk}
+with the @option{--disable-pma} to the @command{configure} command at the
+time that you are building @command{gawk} (@pxref{Unix Installation}).
+
+Here are articles and web links that provide more information
 about persistent memory and why it's useful in a scripting language
 like @command{gawk}.
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 74b2f65c..71eb44c0 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -29846,19 +29846,21 @@ code, it will appear that way in the output.
 @section Preserving Data Between Runs
 
 Starting with @value{PVERSION} 5.2, @command{gawk} supports
-@dfn{persistent memory}.  This experimental feature stores the values of all 
of @command{gawk}'s
-variables and arrays in a large, sparse file in the filesystem.  When 
persistent memory
-is not in use (the normal case), @command{gawk}'s data resides in ephemeral 
system
-memory.
-
-Persistent memory is enabled on systems supporting the @code{mmap()} and 
@code{munmap()}
-system calls.  @command{gawk} must be compiled as a non-PIE (Position 
Independent Executable)
-binary, since the persistent store ends up holding pointers to functions held 
within
-the @command{gawk} executable.  This also means that to use the feature, you 
must use
-the same executable from run to run.
-
-As of this writing, persistent memory has only been tested on GNU/Linux 
systems. On others,
-your mileage may vary, and/or you may need to investigate how to make it work 
for you.
+@dfn{persistent memory}.  This experimental feature stores the values of
+all of @command{gawk}'s variables and arrays in a large, sparse file in
+the filesystem.  When persistent memory is not in use (the normal case),
+@command{gawk}'s data resides in ephemeral system memory.
+
+Persistent memory is enabled on systems supporting the @code{mmap()}
+and @code{munmap()} system calls.  @command{gawk} must be compiled as a
+non-PIE (Position Independent Executable) binary, since the persistent
+store ends up holding pointers to functions held within the @command{gawk}
+executable.  This also means that to use the persistent memory, you must
+use the same executable from run to run.
+
+As of this writing, persistent memory has only been tested on GNU/Linux
+systems. On others, your mileage may vary, and/or you may need to
+investigate how to make it work for you.
 
 To use persistent memory, follow these steps:
 
@@ -29906,7 +29908,11 @@ becomes burdensome,@footnote{Meaning, there are too 
many bug reports, or
 too many strange differences in behavior from when @command{gawk} is run
 normally.} then the feature will be removed.
 
-Following are articles and web links that provide more information
+You can disable the use of the persistent memory allocator in @command{gawk}
+with the @option{--disable-pma} to the @command{configure} command at the
+time that you are building @command{gawk} (@pxref{Unix Installation}).
+
+Here are articles and web links that provide more information
 about persistent memory and why it's useful in a scripting language
 like @command{gawk}.
 
diff --git a/m4/ChangeLog b/m4/ChangeLog
index 48662e93..37aca2ef 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,7 +1,7 @@
 2022-06-14         Arnold D. Robbins     <arnold@skeeve.com>
 
        * pma.m4: Put -no-pie inside additional check for gcc and clang.
-       Tinycc and PCC are no-PIE anyway.
+       Tinycc and PCC are no-PIE anyway.  Add support for --disable-pma.
 
 2022-06-13         Arnold D. Robbins     <arnold@skeeve.com>
 
diff --git a/m4/pma.m4 b/m4/pma.m4
index 0b720da5..2c9bfc39 100644
--- a/m4/pma.m4
+++ b/m4/pma.m4
@@ -7,34 +7,38 @@ dnl Decide whether or not to use the persistent memory 
allocator
 
 AC_DEFUN([GAWK_USE_PERSISTENT_MALLOC],
 [
-  AC_CHECK_FUNC([mmap])
-  AC_CHECK_FUNC([munmap])
-  if test $ac_cv_func_mmap = yes && test $ac_cv_func_munmap = yes
-  then
-       AC_DEFINE(USE_PERSISTENT_MALLOC, 1, [Define to 1 if we can use the pma 
allocator])
-       use_persistent_malloc=yes
-       case $host_os in
-       linux-*)
-               case $CC in
-               gcc | clang)
-                       LDFLAGS="${LDFLAGS} -no-pie"
-                       export LDFLAGS
+use_persistent_malloc=no
+if test "$SKIP_PERSIST_MALLOC" = no
+then
+       AC_CHECK_FUNC([mmap])
+       AC_CHECK_FUNC([munmap])
+       if test $ac_cv_func_mmap = yes && test $ac_cv_func_munmap = yes
+       then
+               AC_DEFINE(USE_PERSISTENT_MALLOC, 1, [Define to 1 if we can use 
the pma allocator])
+               use_persistent_malloc=yes
+               case $host_os in
+               linux-*)
+                       case $CC in
+                       gcc | clang)
+                               LDFLAGS="${LDFLAGS} -no-pie"
+                               export LDFLAGS
+                               ;;
+                       *)
+                               # tinycc and pcc don't support -no-pie flag
+                               # their executables are non-PIE automatically
+                               # so no need to do anything
+                               ;;
+                       esac
                        ;;
+               # Other OS's go here...
                *)
-                       # tinycc and pcc don't support -no-pie flag
-                       # their executables are non-PIE automatically
-                       # so no need to do anything
+                       # For now, play it safe
+                       use_persistent_malloc=no
                        ;;
                esac
-               ;;
-       # Other OS's go here...
-       *)
-               # For now, play it safe
+       else
                use_persistent_malloc=no
-               ;;
-       esac
-  else
-       use_persistent_malloc=no
-  fi
-  AM_CONDITIONAL([USE_PERSISTENT_MALLOC], [test "$use_persistent_malloc" = 
"yes"])
+       fi
+fi
+AM_CONDITIONAL([USE_PERSISTENT_MALLOC], [test "$use_persistent_malloc" = 
"yes"])
 ])
diff --git a/main.c b/main.c
index 1abac2a7..b340328c 100644
--- a/main.c
+++ b/main.c
@@ -232,6 +232,8 @@ for PMA */
        const char *initial_locale;
 #endif
 
+       myname = gawk_name(argv[0]);
+
        if (pma_init(1, persist_file) < 0) {
                fatal(_("persistent memory allocator failed to initialize"));
        }
@@ -252,8 +254,6 @@ for PMA */
                mtrace();
 #endif /* HAVE_MTRACE */
 #endif /* HAVE_MCHECK_H */
-
-       myname = gawk_name(argv[0]);
        os_arg_fixup(&argc, &argv); /* emulate redirection, expand wildcards */
 
        if (argc < 2)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog       |   6 +
 configure       |  67 +++++---
 configure.ac    |   9 ++
 doc/ChangeLog   |   4 +
 doc/gawk.info   | 488 ++++++++++++++++++++++++++++----------------------------
 doc/gawk.texi   |  34 ++--
 doc/gawktexi.in |  34 ++--
 m4/ChangeLog    |   2 +-
 m4/pma.m4       |  54 ++++---
 main.c          |   4 +-
 10 files changed, 380 insertions(+), 322 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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