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-4745-gfdab60d8


From: Arnold Robbins
Subject: [SCM] gawk branch, feature/pma2, updated. gawk-4.1.0-4745-gfdab60d8
Date: Mon, 13 Jun 2022 15:59:17 -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  fdab60d8bd6d78159571d2c4e1c4d08e0684a0ab (commit)
      from  17887261a7537f2e25f6cca63e1d67a93f3a3e36 (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=fdab60d8bd6d78159571d2c4e1c4d08e0684a0ab

commit fdab60d8bd6d78159571d2c4e1c4d08e0684a0ab
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Mon Jun 13 22:59:00 2022 +0300

    Finish doc on persistent memory.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 631704b6..7d3dcf55 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,6 +1,6 @@
 2022-06-13         Arnold D. Robbins     <arnold@skeeve.com>
 
-       * gawktexi.in (Persistent  Memroy): New section.
+       * gawktexi.in (Persistent  Memory): New section.
 
 2022-06-10         Arnold D. Robbins     <arnold@skeeve.com>
 
diff --git a/doc/gawk.info b/doc/gawk.info
index 9ee267c6..a7ad205a 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -22129,24 +22129,24 @@ File: gawk.info,  Node: Persistent Memory,  Next: 
Extension Philosophy,  Prev: P
 12.7 Preserving Data Between Runs
 =================================
 
-Starting with version 5.2, 'gawk' supports a feature called "persistent
-memory."  This feature stores the values of all of 'gawk''s variables
-and arrays in a large, sparse file in the filesystem.  When this feature
-is not in use (the normal case), 'gawk''s data resides in ephemeral
-system memory.
+Starting with version 5.2, 'gawk' supports "persistent memory".  This
+experimental feature stores the values of all of 'gawk''s variables and
+arrays in a large, sparse file in the filesystem.  When persistent
+memory is not in use (the normal case), 'gawk''s data resides in
+ephemeral system memory.
 
    Persistent memory is enabled on systems supporting the 'mmap()' and
 'munmap()' system calls.  'gawk' must be compiled as a non-PIE (Position
-Independent Executable) binary, since the persisten store ends up
+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.
 
-   As of this writing, the feature 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.
+   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 the feature, follow these steps:
+   To use persistent memory, follow these steps:
 
   1. Create a new, empty sparse file of the desired size.  For example,
      four gigabytes.  On a GNU/Linux system, you can use the 'truncate'
@@ -22172,11 +22172,45 @@ investigate how to make it work for you.
      As shown, in subsequent runs using the same data file, the values
      of 'gawk''s variables are preserved.
 
-   FIXME: Add links here and more verbiage.
+   Interestingly, the program that you execute need not be the same from
+run to run; the persistent store only maintains the values of variables
+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
+'gawk'.
+
+<https://web.eecs.umich.edu/~tpkelly/pma/>
+     This is the canonical source for Terrence Kelly's Persistent Memory
+     Allocator (PMA).
+
+'Persistent Memory Programming on Conventional Hardware'
+     Terence Kelly, ACM 'Queue' magazine Vol.  17 No.  4 (July/Aug
+     2019), PDF (https://dl.acm.org/doi/pdf/10.1145/3358955.3358957),
+     HTML (https://queue.acm.org/detail.cfm?id=3358957).
+
+'Is Persistent Memory Persistent?'
+     Terence Kelly, ACM 'Queue_' magazine Vol.  18 No.  2 (March/April
+     2020), PDF (https://dl.acm.org/doi/pdf/10.1145/3400899.3400902),
+     HTML (https://queue.acm.org/detail.cfm?id=3400902).
+
+'Crashproofing the Original NoSQL Key/Value Store'
+     Terence Kelly, ACM 'Queue' magazine Vol.  19 No.  4 (July/Aug
+     2021), PDF (https://dl.acm.org/doi/pdf/10.1145/3487019.3487353),
+     HTML (https://queue.acm.org/detail.cfm?id=3487353).
+
+'Persistent Memory Allocation'
+     Terence Kelly, Zi Fan Tan, Jianan Li, and Haris Volos, ACM 'Queue'
+     magazine, Vol.  20 No.  2 (March/April 2022), HTML
+     (https://queue.acm.org/DrillBits7/).
+
+'Persistent Scripting'
+     Zi Fan Tan, Jianan Li, Haris Volos, and Terence Kelly, Non-Volatile
+     Memory Workshop (NVMW) 2022, <http://nvmw.ucsd.edu/program/>.
+
    ---------- Footnotes ----------
 
    (1) Meaning, there are too many bug reports, or too many strange
@@ -22259,6 +22293,10 @@ File: gawk.info,  Node: Advanced Features Summary,  
Prev: Extension Philosophy,
 
    * You can also just "pretty-print" the program.
 
+   * Persistent memory allows you to preserve the values of variables
+     and arrays between runs of 'gawk'.  This feature is currently
+     experimental.
+
    * New features should be developed using the extension mechanism if
      possible; they should be added to the core interpreter only as a
      last resort.
@@ -39292,244 +39330,244 @@ Ref: Two-way I/O-Footnote-2884143
 Node: TCP/IP Networking884225
 Node: Profiling887301
 Node: Persistent Memory896607
-Ref: Persistent Memory-Footnote-1898730
-Node: Extension Philosophy898857
-Node: Advanced Features Summary900344
-Node: Internationalization902359
-Node: I18N and L10N904033
-Node: Explaining gettext904720
-Ref: Explaining gettext-Footnote-1910612
-Ref: Explaining gettext-Footnote-2910797
-Node: Programmer i18n910962
-Ref: Programmer i18n-Footnote-1915911
-Node: Translator i18n915960
-Node: String Extraction916754
-Ref: String Extraction-Footnote-1917886
-Node: Printf Ordering917972
-Ref: Printf Ordering-Footnote-1920758
-Node: I18N Portability920822
-Ref: I18N Portability-Footnote-1923278
-Node: I18N Example923341
-Ref: I18N Example-Footnote-1926616
-Ref: I18N Example-Footnote-2926689
-Node: Gawk I18N926798
-Node: I18N Summary927420
-Node: Debugger928761
-Node: Debugging929761
-Node: Debugging Concepts930202
-Node: Debugging Terms932011
-Node: Awk Debugging934586
-Ref: Awk Debugging-Footnote-1935531
-Node: Sample Debugging Session935663
-Node: Debugger Invocation936197
-Node: Finding The Bug937583
-Node: List of Debugger Commands944057
-Node: Breakpoint Control945390
-Node: Debugger Execution Control949084
-Node: Viewing And Changing Data952446
-Node: Execution Stack955987
-Node: Debugger Info957624
-Node: Miscellaneous Debugger Commands961695
-Node: Readline Support966757
-Node: Limitations967653
-Node: Debugging Summary970207
-Node: Namespaces971486
-Node: Global Namespace972597
-Node: Qualified Names973995
-Node: Default Namespace974994
-Node: Changing The Namespace975735
-Node: Naming Rules977349
-Node: Internal Name Management979197
-Node: Namespace Example980239
-Node: Namespace And Features982801
-Node: Namespace Summary984236
-Node: Arbitrary Precision Arithmetic985713
-Node: Computer Arithmetic987200
-Ref: table-numeric-ranges990966
-Ref: table-floating-point-ranges991460
-Ref: Computer Arithmetic-Footnote-1992119
-Node: Math Definitions992176
-Ref: table-ieee-formats995152
-Node: MPFR features995720
-Node: MPFR Deprecated996166
-Ref: MPFR Deprecated-Footnote-1997096
-Node: MPFR Intro997251
-Node: FP Math Caution998891
-Ref: FP Math Caution-Footnote-1999963
-Node: Inexactness of computations1000332
-Node: Inexact representation1001363
-Node: Comparing FP Values1002723
-Node: Errors accumulate1003964
-Node: Strange values1005420
-Ref: Strange values-Footnote-11008008
-Node: Getting Accuracy1008113
-Node: Try To Round1010823
-Node: Setting precision1011722
-Ref: table-predefined-precision-strings1012419
-Node: Setting the rounding mode1014250
-Ref: table-gawk-rounding-modes1014624
-Ref: Setting the rounding mode-Footnote-11018556
-Node: Arbitrary Precision Integers1018735
-Ref: Arbitrary Precision Integers-Footnote-11021910
-Node: Checking for MPFR1022059
-Node: POSIX Floating Point Problems1023533
-Ref: POSIX Floating Point Problems-Footnote-11028186
-Node: Floating point summary1028224
-Node: Dynamic Extensions1030414
-Node: Extension Intro1031967
-Node: Plugin License1033233
-Node: Extension Mechanism Outline1034030
-Ref: figure-load-extension1034469
-Ref: figure-register-new-function1036035
-Ref: figure-call-new-function1037128
-Node: Extension API Description1039191
-Node: Extension API Functions Introduction1040904
-Ref: table-api-std-headers1042740
-Node: General Data Types1046990
-Ref: General Data Types-Footnote-11055696
-Node: Memory Allocation Functions1055995
-Ref: Memory Allocation Functions-Footnote-11060496
-Node: Constructor Functions1060595
-Node: API Ownership of MPFR and GMP Values1064248
-Node: Registration Functions1065781
-Node: Extension Functions1066481
-Node: Exit Callback Functions1071803
-Node: Extension Version String1073053
-Node: Input Parsers1073716
-Node: Output Wrappers1086437
-Node: Two-way processors1090949
-Node: Printing Messages1093214
-Ref: Printing Messages-Footnote-11094385
-Node: Updating ERRNO1094538
-Node: Requesting Values1095277
-Ref: table-value-types-returned1096014
-Node: Accessing Parameters1097123
-Node: Symbol Table Access1098360
-Node: Symbol table by name1098872
-Ref: Symbol table by name-Footnote-11101897
-Node: Symbol table by cookie1102025
-Ref: Symbol table by cookie-Footnote-11106210
-Node: Cached values1106274
-Ref: Cached values-Footnote-11109810
-Node: Array Manipulation1109963
-Ref: Array Manipulation-Footnote-11111054
-Node: Array Data Types1111091
-Ref: Array Data Types-Footnote-11113749
-Node: Array Functions1113841
-Node: Flattening Arrays1118626
-Node: Creating Arrays1125602
-Node: Redirection API1130369
-Node: Extension API Variables1133202
-Node: Extension Versioning1133913
-Ref: gawk-api-version1134342
-Node: Extension GMP/MPFR Versioning1136074
-Node: Extension API Informational Variables1137702
-Node: Extension API Boilerplate1138775
-Node: Changes from API V11142749
-Node: Finding Extensions1144321
-Node: Extension Example1144880
-Node: Internal File Description1145678
-Node: Internal File Ops1149758
-Ref: Internal File Ops-Footnote-11161108
-Node: Using Internal File Ops1161248
-Ref: Using Internal File Ops-Footnote-11163631
-Node: Extension Samples1163905
-Node: Extension Sample File Functions1165434
-Node: Extension Sample Fnmatch1173083
-Node: Extension Sample Fork1174570
-Node: Extension Sample Inplace1175788
-Node: Extension Sample Ord1179414
-Node: Extension Sample Readdir1180250
-Ref: table-readdir-file-types1181139
-Node: Extension Sample Revout1182207
-Node: Extension Sample Rev2way1182796
-Node: Extension Sample Read write array1183536
-Node: Extension Sample Readfile1186701
-Node: Extension Sample Time1187796
-Node: Extension Sample API Tests1189548
-Node: gawkextlib1190040
-Node: Extension summary1192958
-Node: Extension Exercises1196660
-Node: Language History1197902
-Node: V7/SVR3.11199558
-Node: SVR41201710
-Node: POSIX1203144
-Node: BTL1204525
-Node: POSIX/GNU1205254
-Node: Feature History1211032
-Node: Common Extensions1228207
-Node: Ranges and Locales1229490
-Ref: Ranges and Locales-Footnote-11234106
-Ref: Ranges and Locales-Footnote-21234133
-Ref: Ranges and Locales-Footnote-31234368
-Node: Contributors1234591
-Node: History summary1240588
-Node: Installation1241968
-Node: Gawk Distribution1242912
-Node: Getting1243396
-Node: Extracting1244359
-Node: Distribution contents1245997
-Node: Unix Installation1253058
-Node: Quick Installation1253862
-Node: Compiling with MPFR1256282
-Node: Shell Startup Files1256972
-Node: Additional Configuration Options1258061
-Node: Configuration Philosophy1260376
-Node: Compiling from Git1262772
-Node: Building the Documentation1263327
-Node: Non-Unix Installation1264711
-Node: PC Installation1265171
-Node: PC Binary Installation1266009
-Node: PC Compiling1266882
-Node: PC Using1267999
-Node: Cygwin1271552
-Node: MSYS1272776
-Node: VMS Installation1273378
-Node: VMS Compilation1274097
-Ref: VMS Compilation-Footnote-11275326
-Node: VMS Dynamic Extensions1275384
-Node: VMS Installation Details1277069
-Node: VMS Running1279331
-Node: VMS GNV1283610
-Node: Bugs1284324
-Node: Bug definition1285236
-Node: Bug address1288172
-Node: Usenet1291360
-Node: Performance bugs1292549
-Node: Asking for help1295470
-Node: Maintainers1297437
-Node: Other Versions1298631
-Node: Installation summary1306901
-Node: Notes1308265
-Node: Compatibility Mode1309059
-Node: Additions1309841
-Node: Accessing The Source1310766
-Node: Adding Code1312203
-Node: New Ports1319018
-Node: Derived Files1323393
-Ref: Derived Files-Footnote-11329053
-Ref: Derived Files-Footnote-21329088
-Ref: Derived Files-Footnote-31329686
-Node: Future Extensions1329800
-Node: Implementation Limitations1330458
-Node: Extension Design1331668
-Node: Old Extension Problems1332812
-Ref: Old Extension Problems-Footnote-11334330
-Node: Extension New Mechanism Goals1334387
-Ref: Extension New Mechanism Goals-Footnote-11337751
-Node: Extension Other Design Decisions1337940
-Node: Extension Future Growth1340053
-Node: Notes summary1340659
-Node: Basic Concepts1341817
-Node: Basic High Level1342498
-Ref: figure-general-flow1342780
-Ref: figure-process-flow1343466
-Ref: Basic High Level-Footnote-11346768
-Node: Basic Data Typing1346953
-Node: Glossary1350281
-Node: Copying1382168
-Node: GNU Free Documentation License1419711
-Node: Index1444831
+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
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 22949248..ca498193 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -31019,13 +31019,55 @@ Interestingly, the program that you execute need not 
be the same from run to run
 the persistent store only maintains the values of variables and arrays, not
 the totality of @command{gawk}'s internal state.
 
-FIXME: Add links here and more verbiage.
-
 As noted earlier, support for persistent memory is @emph{experimental}.  If it
 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
+about persistent memory and why it's useful in a scripting language
+like @command{gawk}.
+
+@table @asis
+@item @uref{https://web.eecs.umich.edu/~tpkelly/pma/}
+This is the canonical source for Terrence Kelly's Persistent
+Memory Allocator (PMA).
+
+@item @cite{Persistent Memory Programming on Conventional Hardware}
+Terence Kelly,
+ACM @cite{Queue} magazine Vol. 17 No. 4 (July/Aug 2019),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3358955.3358957, PDF}, 
+@uref{https://queue.acm.org/detail.cfm?id=3358957, HTML}.
+
+@item @cite{Is Persistent Memory Persistent?}
+Terence Kelly,
+ACM @cite{Queue_} magazine Vol. 18 No. 2 (March/April 2020),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3400899.3400902, PDF},
+@uref{https://queue.acm.org/detail.cfm?id=3400902, HTML}.
+
+@item @cite{Crashproofing the Original NoSQL Key/Value Store}
+Terence Kelly,
+ACM @cite{Queue} magazine Vol. 19 No. 4 (July/Aug 2021),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3487019.3487353, PDF},
+@uref{https://queue.acm.org/detail.cfm?id=3487353, HTML}.
+
+@item @cite{Persistent Memory Allocation}
+Terence Kelly, Zi Fan Tan, Jianan Li, and Haris Volos,
+ACM @cite{Queue} magazine, Vol. 20 No. 2 (March/April 2022),
+@uref{https://queue.acm.org/DrillBits7/, HTML}.
+
+@item @cite{Persistent Scripting}
+Zi Fan Tan, Jianan Li, Haris Volos, and Terence Kelly,
+Non-Volatile Memory Workshop (NVMW) 2022,
+@uref{http://nvmw.ucsd.edu/program/}.
+@c [NVMW URLs are not stable, so this one might change after the 2022 event is 
over]
+
+@c Persistent gawk (pm-gawk):
+@c https://github.com/ucy-coast/pmgawk
+@c https://coast.cs.ucy.ac.cy/projects/pmgawk/
+@end table
+
+
 @node Extension Philosophy
 @section Builtin Features versus Extensions
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 86562cef..74b2f65c 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -29901,13 +29901,55 @@ Interestingly, the program that you execute need not 
be the same from run to run
 the persistent store only maintains the values of variables and arrays, not
 the totality of @command{gawk}'s internal state.
 
-FIXME: Add links here and more verbiage.
-
 As noted earlier, support for persistent memory is @emph{experimental}.  If it
 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
+about persistent memory and why it's useful in a scripting language
+like @command{gawk}.
+
+@table @asis
+@item @uref{https://web.eecs.umich.edu/~tpkelly/pma/}
+This is the canonical source for Terrence Kelly's Persistent
+Memory Allocator (PMA).
+
+@item @cite{Persistent Memory Programming on Conventional Hardware}
+Terence Kelly,
+ACM @cite{Queue} magazine Vol. 17 No. 4 (July/Aug 2019),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3358955.3358957, PDF}, 
+@uref{https://queue.acm.org/detail.cfm?id=3358957, HTML}.
+
+@item @cite{Is Persistent Memory Persistent?}
+Terence Kelly,
+ACM @cite{Queue_} magazine Vol. 18 No. 2 (March/April 2020),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3400899.3400902, PDF},
+@uref{https://queue.acm.org/detail.cfm?id=3400902, HTML}.
+
+@item @cite{Crashproofing the Original NoSQL Key/Value Store}
+Terence Kelly,
+ACM @cite{Queue} magazine Vol. 19 No. 4 (July/Aug 2021),
+@uref{https://dl.acm.org/doi/pdf/10.1145/3487019.3487353, PDF},
+@uref{https://queue.acm.org/detail.cfm?id=3487353, HTML}.
+
+@item @cite{Persistent Memory Allocation}
+Terence Kelly, Zi Fan Tan, Jianan Li, and Haris Volos,
+ACM @cite{Queue} magazine, Vol. 20 No. 2 (March/April 2022),
+@uref{https://queue.acm.org/DrillBits7/, HTML}.
+
+@item @cite{Persistent Scripting}
+Zi Fan Tan, Jianan Li, Haris Volos, and Terence Kelly,
+Non-Volatile Memory Workshop (NVMW) 2022,
+@uref{http://nvmw.ucsd.edu/program/}.
+@c [NVMW URLs are not stable, so this one might change after the 2022 event is 
over]
+
+@c Persistent gawk (pm-gawk):
+@c https://github.com/ucy-coast/pmgawk
+@c https://coast.cs.ucy.ac.cy/projects/pmgawk/
+@end table
+
+
 @node Extension Philosophy
 @section Builtin Features versus Extensions
 

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

Summary of changes:
 doc/ChangeLog   |   2 +-
 doc/gawk.info   | 536 ++++++++++++++++++++++++++++++--------------------------
 doc/gawk.texi   |  46 ++++-
 doc/gawktexi.in |  46 ++++-
 4 files changed, 376 insertions(+), 254 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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