Skip to content

Releases: GlenKPeterson/Paguro

Map.keyIterator() and .valIterator()

13 Aug 02:33
Compare
Choose a tag to compare

Added Nate Austin's memory-efficient iteration of just keys or just values from maps. Thank you Nate!

3.0.19 RRB Tree Split Bounds Fix

15 Jun 14:36
Compare
Choose a tag to compare

Fixed split() to handle splitIndex = 0 and splitIndex = size() thanks to a bug report from Jonathan Cornaz (curator of collekt). Also upgraded TestUtils to 0.0.7.

The 3.0.18 tag was incorrect - should have been .19, but I made a few very minor changes (fixed a typo, upgraded a test-only dependency) since then, so making it a new "Release." Thanks again Jonathan Cornaz for pointing this out.

RRB Tree Split Bounds Fix

15 Jun 13:26
Compare
Choose a tag to compare

Fixed split() to handle splitIndex = 0 and splitIndex = size() thanks to a bug report from Jonathan Cornaz (curator of collekt). Also upgraded TestUtils to 0.0.7.

RRB Tree

29 Oct 22:52
Compare
Choose a tag to compare

Fixed bugs found using FindBugs - thanks to @cprice404. Details in the change log. This release is 1.4K smaller than the previous. That's about 0.5% change, but it's better than growing!

RRB Tree

29 Oct 15:43
3670992
Compare
Choose a tag to compare

An RRB Tree is an immutable List (like Clojure's PersistentVector) that supports random inserts, deletes, and can be split and joined back together in logarithmic time.
There's been one for Scala for a while (Bagwell/Rompf who wrote the paper were Scala people), and a native Clojure one, but neither is super helpful for Java programmers.
This is an entirely new Apache 2.0 Java implementation, based on the Bagwell/Rompf paper.

It's easy to use:

import org.organicdesign.fp.collections.RrbTree.ImRrbt;
import static org.organicdesign.fp.StaticImports.rrb;

class Foo {
    public static void main(String[] args) {
        ImRrbt<String> rrb = rrb("This", "is", "a", "list");
        rrb = rrb.insert(0, "Hello!");
        System.out.println("rrb: " + rrb);
    }
}

How to update

An upgrade script is in the Change Log along with a description of the 3.0 changes (there were may!).

2.0.12: Improved Serialization

17 Sep 15:46
Compare
Choose a tag to compare

This is mostly bug fixes and incremental changes to the Serialization and Mutable Builders releases.

  • Changed order of serialization for PersistentTreeMap to serialize at the same speed, but deserialize more efficiently (by keeping a relatively balanced tree structure). This is 100% compatible with the previous Serialization release, but more efficient.
  • Made Option serializable and added Option.then() for chaining Some options (returns this for None options).
  • Other small fixes.
<dependency>
        <groupId>org.organicdesign</groupId>
        <!-- NOTE: artifactId will change to "Paguro" in November 2016 -->
        <artifactId>UncleJim</artifactId>
        <version>2.0.12</version>
</dependency>

2.0.7: Mutable Builders

11 Sep 16:46
Compare
Choose a tag to compare

Exposed interfaces for mutable collections. Mutable builders are about 5x faster (only measured the Vector - assuming HashMaps are similar). There are also several serialization improvements since the Serialization release.

While this release was stable, minor improvements make me suggest using 2.0.12 instead. That introduced fewer new features and fixed more bugs.

2.0.2: Custom Serialization

05 Sep 22:11
Compare
Choose a tag to compare

Immutable collections will deserialize even if their implementations change. DO NOT USE THIS RELEASE - use 2.0.12 instead. This release introduced some breaking changes which were subsequently reverted.