Skip to content

Minor Release 0.10.0

Compare
Choose a tag to compare
@danieldietrich danieldietrich released this 20 Jan 16:51

Info

The minor release 0.10.0 focuses on several API improvements.

Please find the complete list of changes here.

The API Docs can be found here

Comitters

🎉 MANY THANKS TO ALL COMMITTERS (AND THEIR PATIENCE)! 🎉

Note: A few contributions didn't made it into 0.10.0 because of backward incompatibilities.

Changes

Instead of describing all changes in detail, I will provide a list and show some examples.
Beside new features there were also several (internal) improvements not shown here.

Core/API

for

  • Change (internal): Removed internal interface io.vavr.Lambda which was on top of the (Checked)Function type hierarchy. It was not public.
  • Feature: For-comprehension supports List, Option, Future, Try
  • Feature: Tuple - append(), concat() and hash()
  • Feature: CheckedConsumer, CheckedPredicate and CheckedRunnable enhancements
  • Feature: PartialFunction now implements Function1
  • Feature: Predicates.not()
  • Feature: Value: toJavaArray(IntFunction), toTree(Function, Function)
  • Deprecation (for removal): API.Map(Tuple2)
  • Deprecation (for removal): API.LinkedMap(Tuple2)
  • Deprecation (for removal): API.SortedMap(Tuple2)
  • Deprecation (for removal): API.SortedMap(Comparator, Tuple2)
  • Deprecation (for removal): API.SortedMap(java.util.Map)
  • Deprecation (for removal): Value.toLeft()
  • Deprecation (for removal): Value.toRight()
  • Deprecation (for removal): Value.toValid()
  • Deprecation (for removal): Value.toInvalid()

Collections

for-each-with-index

  • Feature: Traversable: forEachWithIndex, reject(Predicate)
  • Feature: Iterator/Stream: fill(int, Object)
  • Feature: Map/Multimap: reject(BiPredicate), rejectKeys(Predicate), rejectValues(Predicate), keysIterator(), valuesIterator()
  • Feature: Map/Seq: asPartialFunction()
  • Feature: Seq.rotateLeft, rotateRight, takeRight, takeRightUntil, takeRightWhile

Concurrent

future

  • Change: Future now uses Executor instead of ExecutorService. The executorService() works as before if Future was initialized with an ExecutorService, otherwise it throws. User executor() instead.
  • Change: Future DEFAULT_EXECUTOR: ForkJoinPool.commonPool()
  • Feature: Future.await(long timeout, TimeUnit unit)
  • Feature: Future.isCancelled()
  • Feature (experimental): (Experimental) Future.run(Task), Future.run(Executor, Task)
  • Deprecation (for removal): Seq/Map/Set withDefault, withDefaultValue

Controls

try-fold

  • Feature: Either.sequence, Either.sequenceRight
  • Feature: Either.traverse, Either.traverseRight
  • Feature: Either.filterOrElse
  • Feature: Either.toValidation
  • Feature: Option.traverse
  • Feature: Option.fold
  • Feature: Try.traverse
  • Feature: Try.onFailure
  • Feature: Try.fold
  • Feature: Try.toValidation
  • Feature: Validation.fromTry
  • Feature: Validation.traverse
  • Deprecation (for removal): Either.left(), Either.right()
  • Deprecation (for removal): Either.LeftProjection, Either.RightProjection