CHANGELOG.md in d_heap-0.4.0 vs CHANGELOG.md in d_heap-0.5.0
- old
+ new
@@ -1,7 +1,24 @@
## Current/Unreleased
+## Release v0.5.0 (2021-01-17)
+
+* 🔥 **Breaking**: reversed order of `#push` arguments to `value, score`.
+* ✨ Added `#insert(score, value)` to replace earlier version of `#push`.
+* ✨ Added `#each_pop` enumerator.
+* ✨ Added aliases for `deq`, `enq`, `first`, `pop_below`, `length`, and
+ `count`, to mimic other classes in ruby's stdlib.
+* ⚡️♻️ More performance improvements:
+ * Created an `ENTRY` struct and store both the score and the value pointer in
+ the same `ENTRY *entries` array.
+ * Reduced unnecessary allocations or copies in both sift loops. A similar
+ refactoring also sped up the pure ruby benchmark implementation.
+ * Compiling with `-O3`.
+* 📝 Updated (and in some cases, fixed) yardoc
+* ♻️ Moved aliases and less performance sensitive code into ruby.
+* ♻️ DRY up push/insert methods
+
## Release v0.4.0 (2021-01-12)
* ⚡️ Big performance improvements, by using C `long double *cscores` array
* ⚡️ Scores must be `Integer` in `-uint64..+uint64`, or convertable to `Float`
* ⚡️ many many (so many) updates to benchmarks
@@ -10,14 +27,14 @@
* ♻️ significant refactoring
* 📝 Updated docs (mostly adding benchmarks)
## Release v0.3.0 (2020-12-29)
+* 🔥 **Breaking**: Removed class methods that operated directly on an array.
+ They weren't compatible with the performance improvements.
* ⚡️ Big performance improvements, by converting to a `T_DATA` struct.
* ♻️ Major refactoring/rewriting of dheap.c
* ✅ Added benchmark specs
-* 🔥 Removed class methods that operated directly on an array. They weren't
- compatible with the performance improvements.
## Release v0.2.2 (2020-12-27)
* 🐛 fix `optimized_cmp`, avoiding internal symbols
* 📝 Update documentation