summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-01-22 23:39:45 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-01-22 23:39:45 -0800
commit9fa70b67bad4f95c22fa0e7a1148b88c82f375e1 (patch)
treefaeb229bbdf434c599a7ddaf2e09e8a48d32475a /ChangeLog
parent8ced687d65438141be8a1305fa4058a76fa3cc59 (diff)
downloadtxr-9fa70b67bad4f95c22fa0e7a1148b88c82f375e1.tar.gz
txr-9fa70b67bad4f95c22fa0e7a1148b88c82f375e1.tar.bz2
txr-9fa70b67bad4f95c22fa0e7a1148b88c82f375e1.zip
Changes to the list collection mechanism to improve
the extension of list operations over vectors and strings. * eval.c (do_eval_args, bindings_helper, op_each, subst_vars, supplement_op_syms, mapcarv, mappendv): Switch from list_collect_* macros to functions. * lib.c (copy_list): Switch from list_collect* macros to functions. Use list_collect_nconc for the final terminator. Doing a copy there with list_collect_append was actually wasteful, and now that list_collect_append calls copy_list in places, it triggered runaway recursion. (make_like): Bugfix: list_vector was used instead of vector_list. (to_seq, list_collect, list_collect_nconc, list_collect_append): New functions. (append2, appendv, nappend2, sub_list, replace_list, ldiff, remq, remql, remqual, remove_if, keep_if, proper_plist_to_alist, improper_plist_to_alist, split_str, split_str_set, tok_str, list_str, chain, andf, orf, lis_vector, mapcar, mapcon, mappend, merge, set_diff, env): Switch from list_collect* macros to functions. (replace_str, replace_vec): Allow single item replacement sequence. * lib.h (to_seq): Declared. (list_collect, list_collect_nconc, list_collect_append): Macros removed, replaced by function declarations of the same name. These functions return the new ptail since they cannot assign to it, requiring all uses to be updated to do the assignment of the returned value. (list_collect_decl): Use val rather than obj_t *. * match.c (vars_to_bindings, h_coll, subst_vars, extract_vars, extract_bindings, do_output_line, do_output, v_gather, v_collect): Switch from list_collect* macros to functions. * parser.y (o_elems_transform): Likewise. * regex.c (dv_compile_regex, regsub): Likewise. * txr.c (txr_main): Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog44
1 files changed, 43 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8b134c00..a01223a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,48 @@
2014-01-22 Kaz Kylheku <kaz@kylheku.com>
- Support function versions of if, and, or so that partial
+ Changes to the list collection mechanism to improve
+ the extension of list operations over vectors and strings.
+
+ * eval.c (do_eval_args, bindings_helper, op_each,
+ subst_vars, supplement_op_syms, mapcarv, mappendv): Switch from
+ list_collect_* macros to functions.
+
+ * lib.c (copy_list): Switch from list_collect* macros to functions.
+ Use list_collect_nconc for the final terminator. Doing a copy
+ there with list_collect_append was actually wasteful, and now
+ that list_collect_append calls copy_list in places, it triggered
+ runaway recursion.
+ (make_like): Bugfix: list_vector was used instead of vector_list.
+ (to_seq, list_collect, list_collect_nconc, list_collect_append): New
+ functions.
+ (append2, appendv, nappend2, sub_list, replace_list, ldiff, remq,
+ remql, remqual, remove_if, keep_if, proper_plist_to_alist,
+ improper_plist_to_alist, split_str, split_str_set, tok_str,
+ list_str, chain, andf, orf, lis_vector, mapcar, mapcon, mappend,
+ merge, set_diff, env): Switch from list_collect* macros to functions.
+ (replace_str, replace_vec): Allow single item replacement sequence.
+
+ * lib.h (to_seq): Declared.
+ (list_collect, list_collect_nconc, list_collect_append): Macros
+ removed, replaced by function declarations of the same name.
+ These functions return the new ptail since they cannot assign
+ to it, requiring all uses to be updated to do the assignment
+ of the returned value.
+ (list_collect_decl): Use val rather than obj_t *.
+
+ * match.c (vars_to_bindings, h_coll, subst_vars, extract_vars,
+ extract_bindings, do_output_line, do_output, v_gather, v_collect):
+ Switch from list_collect* macros to functions.
+
+ * parser.y (o_elems_transform): Likewise.
+
+ * regex.c (dv_compile_regex, regsub): Likewise.
+
+ * txr.c (txr_main): Likewise.
+
+2014-01-22 Kaz Kylheku <kaz@kylheku.com>
+
+ Support function versions of if, and, or so that partial
evaluation like (op or @1 42) or (op if (eq @1 foo) bar xyzzy)
is possible.