You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump version to 1.6.2 while tweaking code, comments & readme
- Noticed that the regression test for `greedyClone(true)` does not
fail when the bug is present. I fixed that.
- Tweaked the fix to `mergeSibling` and rewrote the comment on it.
- Updated the readme.
Copy file name to clipboardExpand all lines: readme.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,10 +23,10 @@ Features
23
23
constructor argument).
24
24
- Supports O(1) fast cloning with subtree sharing. This works by marking the
25
25
root node as "shared between instances". This makes the tree read-only
26
-
with copy-on-edit behavior; both copies of the tree remain mutable.
27
-
I call this category of data structure "dynamically persistent" because
28
-
AFAIK no one else has given it a name; it walks the line between mutating
29
-
and [persistent](https://en.wikipedia.org/wiki/Persistent_data_structure).
26
+
with copy-on-edit behavior; both copies of the tree remain mutable. I call
27
+
this category of data structure "dynamically persistent" or "mutably
28
+
persistent" because AFAIK no one else has given it a name; it walks the line
29
+
between mutating and [persistent](https://en.wikipedia.org/wiki/Persistent_data_structure).
30
30
- Includes persistent methods such as `with` and `without`, which return a
31
31
modified tree without changing the original (in O(log(size)) time).
32
32
- When a node fills up, items are shifted to siblings when possible to
@@ -375,6 +375,11 @@ Benchmarks (in milliseconds for integer keys/values)
375
375
Version history
376
376
---------------
377
377
378
+
### v1.6.2 ###
379
+
380
+
- Bug fixes: two rare situations were discovered in which shared nodes could fail to be marked as shared, and as a result, mutations could affect copies that should have been completely separate.
381
+
- Bug fix: greedyClone(true) did not clone shared nodes recursively.
382
+
378
383
### v1.6.0 ###
379
384
380
385
- Added `BTree.getPairOrNextLower` and `BTree.getPairOrNextHigher` methods (PR #23)
0 commit comments