aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog101
1 files changed, 101 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index cc9a469c..0dab72a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,8 @@
<ctype.h> functions since those could rely on the locale.
(make_builtin): Adjust test for valid name to call the new
functions and return false instead of throwing a fatal error.
+ (make_old_builtin): Adjust test for valid name to call the new
+ function.
* awk.h (is_identchar): Move from here, ...
* awkgram.y (is_identchar): ... to here. This is safe, since
the locale is C during parsing the program.
@@ -81,6 +83,105 @@
* builtin.c (do_fflush): Make fflush() and fflush("") both
flush everything. See the comment in the code.
+2012-11-26 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awk.h (Node_old_ext_func, Op_old_ext_func): New enum values.
+ * configure.ac: Use -export-dynamic if supported for old extension
+ mechanism.
+ * eval.c (nodeytpes): Add Node_old_ext_func.
+ (optypetab): Add Op_old_ext_func.
+ * ext.c (make_old_ext_builtin): "New" function.
+ * interpret.h: Special case Op_old_ext_builtin. Add checks for
+ Node_old_ext_func.
+ * msg.c: Adjust placement of a comment.
+
+2012-05-02 John Haque <j.eh@mchsi.com>
+
+ * str_array.c (str_copy): Initialize next pointer in the linked list
+ to avoid memory corruption.
+ * int_array.c (int_copy): Ditto.
+
+2012-04-21 John Haque <j.eh@mchsi.com>
+
+ Shutdown routine for a dynamic extension.
+
+ * awk.h (SRCFILE): New field fini_func.
+ * ext.c (load_ext): Takes an additional argument to look up and
+ save the clean up routine in SRCFILE struct.
+ (INIT_FUNC, FINI_FUNC): Defines for default init and fini routine
+ names.
+ (do_ext): Use default for the name of the init or fini routine if
+ one is not supplied. Adjust call to load_ext().
+ (close_extensions): Execute fini routines.
+ * interpret.h (Op_at_exit): Call close_extensions().
+ * msg.c (gawk_exit): Ditto.
+ * debug.c (close_all): Ditto.
+ * main.c (main): Adjust call to load_ext().
+ * awkgram.y (tokentab): Specify 2nd and 3rd optional arguments
+ for the extension() built-in.
+
+ Unrelated:
+
+ * interpret.h (Op_arrayfor_init): Use assoc_length for array size.
+
+2012-04-19 John Haque <j.eh@mchsi.com>
+
+ Enhanced array interface to support transparent implementation
+ using external storage and ...
+
+ * awk.h (astore): Optional post-assignment store routine for
+ array subscripts.
+ (Op_subscript_assign): New opcode to support the store routine.
+ (alength): New array interface routine for array length.
+ (assoc_length): New macro.
+ (assoc_empty): Renamed from array_empty.
+ * awkgram.y (snode): Append Op_subscript_assign opcode if
+ (g)sub variable is an array element.
+ (mk_getline): Same for getline variable.
+ (mk_assignment): Same if assigning to an array element.
+ * field.c (set_element): Call store routine if needed.
+ * builtin.c (do_match): Ditto.
+ (do_length): Use length routine for array size.
+ * symbol.c (print_vars): Ditto.
+ * array.c (null_length): Default function for array length interface.
+ (asort_actual): Call store routine if defined.
+ (asort_actual, assoc_list): Use length routine for array size.
+ (null_array_func): Add length and store routine entries.
+ * str_array.c (str_array_func): Same.
+ * cint_array.c (cint_array_func): Same.
+ * int_array.c (int_array_func): Same.
+ * eval.c (optypetab): Add Op_subscript_assign.
+ * profile.c (pprint): Add case Op_subscript_assign.
+ * interpret.h (set_array, set_idx): New variables to keep track
+ of an array element with store routine.
+ (Op_sub_array, Op_subscript_lhs, Op_store_sub, Op_subscript_assign):
+ Add code to handle array store routine.
+ * debug.c (print_symbol, print_array, cmp_val, watchpoint_triggered,
+ initialize_watch_item): Use length routine for array size.
+
+ * awk.h (assoc_kind_t): New typedef for enum assoc_list_flags.
+ (sort_context_t): Renamed from SORT_CONTEXT.
+ * array.c (asort_actual, assoc_sort): Adjust.
+ * cint_array.c (cint_list, tree_list, leaf_list): Adjust.
+ * int_array.c (int_list): Adjust.
+ * str_array.c (str_list): Adjust.
+
+2012-04-18 John Haque <j.eh@mchsi.com>
+
+ * awk.h (atypeof, AFUNC): New macros.
+ (afunc_t): Renamed typedef from array_ptr.
+ * array.c (register_array_func, null_lookup): Use AFUNC macro
+ instead of hard-coded index for array functions.
+ (asort_actual): Unref null array elements before overwriting.
+ (force_array): Renamed from get_array.
+ (null_array): Renamed from init_array. Also initialize flags to 0.
+ (array_types): Renamed from atypes.
+ (num_array_types): Renamed from num_atypes.
+ * interpret.h (r_interpret): In case Op_sub_array, unref null array element.
+ * str_array.c (str_array_init): Reworked for (re)initialization of array.
+ * int_array.c (int_array_init): Ditto.
+ * cint_array.c (cint_array_init): Ditto.
+
2012-11-24 Arnold D. Robbins <arnold@skeeve.com>
Directory cleanup.