Version 0.21 - 2026-06-27
  - Tree now holds strong reference to Node-wrapper objects, so once they are
    created (still lazily on demand) they remain until that node is deleted.
    This makes it possible to make weak references to Node objects.

Version 0.20 - 2025-12-17
  - Fixed bug where 'put' with allow_duplicates did not always replace all other
    nodes with identical keys
  - Node keys can now be altered, to re-key a node.
  - New tree attribute 'recent_limit' auto-prunes oldest nodes when collection
    grows past that limit.
  - New tree methods insert_as_node and put_as_node return Node objects for the
    just-inserted item.

Version 0.19 - 2025-04-11
  - New attribute 'keys_in_recent_order' changes behavior of convenience
    iteration methods, including for tied hashes.

Version 0.18 - 2025-03-22
  - New method 'rekey', for modifying existing keys by an offset
  - XS fix for passing hashref to constructor, previously would miss attributes

Version 0.17 - 2024-12-30
  - XS fix for crash in Node::STORABLE_thaw when ssize_t is 32 bit and IV is 64 bit.

Version 0.16 - 2024-12-28
  - Fix blatant bugs in constructor for handling single-argument compare fn
    or hashref, and add tests.
  - Fix foldcase on perl 5.14
  - Fix compilation errors and warnings on MSVC
  - Add alias 'key' for 'get_key'

Version 0.15 - 2024-12-27
  - New comparison functions CMP_FOLDCASE, CMP_NUMSPLIT_FOLDCASE,
     along with a new internal mechanism for applying a transformation
     function to incoming keys before comparing them.  Access to this API
     can be expanded in future versions.
  - Renamed comparison function CMP_UTF8 => CMP_STR, but old name still works
  - New methods keys, reverse_keys, values, reverse_values, kv, reverse_kv

Version 0.14 - 2024-08-17
  - Fix threaded perl support

Version 0.13 - 2024-08-16
  - Support for Storable freeze/thaw on trees and nodes (but not iterators)
  - More complete XS constructor is faster and allows more things to be
    initialized, including the "recent" list, and "keys" without values.
    Warns on unknown attribute names, now.
  - Fix null pointer bugs accessing certain attributes of pruned nodes
  - example "newest-files"
  - Documentation updates

Version 0.12 - 2024-07-09
  - Fix fatal bug in prev_inserted_trend optimization

Version 0.11 - 2024-07-09
  - New comparison flag GET_OR_ADD, inserts an empty node if one didn't exist
  - New get_key function returns nearest key to one requested.
  - New get shortcuts get_or_add, get_key_lt, get_key_le, get_key_gt, get_key_ge
  - Methods get, lookup, get_or_add, FETCH, and node method 'value' are now
     flagged as lvalue subs.
  - New exportable function 'cmp_numsplit' can be used independent of tree nodes

Version 0.10 - 2024-07-05
  - New method 'exists', takes list of keys and returns node count
  - New methods put_multi and insert_multi
  - Optimization for insertions of adjacent nodes, can build new tree
     in N+1 comparisons
  - New configuration attribute 'lookup_updates_recent' finishes the feature
     set needed for a typical LRU cache.
  - Constructor option 'kv' to initialize the tree
  - Fix bug when replacing multiple nodes with a 'put'

Version 0.09 - 2024-07-04
  - Fix XS bug in iter->next when iterating 'recent' and count > 1.
  - Count greater than INT_MAX passed to iter->next now returns all nodes
    instead of zero nodes.

Version 0.08 - 2024-07-02
  - New feature of insertion-order tracking:
     - Tree attributes: track_recent (and ctor option), newest_node,
        oldest_node, recent_count
     - Tree methods: iter_newer, iter_older, truncate_recent
     - Node attributes: newer, older, recent_tracked
     - Node methods: mark_newest, iter_newer, iter_older
  - Iterator attribute 'node'  (had 'key' and 'value', but not 'node'?)
  - Fix bug so iterators can be called as functions, as intended
  - Alias iterator methods for clearer singular usage
       'next_keys'   => 'next_key'
       'next_values' => 'next_value'

Version 0.07 - 2022-06-04

  - Actual fix for iter->next_kv, only affects debug perls - GitHub #2
  - Explicitly require Scalar::Util

Version 0.06 - 2022-05-22

  - Possible fix for bug in iter->next_kv

Version 0.05 - 2021-11-20

  - Implement hseek
  - Fix more bugs in utf8 comparisons (should be really fixed this time)
  - Fix compilation on 32-bit platforms
  - util/benchmark.pl compares performance with other similar modules

Version 0.03 - 2021-11-18

  - New XS iterators, with lots of new methods: clone, key, value, index,
     tree, next_kv, next_keys, next_values, step, delete.
  - Iterators now automatically move to the next item if the current node
     gets removed from the tree.
  - Iterators now hold a strong reference to the tree.
  - TIEHASH interface, for those who want it.
  - More unit tests, more documentation.
  - Fixed compilation on 5.12, 5.10, 5.8 at the cost of correct UTF-8 cmp.

Version 0.02 - 2021-11-15

  - New CMP_NUMSPLIT comparison function
  - New get_node shortcuts: get_node_last, get_node_le, get_node_le_last,
     get_node_lt, get_node_ge, get_node_gt.
  - Code cleanup
  - Minor documentation fixes

Version 0.01 - 2021-11-15

  - Finished implementing almost all methods of Tree::RB
  - Renamed option 'compat_list_context' to 'compat_list_get'
    since it only affected the 'get' method.
  - Add tree methods: root, iter, rev_iter
  - Add node methods: tree, left_leaf, right_leaf, strip, as_lol
    min, max, successor, predecessor

Version 0.00_03 - 2021-11-14

  - KEY_TYPE_USTR now uses a correct unicode comparison function.
  - Added option 'compat_array_context'
  - Comparison functions can now be specified by enum constants
  - Added api methods get_all, iter, rev_iter
  - Delete now takes a second optional param to delete a range
  - Renamed exported constants LU_* to GET_*, and added GET_LE_LAST
    and GET_EQ_LAST to handle common cases for duplicate keys.
  - More unit tests
  - Much more documentation

Version 0.00_02 - 2021-11-13

  - Enhanced string-key performance using KEY_TYPE_BSTR and
    KEY_TYPE_USTR.  KEY_TYPE_STR is removed.
  - Various distribution fixes, documentation, etc.

Version 0.00_01 - 2021-11-12

  - Initial release, with partial compatibility to Tree::RB
