version 4.4 released

26 views
Skip to first unread message

Mark Perry

unread,
Jul 6, 2015, 6:46:55 PM7/6/15
to functio...@googlegroups.com

FunctionalJava 4.4 has been released and is available from the maven repositories. 

Special thanks to Jean-Baptiste Giraudeau and Zheka Kozlov for their contributions to this release.  The full contributors list is in the release notes.

The release notes are available from https://github.com/functionaljava/functionaljava/blob/master/etc/release-notes/release-notes-4.4.adoc, they are repeated below.

Mark.


= Release 4.4

Released: 6 July 2015

== Enhancements

* Added optics lenses inspired from the Monocle Scala library, instances for List and P2 (#130, #131, #132, #159).
* Added functionality to FingerTree and Seq: head, last, tail, init, split, split1, update, toJavaList, Iterable (#140).
* Added OrdComparator and fixed TreeMap.toMutableMap (#110).
* Added bimap to Either (#121).
* Added monoid composition.
* Changed comap methods to contramap (#142, #170)
* Provide hard, soft and weak memoisation implementations, default to weak (#153, #151).
* Added optics (see the Scala Monocle library https://github.com/julien-truffaut/Monocle and the Haskell lens lbrary https://github.com/ekmett/lens for an overview) (#154).
* Added Validation.sequence (#163, #167).
* Add PropertyTestRunner (#144).
* Added Equal.notEq, List.isPrefixOf, List.isSuffixOf (#146).
* Made enhancements to support Real World Haskell example (#155)
    ** made P1.toString lazy
    ** added IOFunctions.interact
    ** added IOFunctions.getContents
    ** added map, bind and eval to LazyString
    ** added IO wrapper with static methods from IOFunctions as instance methods
    ** Stream.take evaluates one those items necessary (one less than currently)
    ** Made Stream.toString lazy
    ** Added Strings methods lines and unlines
    ** Made IOFunctions.sequenceWhile lazy
    ** Changed IOFunctions io to be fromF and fromTry.
* Enhanced Property to run individual tests (#156).
* Added Seq.isNotEmpty (#158).
* Added List.partition (#161).
* Added Validation.partition, arbitrary validations for testing (#165).
* Added Validation.sequence (using semigroup) (#163, #167).

== Fixes

* Fixed LazyString.toString for Android (#109)
* Fixed exhausted ScalaCheck tests (#115).
* Fixed overflow in standard Rand (#112).
* Fixed equals for anonymous classes (#122, #125).
* Fixed List.init (#128, #129).
* Fixed Effect.f ignoring argument (#133, #134).
* Made Effect.comap static (#135, #134).
* Fixed Class.inheritance infinite list (#137).
* Fixed Stream.toString to human readable representation (#138).
* Fixed P1.memo cache in threaded environment (#141, #108).
* Fixed Stream join and bind for infinite streams (#140).
* Fixed Validation.sequence and renamed to sequenceNonCumulative (#162).
* Scalacheck property Stream.bindStackOverflow sometimes fails (#168, #169).
* Fixed bug in FingerTree.append (#144).
* Fixed arrayShow (#145).
* Fixed Stream.bindStackOverflow test that occasionally failed (#157).

== Internal

* Added Travis build (#115).
* Upgraded to Gradle 2.4 (#143, #118).
* Added Gradle uptodate plugin (#119).
* Updated Scala and ScalaCheck to 2.11.6 and 1.12.2 respectively (#120).
* Replaced P1 by F0 in various APIs (#136).
* Split quickcheck property testing into separate module (#147, #148).
* Updated libraries used: Uptodate 1.5.1, Retrolambda plugin 3.2.0, JUnit 4.12, Scala 2.11.7, Scalacheck 1.12.4 (#171, #172).
* Fixed unnecessary P1.memo wrapping (#150).
* Added property tests for List, Stream and Array (#158).

== Breaking Changes

* Comap methods renamed to contramap.
* Split quickcheck into separate module.
* Validation.sequence renamed to sequenceNonCumulative.
* Changed IOFunctions io to be fromF and fromTry.

== Documentation

None.

== Contributors

* Mark Perry
* Jean-Baptiste Giraudeau
* Zheka Kozlov
* daneko
* Dobes Vandermeer
* Kenji Yoshida
* Runar Bjarnason
* Paul Horn
* John Sullivan



Reply all
Reply to author
Forward
0 new messages