summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog34
1 files changed, 34 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 06302f34..325a6edb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,37 @@
+2012-04-07 Kaz Kylheku <kaz@kylheku.com>
+
+ Rounding out hash table functionality with lazy lists that
+ can walk table content in different ways.
+
+ * eval.c (op_dohash): Follow interface change of hash_next.
+ (eval_init): hash-keys, hash-values, hash-pairs and hash-alist
+ intrinsics introduced.
+
+ * filter.c (trie_compress): Follow interface change of hash_next.
+
+ * hash.c (hash_next): Silly interface which takes a pointer to
+ the iterator has changed to just take the iterator. The function
+ unambiguously returns nil when the iteration ends, so there
+ is no need to set the iterator variable to nil.
+ (maphash): Follows interface change of hash_next.
+ (hash_keys_lazy, hash_values_lazy, hash_pairs_lazy, hash_alist_lazy):
+ New static functions.
+ (hash_keys, hash_values, hash_pairs, hash_alist): New functions.
+
+ * hash.h (hash_next): Declaration updated.
+ (hash_keys, hash_values, hash_pairs, hash_alist): Declared.
+
+ * lib.c (make_half_lazy_cons): New way of constructing lazy cons,
+ with the car field specified. It simplifies situations when the
+ previous cons computes the car of the next one. Why hadn't I thought of
+ this before?
+
+ * lib.h (make_half_lazy_cons): Declared.
+
+ * txr.1: Doc stubs for new hash functions.
+
+ * txr.vim: Highlighting for new hash functions.
+
2012-04-05 Kaz Kylheku <kaz@kylheku.com>
Version 64