Releases: so-dang-cool/z
v3.0.2
- Minor changes to metadata in pom
- Published to GitHub Packages registry: https://github.com/so-dang-cool/z/packages/1965400
Full Changelog: v3.0.0...v3.0.2
3.0.0
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 BiFunction
s)
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
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
- No longer marked
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
Z 1.1.0
Added:
- More javadocs, more tests (4% coverage to 100%)
- More
Boolean[ETC]
functional interfaces - More "super fusions" with
fusing
andabsorbing
Changed:
BooleanUnaryOperator
is nowBooleanPredicate
1.0.0
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
Z 0.0.2
Includes updates to pom metadata, documentation, and tests
Z 0.0.1
Z is in an early, experimental phase