aboutsummaryrefslogtreecommitdiffstats
path: root/extension/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'extension/ChangeLog')
-rw-r--r--extension/ChangeLog38
1 files changed, 38 insertions, 0 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 03391534..1a0e34a6 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,5 +1,43 @@
2021-12-08 Andrew J. Schorr <aschorr@telemetry-investments.com>
+ * rwarray.c: Add new functions writeall and readall to implement
+ persistent state.
+ (write_backend): New helper function containing most of the logic
+ from do_writea. Note that we do not need to check nargs < 2 because
+ gawk will issue a fatal error if a function is called with fewer
+ than min_required_args. Clean up some minor issues with error
+ handling.
+ (do_writea): Grab the array argument and use write_backend to
+ do the rest of the work.
+ (do_writeall): Lookup SYMTAB and invoke write_backend.
+ (free_value): New function to free memory for data we end up ignoring
+ because the variables exist already.
+ (do_poke): Attempt to create variables that don't exist already or
+ are undefined.
+ (regular_array_handle): Wrapper around create_array.
+ (global_array_handle): Call create_array unless the variable exists
+ already and is an array with zero elements.
+ (read_global): New function used by readall to load global variables
+ from a file.
+ (read_one): New function to read a single array from a file.
+ (read_backend): New helper function containing most of the logic
+ from do_reada. Remove the superfluous nargs check. Read the file
+ prologue and then call read_global or read_one as appropriate to load
+ the data.
+ (do_reada): Grab the array argument and call read_backend with
+ read_one to load the data.
+ (do_readall): Call read_backend with read_global to load the data.
+ (read_array): Call read_elem with additional arg regular_array_handle.
+ (read_elem): Add a function argument controlling array creation to
+ pass down to read_value.
+ (read_value): Add a function argument to call for array creation
+ instead of calling create_array directly, since we may need to use
+ an existing array when populating global arrays in readall.
+ (func_table): Add writeall and readall.
+ * rwarray.3am: Document new functions writeall and readall.
+
+2021-12-08 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
* testext.c (test_array_create): New function to create an array
by name that enables testing whether an undefined variable can
be converted by the API into an array.