Skip to content

Releases: so-dang-cool/z

v3.0.2

12 Oct 23:04
Compare
Choose a tag to compare

Full Changelog: v3.0.0...v3.0.2

3.0.0

11 Jun 23:16
Compare
Choose a tag to compare

Z version 3

This version brings more simplification and focus to Z. The total source lines of code has reduced by a little more than 12,000 lines (roughly a 40% reduction in the entire project).

There are also less options (no multi-argument fusion functions) and less verbosity... no no need to call resolve() at the end of a fusion chain, and no fusing() or absorbing() semantic for continuations rather than terminal fusions.

The quick changes:

// v2 Z (these were all equivalent)
var c = Z.fuse(a, b);
var c = Z.with(a).fuse(b);
var c = Z.with(a).fusing(b).resolve();

// v3 Z
var c = Z.fuse(a).fuse(b);

Now .fuse(...) and .absorb(...) always result in functional interfaces. They can also be chained indefinitely unless the number of inputs required grows. (For example by fusing BiFunctions)

For details on how to translate a more specific call pattern, see the changes in tests since 2.0.0:

Full Changelog: v2.0.0...v3.0.0

2.0.0

22 Jun 08:58
Compare
Choose a tag to compare

Z: 2.0.0

Added:

  • Huge extensions to the "deep fusion" paths. (Z.with(fn1).fusing(fn2).fusing(fn3).fuse(fn4))
    • No longer marked @Experimental
  • Z.flip(fn) is introduced for argument order swapping

Removed:

  • All unoptimized code paths for booleans have been removed. E.g.*Predicate -> Function<Boolean, ...> has been removed (or BiFunction, etc)

Misc:

  • PMD is used (via the build.gradle) for static code analysis
  • Spotless and prettier are used (via the build.gradle) for code lint & formatting
  • Internal reorganization, renaming and editing passes performed (but more needed)

1.1.0

27 May 03:49
Compare
Choose a tag to compare

Z 1.1.0

Added:

  • More javadocs, more tests (4% coverage to 100%)
  • More Boolean[ETC] functional interfaces
  • More "super fusions" with fusing and absorbing

Changed:

  • BooleanUnaryOperator is now BooleanPredicate

1.0.0

20 May 21:35
Compare
Choose a tag to compare

This release finalizes the techniques:

  • Z::fuse
  • Z::split
  • Z::absorb
  • Z::assimilate[N]

The following techniques are experimental and will be fleshed out as part of the 1.x.x versions:

  • Z::with

0.0.2

18 May 22:56
210af18
Compare
Choose a tag to compare

Z 0.0.2

Includes updates to pom metadata, documentation, and tests

Z 0.0.1

16 May 12:11
Compare
Choose a tag to compare

Z is in an early, experimental phase